Programmable Macro Board

Project Introduction

Welcome to the intensive guide on how to make your Programmable Macro Board work! If you're a proud owner of one of these kits, this page will walk you through all the steps required to get one of these boxes up and running, both on the hardware and the software side.

The Programmable Macro Board consists of 9 buttons (7 on the keys and 2 on the encoders), and 2 rotary encoders (each with 2 directions of inputs). In total, there are 13 different key commands you can assign to perform different tasks! In addition, the keycaps are 3D printed, so you can always print new ones to represent each action the key performs.

Programmable Macro Board, Black with White Keys

Construction Guide

Materials

Kit Components

  • Part A: 3D Printed Case (Bottom Piece)

  • Part B: 3D Printed Case (Top Piece)

  • Part C: Custom PCB

  • Part D: Arduino Pro Micro with Header Pins

  • Part E: Male-To-Female Jumper Wires (2 sets of 5)

  • Part F: USB 2.0 A Male to Micro-USB B Male Cable

  • Bag 1: 3D Printed Keycaps (x4 1U, x2 2U, x1 Circle)

  • Bag 2: Akko White CS Switches (x7)

  • Bag 3: Cylewet KY-040 Rotary Encoder Module (x2)

  • Bag 4: M2.5x6mm Black Oxide Screws (x4), #6-32 18-8 1/2" Silver Screws (x4)

  • Bag 5: Female Pin Headers (x2 12-pin, x2 5-pin)

Required Tools

  • Soldering Equipment

  • Ventilation Methods

  • Pliers and Side Cutters

  • Screwdriver

  • Masking Tape

  • Computer with Arduino IDE

Step 1: Soldering the Arduino Pro Micro Header Pins

Tips for Success

  • It is really difficult to remove a row of header pins once it has been soldered together.

  • When soldering a row of header pins, solder the left-most pin and the right-most pin first.

  • Flip the PCB upside down. Visually inspect your row of header pins. If something looks off, fix it immediately.

    • If the row of header pins is slanted left or right, apply some pressure in the correct direction and heat either soldered connection to shift the pins back in place.

    • If the row of header pins is not completely flush with the PCB, apply pressure downwards and then heat the soldered connection up. You should hear a *snap* sound as the header pin snaps back in place.

  • Once you are satisfied with the straightness of the header pins, you may solder the rest of the connections on.

Step 2: Soldering the Female Header Pins to the PCB

Instructions

  • Place the 12-pin header pins and 5-pin header pins in the right locations. The silkscreen white outline should be facing you when you place the header in.

  • Apply masking tape to hold all 4 sets of header pins straight and in place. Flip the PCB over and utilize the technique described in Step 1 to verify straightness and proper placements and solder the header pins to the PCB.

Tips for Success

  • Helping hands and masking tape are great ways to hold your board in place while you solder.

  • You may also purchase a silicone mat to prevent objects from slipping around.

Step 3: Insert PCB into the 3D Printed Case (Top Part)

Instructions

  • Insert the PCB into the 3D printed case (top part). Be sure to align all the key holes and rotary encoder slots properly.

  • This step is important to align all the components: Snap all four corners of the PCB into the case. The tolerance is very tight.

  • Use the (x4) M2.5x6mm black oxide screws and screw in the PCB into the top part of the case.

    • Be careful not to strip the screws.

  • Flip the top cover over and verify that the silkscreen squares line up with the square holes on the 3D printed top piece.

  • Warning: Double check your work at this point. Make sure all PCB connections are correct. There is no going back and fixing your previous work after this point.

Step 4: Soldering the Mechanical Keys

Instructions

  • Take the (x7) Akko White Mechanical Keys and insert them through the top of the PCB case.

    • Tip: The keys are tight fits, and will snap together. Make sure the key pins go through the PCB underneath. They should be even across the board.

  • Warning: Take a minute to check that all the mechanical keys are fully inserted into the top piece and PCB. It will be difficult to change this after the keys are soldered together.

  • Solder the (x7) Akko White Mechanical Keys through the bottom of the PCB. There are 14 total connections that are required to be soldered together.

