nicebadge/README.md
Daniel Esteban 7486abdc23 fix
2026-04-14 19:16:20 +02:00

100 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# BadgeConf
**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.
---
![BadgeConf PCB render](assets/pcb1.png)
## 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.
![BadgeConf PCB circuit](assets/pcb2.png)
## 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).