Close
0%
0%

Play/Replay Button

Play/Replay turns a Raspberry Pi Pico into a hardware-backed macro recorder for keyboard and mouse input.

Public Chat
Similar projects worth following
0 followers
Press the first button, do the things on your PC you want to record, press it again and the exact sequence of keystrokes and mouse movement, down to the MILLISECOND, is stored on the Pico's own flash memory. Press the second button and it plays back on any USB host, looping forever until you stop it. For this project you only need a raspberry pi pico board, two keyboard switches and the 3D printed case. It works in combination with a support python script that only needs to run on one computer.

I was watching a youtube video of a guy grinding the same mission on Dying Light to max out his skills before the end of the first assignment, it was just a silly challenge that he made but then, while watching that, I had one of those moments where you feel the lightbulb turn on, full blinding power.

He was repeating the same mission over and over and over again, exactly the same thing for an insane amount of time and I thought "damn this is terrible, if only...there was a way to record your input, store it and replay it instead of being forced to do all of that and waste a massive amount of hours" and here we are!

My project needs a small python script to capture the position of mouse and keyboard and then it translates it to usable instructions for a RP2040 microcontroller. My goal here was to build THE smallest footprint device possible that can stay next to you even in a cluttered desk but that has enough built-in memory for, hypotetically, at least half an hour of recordable inputs and a max of HOURS.

I also tried to make this project as minimalistic as possible, you won't need much and I promise that the usecases are near infinite.

Play_Replay button v1.1.stl

Both pieces, if you just want to print them as-is

Standard Tesselated Geometry - 147.93 kB - 09/24/2026 at 06:59

Download

Play_Replay top.stl

The top part.

Standard Tesselated Geometry - 101.35 kB - 09/24/2026 at 06:59

Download

Play_Replay bottom.stl

And just the bottom.

Standard Tesselated Geometry - 48.42 kB - 09/24/2026 at 06:59

Download

input_forwarder.py

The part that records the input and transforms it into readable code for the pico.

x-python - 11.12 kB - 09/24/2026 at 06:57

Download

Play_RePlay.ino

The code for the pico that reads the file from input forwarder and makes the python script start the recording.

ino - 8.70 kB - 09/24/2026 at 06:57

Download

  • 1 × VCC GND YD-RP2040 The brain of this project, you need the 16MB flash memory one.
  • 2 × Cherry MX Blue switch
  • 2 × 3D printed parts
  • 1 × Some unspecified amount of wire You don't really need much

  • 1
    Print Everything

    Depending on how precise your printer is you might want to consider printing every piece singularly. I'm lazy so I decided to do everything at once.

    This project only uses friction and tight tolerances to fit together!!!

    If everything is too tight consider scaling this model by 1% or 2% in your slicer, I didn't need to do this.

    I used 20% cubic infill and black PETG for that shiny glossy finish but realistically speaking you can use whatever rocks your boat. You'll need support material for the top part of the case.

  • 2
    Assembly

    This part is critical so listen carefully, ok?

    1. Solder the wires to the switches BEFORE putting them into the top part. You do not want to melt the plastic by assembling everything and then trying to solder things together. Do not be silly, aight?
    2. Put the switches in the slots, cut the wires accordingly to how short you think they should be.
    3. Now BEFORE putting the board in the bottom part solder the wires to pin 22 and 15, they are safe since they don't do anything other than being standard IO pins, I discovered the hard way what happens when you use an ADC pin by accident... Use any ground pin you want, that really doesn't matter.
    4. Put the board in the bottom part, be careful though, it's gonna be tight and you might want to file it down a bit with sandpaper if you're not confident in the amount of pressure you're putting on the board.
    5. (Optional) Add a little bit of tape between the top and the bottom to prevent any short circuit.

    And that's it, the assembly is D-O-N-E! This will probably take you no longer than 1 hour but take your time.

  • 3
    Flash the Board

    Use any kind of software you see fit to do this. You'll find the code at my GitHub repo for this project, here's the link -> https://github.com/Lupix111/Play-RePlay-Button

    I always use the Arduino IDE, the configs in the Tools section that I use are in the screenshot. You need to flash the Play_RePlay.ino file, DO NOT FORGET to put the flash size to 16mb, the "Sketch 1MB; FS 15MB". It's very important.

View all 5 instructions

Enjoy this project?

Share

Discussions

Does this project spark your interest?

Become a member to follow this project and never miss any updates