Build Guide

Visit the official repository to download the example code and get the latest version.

Bill of Materials

#ComponentNotes
1PCBNiceBadge PCB, see hardware/PCB-kicad/
1nice!nanoor compatible nRF52840 microcontroller board
1ST7789 displaySPI 1.14" 135×240 px
1Rotary encoderAlps EC11E with push switch
1Analog joystickFJ08K-S
1Passive buzzer5.5 mm
2RGB LEDSK6812MINI-E (WS2812 compatible), bottom-mount
2Pull-up resistor4.7 kΩ axial
2Key switchCherry MX compatible
2Key capMX stem
2Key socketCherry MX hot-swap
1Qwiic / StemmQT connectorJST SH 4-pin
1Battery connectorJST 2.0 PH 2-pin
2Flathead screwM2.1 × 10 mm or M2.0 × 10 mm
1Printed back coverFDM printed, see hardware/stl/
1Printed front frameFDM printed, see hardware/stl/

Tools

  • Soldering iron + solder
  • Flux
  • Fine-tip tweezers
  • Helping hands or PCB holder
  • Isopropyl alcohol + brush (cleanup)

Assembly Steps

Step 1 - Solder the StemmQT connector (back)

Solder the JST SH 4-pin Qwiic / StemmQT connector on the back of the PCB. The connector is surface-mounted; you might use some flux to help you with the process, add some solder to the board, put the connector and push gently with the iron.

Step 2 - Solder back-side SMD components

Solder the two SK6812MINI-E RGB LEDs on the back of the PCB. The SK6812MINI-E is a bottom-mount LED - the light emits downward through the board cutouts. Check the orientation mark on each LED package before soldering.

Step 3 - Solder the key sockets and the battery connector

Solder the two Cherry MX hot-swap sockets on the back of the PCB. Press each socket firmly into the pad before and during soldering so it sits flat.

Solder the JST 2.0 PH 2-pin battery connector on the back. Double-check polarity - the + pad is marked on the silkscreen.

Step 4 - Solder the rotary encoder and the resistors

Flip the board. Insert the Alps EC11E rotary encoder and the two 4.7 kΩ pull-up resistors through the front and solder on the back. Make sure the encoder sits flush against the PCB before soldering all pins.

Step 5 - Solder the analog joystick

Insert the Alps EC11E analog joystick module in the left footprint and solder all 5 pins.

Step 6 - nice!nano, buzzer & display

Insert the two pin header strips (or Mill-Max sockets) for the nice!nano. Keep them perfectly vertical - use the nice!nano itself as a alignment guide without soldering it yet.

Press the nice!nano onto the pin headers. The USB-C port should face the left edge of the badge. Solder the nice!nano to the headers.

Optionally place a strip of kapton tape over the nice!nano to hold it in place while soldering on the back side. Put the buzzer and display too.

Solder everything on the back side.

Step 8 Trim excess

Everything is solder now, use some plipers to cut excess of the headers on both sides.

Step 9 - Place plastic parts

Place the plastic parts: front and back covers, also rotary know and joystick hat.

Place the printed back cover over the rear of the PCB, aligning the mounting holes. Secure it with the two M2.1 × 10 mm flathead screws.

Step 10 - Install the key switches

Press the two Cherry MX key switches into the hot-swap sockets from the front. The pins must click fully into the socket - a half-seated switch will not make contact.

⚠️ BE CAREFUL to not bend the contacts while inserting them.

Press the keycaps onto the key switch stems until they click into place.

Step 11 - Flash the firmware and test

Connect the badge to your computer via USB-C and flash the demo firmware:

cd tutorial
tinygo flash -target nicenano ./basics/step0

Verify the display turns on and all peripherals respond before closing the battery compartment.

Step 12 - Optional: connect a battery

Connect the LiPo battery to the JST 2.0 connector on the back. You can use a velcro patch to secure the battery to the back

⚠️ Observe polarity - red wire to +, black wire to . Reversing polarity will damage the nice!nano.

Done

Your NiceBadge is ready. Here’s where to go next:

docs