Get duckyPad | Official Discord | Getting Started | Table of Contents
Unless you have prior experience with PCB assembly and already have the equipments, it is most likely cheaper to just get one ready-made, but if you fancy a challenge, read on!
If you are handy with PCBs and surface mount soldering, you can make a duckyPad yourself!
Some things to keep in mind:
The board is a simple 2-layer board. Don't forget the cutout for the OLED screen in the milling layer!
The RGB LED is SK6812 MINI-E.
It is reverse mount, and pay attention to the orientation!
In theory you can use any cherry MX style switches you like, however, because there are backlights underneath, it's best if you can find one that lets the light shine through.
I've used Gateron RGB and Kalih BOX switches, they are both perfectly designed for this kind of usage, translucent case with large opening for LED. I like them clicky, but there are plenty of colors to choose from.
I used Kalih hot-swap sockets for Cherry MX switches:
Click me for vector files of front and back plates.
Click me for dimensions drawings.
You can have them made in laser-cut acrylic or metal.
I used a 1.3 inch OLED display from aliexpress. Make sure the connector is 30pin FPC with 0.5mm pin spacing
.
Note that the FPC connector used here is upper-contact variant. Here are some sample listings (illustration purpose only, you don't have to buy from them):
https://www.aliexpress.com/item/32950730252.html
https://www.aliexpress.com/item/4000350633981.html
Datasheet:
Any Cherry-MX stem keycaps would work.
Search USB 16p
on aliexpress for the connector. Should look like this:
Datasheet:
Try searching 3X4X2.5MM White Tactile Button
on aliexpress.
Should look like this:
For reset and DFU button, try searching SMD Side Tact Tactile Push Button
:
The microcontroller used here is a STM32F072C8T6. It is cheaper, has more peripherals, pins, and is faster than any old Aduinos. ST provides a free Keil MDK license for all F0 parts, and there are also completely open source toolchains like arm-gcc.
One interesting design detail is the RGB LED. The WS2812(and its clones) requires a rather high data rate, and Arduino library achieve this by bitbanging in assembly. However the ARM processor in STM32 have some funky pipeline and caches, making asm timing somewhat unreliable. As a result I used SPI for LED control. By selecting the right speed and the right data on the MISO line, you can have the waveform look exactly like what WS2812 requires. In this case sending 0xf8 at 8MHz is bit 1, and sending 0xc0 results in a bit 0. Since SPI is also used by SD card, an AND gate is added to insulate the LED data line when SD card is active.
Using duckyScript | duckyScript 3 Info
Common issues / Troubleshooting
Firmware Updates and Version History
Kickstarter Backer Acknowledgments
Please feel free to open an issue, ask in the official duckyPad discord, DM me on discord dekuNukem#6998
, or email dekuNukem
@gmail
.com
for inquires.