Infinity Macro Pad Using Pi Pico
Introduction: Infinity Macro Pad Using Pi Pico
Hello DIY makers and coders.... Today I'm presenting my version of a custom Macropad with a Raspberry Pi Pico....
I named this as "Infinity Macropad 1.1"....the project is based on the adafruit Circuit Python and runs HID functionality onboard....
This Macropad has
* 20 individual tactile push buttons
* 3 Rotary encoders
* 1 Joystick
* 1 Ws2812b Status RGB LED
* Micro usb port
* Inclined kickstand
I want to make this project completely open source and share the whole setup with everyone free of cost... And for that purpose I need a good amount of help from people who are expert in circuit python programming... Pls help...
. So without wasting anyone time..lets get started...
Step 1: Understanding the Project and Chossing Right Microcontroller
I wanted to make a macropad.. Which will have enough buttons for almost every programs and applications...
Fow which I decided to include 20 buttons, 3 rotary encoder and a joystick... (these encoders and joystick also have their own push buttons...)
Now.. For making the project... The most powerful but compact microcontroller was the Raspberry Pi Pico...
Step 2: The Parts We Are Gonna Need...
For making the project... We will need these parts. 👇
Components
* 20 tactile switches...(12*12*12 switches)... I could have gone with cherry mx switches... But they are much pricer
* 3 rotary encoder modules
* 1 XY joystick module
* 1 ws2812b led module
* 20 4148 switching diodes
* Raspberry Pi Pico
* 10 * 10 cm zero pcb
* 5 screws (3mm thick)
* My 3d files or your own...
Tools
* 3d printer
* Fusion 360 or any other CAD software
* PLA or favorite plastic roll
* Spray paint (optional)
* Some random tools
Step 3: Preparation of the PCB...
Firstly print my given template for the PCB board...
Cut it out and carefully allign with the board and stick it...
After that using the guide lines... Cut the PCB board... I used my small coping saw... You can use whatever available...
After the cutting is done.. Carefully place the switches in their places... And mark their location on the board...
Step 4: Adding the Push Buttons...
Now with the previously made markings... Place the switches in their corresponding places....
Make sure the placements are perfect.. Otherwise it will be very hard to rectify it later...
Double check their placements...
Now.. Bend 2 legs of the buttons and solder them on the board... You can solder all 4 legs.. But it will increase the confusion...
Step 5: Placing the Matrix Diodes...
We are making a 4*5 button matrix... 848
And for that purpose... We also need some diodes...
You can use normal 4007 diodes... But everyone suggest to use 4148 switching diodes... So.. I'm going with them also...
The circuit would be look like this... 👇
Make sure of the polarities of the diodes and the directions of them...
In my project.. I places them in two orders... But the wiring is same... It's just to make them tidy...
Use thin copper wire.. I used 26 gauge wires.. And connected all the columns together..
Then the drain of the switches to the diode...
The output of the diodes together in series... To form 5 individual rows...
Use reference pictures for better understanding...
Step 6: Drill the Mounting Holes...
I did this step after the wiring is done.. Because I'm obviously a professional dumb...
You should do this step before the wiring....
I dodged the bullet in first chance due to my prior thinking and because it's my design.. But it might be devastating for you...
So don't make my mistakes...
I simply drilled the hole with 4 mm drill bit... And as always I messed up the holes... They were not in right spot..anf not perfect round... So I used my rotary tool with a tungsten carbide bit.. And fixed those issues...
Step 7: Remove the Header Pins... and Paint the Case...
It's the time.. When you should remove the male headers from the rotary encoder modules and the joystick modules...
Also it's a good time to add wires to them... So you don't have to do them later...
After the wiring is done... It's time for painting the macropad body...
Though it's a optional step... You can directly print in your desired colour... But... 996