USB type-A dongle based on the nRF52840 microcontroller. Meant to run the COB firmware.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-04-19 17:29:15 +02:00
1_Library.pretty remove USB pads from solder paste layer (again) 2026-04-03 23:42:27 +02:00
.gitignore add jobset 2025-07-21 18:10:15 +02:00
fp-info-cache remove USB pads from solder paste layer (again) 2026-04-03 23:42:27 +02:00
fp-lib-table add first draft of schematic 2025-07-21 18:10:15 +02:00
LEARNING.md add learning resources 2025-09-16 21:24:57 +02:00
LICENSE first commit 2025-07-21 18:10:15 +02:00
output.kicad_jobset ordered rev 3 2026-04-03 23:34:37 +02:00
README.md update readme 2026-04-19 17:29:15 +02:00
rf-dongle-jig.jpg add learning resources 2025-09-16 21:24:57 +02:00
rf-dongle.jpg add learning resources 2025-09-16 21:24:57 +02:00
rf-dongle.kicad_pcb remove USB pads from solder paste layer (again) 2026-04-03 23:42:27 +02:00
rf-dongle.kicad_prl remove USB pads from solder paste layer (again) 2026-04-03 23:42:27 +02:00
rf-dongle.kicad_pro ordered rev 3 2026-04-03 23:34:37 +02:00
rf-dongle.kicad_sch ordered rev 3 2026-04-03 23:34:37 +02:00

RF Dongle

USB type-A dongle based on the nRF52840 microcontroller.

This dongle is meant to run the COB firmware, though technically you can flash whatever you want on it.

Current state

What works

  • The dongle can be programmed through the SWD pads exposed on the back of the PCB.
  • Debugging the microcontroller while it runs also works, through the same SWD pads.
  • LEDs and reset buttons work.
  • The chip antenna works and has a good range. I haven't tested its limit, but I tried both sending and receiving packets across a room (5-ish meters with a wall in between) and it worked fine and that's more than enough for my application.
  • USB power is working, the device gets detected by the host, and it can enumerate as a HID device (haven't tried other USB 2.0 classes, but they should in theory work).

What needs improvement

  • The USB connector (PCB trace) is quite thin, and in some USB ports it doesn't make a solid connection. One workaround is to add some tape on the underside of the PCB to increase its thickness. Need to figure out a neater solution though.

Pics

This is the manufactured PCB (at this commit). The component pads are designed to make it easier to hand solder the components, which is what I did.


picture of manufactured PCBs

Below is the test jig I'm using to program and debug the dongle. I hacked this together with a perforated board, a few pogo pins, and battery connectors I had lying around.


picture of testing jig for assembled rf-dongle

Contributing

If you (unlike me) know what you're doing, and have tips for my circuit design, please create an issue and tell me about it 🙏

Learning

If you're curious about my learning journey with this project, I've documented that here.