2026-04-14 17:04:43 +00:00
# BadgeConf
2026-04-14 16:31:01 +00:00
2026-04-14 17:04:43 +00:00
**BadgeConf** is an electronic conference badge and a hands-on platform for learning [TinyGo ](https://tinygo.org/ ) programming.
Whether you are attending a conference or just getting started with embedded development, BadgeConf gives you a real piece of hardware to hack on, complete with a ready-to-use firmware, step-by-step tutorials, and progressively more advanced examples that unlock every capability of the board.
---
## Features
| Peripheral | Details |
|---|---|
| Color display | Compact full-color screen (FJ08K-S) |
| Buttons | 2 Cherry MX hot-swap mechanical switches |
| Joystick | Alps EC11E rotary encoder with push switch |
| RGB LEDs | 2 × SK6812MINI-E addressable LEDs |
| StemmQT connector | JST SH 4-pin for I2C expansion modules |
| Buzzer | 5.5 mm buzzer for audio feedback |
| Bluetooth | BLE via the nRF52840 on the nice!nano |
| USB HID | Acts as a keyboard/mouse over USB thanks to the nice!nano |
| Battery | Onboard battery cell header (2-pin 2.00 mm) |
The microcontroller is the ** [nice!nano ](https://nicekeyboards.com/nice-nano/ )** (nRF52840), which is fully supported by TinyGo and exposes both USB HID and Bluetooth HID out of the box.
---
## Repository layout
```
badgeconf/
├── hardware/ # KiCad PCB design files
│ └── PCB-kicad/
│ └── production/ # Gerbers, BOM, pick-and-place files
├── firmware/ # Ready-to-use TinyGo firmware (coming soon)
└── tutorials/ # Step-by-step examples (coming soon)
```
---
## Getting started
### Prerequisites
- [TinyGo ](https://tinygo.org/getting-started/ ) ≥ 0.32
- [Go ](https://go.dev/dl/ ) ≥ 1.22
- A BadgeConf board (see hardware section below) or a compatible nice!nano dev board
### Flash the default firmware
```bash
tinygo flash -target=nicenano ./firmware/
```
---
## Hardware
All design files are located in [hardware/PCB-kicad/ ](hardware/PCB-kicad/ ).
Production files (Gerbers, BOM, positions) ready for fabrication are in [hardware/PCB-kicad/production/ ](hardware/PCB-kicad/production/ ).
### Bill of Materials
| Designator | Value / Part | Footprint | Qty |
|---|---|---|---|
| BT1 | Battery Cell | PinHeader 2× 01 P2.00 mm Vertical | 1 |
| BZ1 | Buzzer | Buzzer 5.5 mm | 1 |
| DISPLAY1 | Display connector | PinHeader 1× 08 P2.54 mm Vertical | 1 |
| H1, H2, H3, H4 | Mounting Hole | M2 | 4 |
| LED1, LED2 | YS-SK6812MINI-E | SK6812MINI-E | 2 |
| R1, R2 | Resistor | Axial DIN0207 L6.3 mm D2.5 mm P10.16 mm | 2 |
| STEMMAQT1 | StemmQT connector | JST SH SM04B-SRSS-TB 1× 04 P1.00 mm | 1 |
| SW1, SW2B1 | Push switch | Cherry MX Hot-swap | 2 |
| SW2 | Rotary Encoder + Switch | Alps EC11E Vertical H20 mm | 1 |
| SW2B, SW2C | Key switch | Strap hole | 2 |
| U1 | nice!nano | nice_nano | 1 |
| U2 | FJ08K-S | FJ08K-S | 1 |
---
## Tutorials & examples
The tutorial series walks you through every peripheral of the badge, starting from blinking an LED and ending with a Bluetooth HID device:
1. Hello, Badge! — blink the RGB LEDs
2. Drawing on the display — TinyGo + TinyDraw
3. Reading buttons and the joystick
4. Playing sounds with the buzzer
5. I2C expansion via StemmQT
6. Going wireless — BLE advertisements and GATT services
7. USB HID — turn the badge into a keyboard
*(Tutorials are coming soon — contributions welcome!)*
---
## License
See [LICENSE ](LICENSE ).