Macpad Keyboard

Created by @imnoahdev

Total Hours: 16.5

Initial layout (2 hours)

I have researched Apple and apple clone keyboards.

image.png

I will be baseing my keyboard off of this design with a few added features.

New features:

  • USB-C power
  • Mechanical switches
  • Rotary encoders
  • volume fader

I started by mapping my keyboard matrix. I am using MX alps hybrid footprints to give a wider range of options for switches.

image.png

This layout closely mimics the original layout with few changes. Having that finished, I have begun to research QMK compatible controllers for the next step.

Microcontroller (2 hours)

I am using an AT90USB1286 controller (due to its USB functionality and QMK compatibility). The controller is connected to a 16mhz crystal for timing. The CC pins on the USB-C port are pulled down to ground via 5.1k resistors to follow the USB-C specification. I have 2 rotary encoders (EC11) and the special feature of my project, a fader for volume control. Capacitors 1 to 7 are used for decoupling and filtering.

image.png

The columns from the layout have been connected here to the matrix above. I have also conencted up the two rotary encoders and the slider fader.

Layout (2 hours)

image.png

Next i laid out the keyboard in the most optimal format for the space. This format allows me to make versions with and without the fader + rotary encoders. I also rounded the PCB edges and added 3.2mm screw holes for mounting inside a case. I have ensured the pcb is less than 50cm long to ensure it can be assembled with many assembly services.

Back to the drawing board (2 hours)

image.png

Due to using a non standard layout, I found it would be impossible to get keycaps for some keys (such as my thin iso key). I am instead using a more standard layout. Because of the saved money from doing this, I can now add LEDs. I have added a backlight led matrix that can be controlled via the MCU. I have created my new layout, connected it to the MCU schematic and added LEDS with a driver.

image.png

New Layout (2 hours)

I laid out the PCB again with the new logic for the LEDs.

image.png

I have added a resistor to 5v for each led and laid the pcb out similar to before.

Routing (2 hours)

I routed the PCB and added a ground plane.

image.png

image.png

Although my ground plane is missing from a large part of the PCB, it still links all ground traces together well. I also added 4x m3 screw holes for mounting.

Plate (1 hour)

Next I created a plate for my keyboard. First I created my schematic in KLE and used a tool to convert KLE to SVG for the plate. I then matched this up with a plotted version of my pcb silkscreen. I then drew the full border, added holes for mounting and added holes for my special components.

image.png

Next I will begin to design a case for my PCB.

Case (1.5 hours)

I designed a case for my PCB My case fully fits my USBc port and will fit my PCB with plate. This case can be 3d printed in 2 parts and is assembled with m3 screws.

image.png

Firmware (1 hour)

I mapped the keyboard in QMK and added the hex file for flashing. I also swapped the backlight and a column pin to have them on the correct pins.

Polishing (1 hour)

Added a render of the PCB and case together. Rounded some edges on the case. Added holes for rubber feet.