Skip to content

Latest commit

 

History

History
126 lines (63 loc) · 4.54 KB

build_it_yourself.md

File metadata and controls

126 lines (63 loc) · 4.54 KB

Make a duckyPad Yourself!

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:

Circuit board

The board is a simple 2-layer board. Don't forget the cutout for the OLED screen in the milling layer!

Alt text

RGB LED

The RGB LED is SK6812 MINI-E.

Alt text

It is reverse mount, and pay attention to the orientation!

Alt text

Switches

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.

Alt text

Hot Swap Sockets

I used Kalih hot-swap sockets for Cherry MX switches:

Alt text

Mounting Plates

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.

Alt text

OLED

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:

Alt text

Keycaps

Any Cherry-MX stem keycaps would work.

USB Type-C connector

Search USB 16p on aliexpress for the connector. Should look like this:

Alt text

Datasheet:

Alt text

Tactile Buttons

Try searching 3X4X2.5MM White Tactile Button on aliexpress.

Should look like this:

Alt text

For reset and DFU button, try searching SMD Side Tact Tactile Push Button:

Alt text

Technical notes

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.

Table of Contents

Main page

Getting Started Guide

Kit Assembly Guide

Using duckyScript | duckyScript 3 Info

Common issues / Troubleshooting

Firmware Updates and Version History

Make Your Own Keymap

Build a duckyPad Yourself

Kickstarter Backer Acknowledgments

Questions or Comments?

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.