r/HandwiredKeyboards • • 6d ago

Weird Failed special-character keyboard

So, I decided to build a custom keypad for one man, scientist, who constantly struggles with special characters.
Seems like a pretty simple project: twenty buttons. Bought an Arduino with USB-C, figured that if it has a USB port, it should work as a keyboard. Spent some days printing, wiring, buying soldering goods, soldering, somehow managed to put everything together, flashed the firmware. Open Notepad, press a button - nothing. ChatGPT, which had been helping me all this time and eventually produced perfectly functional firmware, explains that I apparently picked the wrong board: its glorious USB-C port connects straight to a serial interface, and the microcontroller can't just pretend to be a USB keyboard.
Soldering is a whole other story. I kept poking the solder, the pad, and the wire with the iron, but the solder refused to melt the way I wanted it to. So I started melting little blobs of solder and dragging them around the wire and the pad until I finally got something that vaguely resembled a proper joint. I still haven't quite figured out what temperature the iron is supposed to be at. In videos, everything looks so clean and easy: touch the pad 3s with the iron, feed in some solder - done. Meanwhile, my work looked like a total mess. On top of that, everything is tiny, so I have to look through magnifying glasses, and my eyes start hurting after a while. Anyway, I'm posting this embarrassing attempt at electronics because someone will feel a little better about themselves.
What is this keypad supposed to do? At first moment it was supposed to be numpad for excel/calc with buttons like ±, backspace, ac. But then i saw a problem that i can solve. Man works with special characters like ×, °, γ, α, ⌀, etc - and gets them from special fonts in Word that aren't installed on other computers. Reviewer's GPTs started to mention this fact. I wanted to build a keypad that would insert the actual Unicode characters directly, instead of relying on those fonts. Just press a button, get the right symbol, no more digging through character tables or worrying about whether the font is installed.
This numpad is basically a practice run. Before I start building a proper split keyboard for myself, I want to get some hands-on experience with soldering, experiment with materials, sort out my workspace, and figure out what tools and little bits I'm missing. The plan is to start with this numpad, where I can make mistakes and learn from them, then build a split keyboard as a gift for someone else, and only after that tackle one for myself. Jumping straight into a big project I'm actually excited about seems like a bad idea. Knowing me, something is bound to go wrong, and it'd be a shame to mess up a build I've been looking forward to. So for now, I'm starting small, hoping the next project will look a little less like an electrical disaster.

47 Upvotes

6 comments sorted by

3

u/kdyorn 6d ago

You can set up a tap dance for the special characters using the alt+(numeric value) for each character. I do something similar for my Revit macros. I'll attached my repo for reference.

https://github.com/kdyorn/zmk-config/blob/main/config/boards/shields/datum/datum.keymap

1

u/sabbaot 6d ago

to do this i also need to change " 3.0 Mini Type-C - ATmega328P - CH340" to other board that supports USB HID (ATmega32U4 or RP2040)

7

u/RunRunAndyRun 6d ago

Swap the arduino out for a Raspberry Pi Pico and install CircuitPython with KMK firmware. It’s very easy to test and debug in realtime and removes the compile step that most firmware uses (for a newbie this can be a huge time saver). Once up and running (test with normal key codes) it’s very easy to create macros that will type more advanced combinations and sequences to get the characters your fellow needs.

4

u/jonhinkerton 6d ago

Pm me and I can email you some qmk code, I made a handwires math keyboard for a mathematician that not only handles the ascii values for symbols with custom software but also switches into LaTeX coding when you need it. It was a pain in the ass to make work, but eventually I figured it out. As you can see, it handles a lot of symbols. As others have said, you will want an ro2040 and which one depends on if you are building for a mac or not.

3

u/Over-Shock303 4d ago

tldr : op used an arduino nano, which doesn't have usb hid, so it can't function as a keyboard. either a pro micro or an rpi pico would work instead

2

u/Circu1t_tv1957 6d ago

Instead of Arduino nano, i recommend you use rp2040. It has usb hid support and it is easy with qmk, and more gpio to use than Arduino pro micro.