Step 5: Apply Keycaps to Mechanical Keys

Instructions

  • Attach the keycaps to the mechanical keys. The following order is suggested for the keys.

    • 1U Keycaps (Squares): Center row, 4 keys

    • 2U Keycaps (Rectangles): Bottom row, 2 keys

    • 1U Keycaps (Circle): Top row, 1 key

Step 6: Screwing in Rotary Encoders

Instructions

  • Take the main body of the rotary encoder and push it into the bottom of the PCB + top piece cover. While pushing down, rotate the encoder clockwise to begin screwing it into the 3D print. Keep screwing it until you can see a sliver of the base pop out of the other side.

    • Tip: Push the rotary encoder button with a good amount of force to check that it isn't too loose. If the connection is loose, you may have to apply some hot glue while screwing it in.

    • Why?: As the rotary encoder screws in, it makes a new thread inside the 3D print. Since PLA is malleable, we can create a new connection with the metal and PLA this way.

  • Repeat this step for the other rotary encoder.

  • Apply the rotary encoder caps on top of the case, similar to the keycaps. Test the rotary encoders to ensure functionality.

    • Tip: If the detents (little bumps when you are turning the encoder) are slightly uneven, this is fine. They will even themselves out after some use.

Step 7: Attach Jumper Wires to Rotary Encoders and PCB

Instructions

  • The jumper wires are a 1-to-1 connection from the rotary encoder to the 5-pin female header strip that was soldered in Step 2.

  • Take one set of Male-Female jumper wires (there should be 5 individual cables) and attach the female end to the rotary encoder

    • Tip: It is easier if you rotate the rotary encoder so that the pins are facing out of the case.

    • Warning: Make sure that all the jumper wires are in order and not twisted together. The left jumper cable should connect with the left pin, and then the second from left jumper to the second from left encoder pin, and so on.

  • Attach the male end to the header pins on the bottom. Again, make sure that they are a 1-to-1 connection. The leftmost rotary encoder pin should be the leftmost female header pin, and so on.

  • Repeat for the right rotary encoder.

  • Warning: Make sure that your connections are correct, similar with the video. Incorrect connections may cause a short!

Step 8: Insert USB Cable into Box and Attach to Arduino

Instructions

  • Insert the Micro-USB B end of the USB cable into the small hole on the 3D-printed base.

  • Attach the Micro-USB B end of the USB cable into the Arduino Pro Micro

  • Bend the jumper cables inwards carefully to minimize vertical space.

  • Carefully close the box and align all four sides.

  • Warning: Do not forcefully close the box. This may result in the encoder or jumper wires snapping. The box should be able to close with minimal force from a user.

Step 9: Close the Box and Screw it Shut

Instructions

  • Position the top piece of the case on top of the bottom piece of the case. You may have to apply some gentle pressure on the pieces. Hold the top cover down and place the (x4) #6-32 1/2" silver screws through each corner of the board.

  • Use the (x4) #6-32 1/2" silver screws and attach the top piece of the case to the bottom box. The screws should slot cleanly through the top piece due to the large tolerance.

    • Be careful not to strip the screws.

Step 9.5: (Optional) Insert USB Cable into Box

Instructions

  • This stage only works for the USB Cables in lengths of 1ft, 3ft, and 6ft.

  • Carefully, wiggle the USB cable while pushing into the box. The USB-A portion should slot all the way inside, allowing for portability of the device.

Step 10: Programming the Arduino Pro Micro

Instructions

  • Download the open-source code from the Github repository -> here

  • Download the Arduino IDE -> here

  • Open the file titled PMacro-Board.ino

  • Choose the correct board type and port number inside the Arduino IDE

    • Board Type: Tools > Board > Arduino AVR Boards > Arduino Micro

    • Port: Tools > Port > COM__ (Your COM port may vary)

  • If you would like the board to press a custom key you may change it in lines 19-35 of the code

  • Upload the code to the board using the (->) button on the navigator.

  • Open a Notepad and verify that your board functions. If all the keys and encoders work, then you're done!

🎉 Congratulations! You're Done! 🎉