readme
This commit is contained in:
parent
d669370c61
commit
e9b36a62fa
7 changed files with 258 additions and 1 deletions
98
README.md
98
README.md
|
|
@ -1,2 +1,98 @@
|
|||
# badgeconf
|
||||
# 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.
|
||||
|
||||
---
|
||||
|
||||
## 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).
|
||||
|
|
|
|||
Binary file not shown.
BIN
hardware/PCB-kicad/production/badgeconf.zip
Normal file
BIN
hardware/PCB-kicad/production/badgeconf.zip
Normal file
Binary file not shown.
13
hardware/PCB-kicad/production/bom.csv
Normal file
13
hardware/PCB-kicad/production/bom.csv
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
Designator,Footprint,Quantity,Value,LCSC Part #
|
||||
BT1,PinHeader_2x01_P2.00mm_Vertical,1,Battery_Cell,
|
||||
BZ1,buzzer 5.5mm,1,Buzzer,
|
||||
DISPLAY1,PinHeader_1x08_P2.54mm_Vertical,1,Conn_01x08_Socket,
|
||||
"H1, H2, H3, H4",M2_HOLE_v2,4,MountingHole,
|
||||
"LED1, LED2",YS-SK6812MINI-E,2,YS-SK6812MINI-E,
|
||||
"R1, R2",R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal,2,R,
|
||||
STEMMAQT1,JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal,1,Conn_01x04_Socket,
|
||||
"SW1, SW2B1",CherryMX_Hotswap,2,SW_PUSH,
|
||||
SW2,RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm,1,RotaryEncoder_Switch,
|
||||
"SW2B, SW2C",strap_hole,2,KEY_SWITCH,
|
||||
U1,nice_nano,1,nice_nano,
|
||||
U2,FJ08K-S,1,fj08k-s,
|
||||
|
19
hardware/PCB-kicad/production/designators.csv
Normal file
19
hardware/PCB-kicad/production/designators.csv
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
BT1:1
|
||||
BZ1:1
|
||||
DISPLAY1:1
|
||||
H1:1
|
||||
H2:1
|
||||
H3:1
|
||||
H4:1
|
||||
LED1:1
|
||||
LED2:1
|
||||
R1:1
|
||||
R2:1
|
||||
STEMMAQT1:1
|
||||
SW1:1
|
||||
SW2:1
|
||||
SW2B:1
|
||||
SW2B1:1
|
||||
SW2C:1
|
||||
U1:1
|
||||
U2:1
|
||||
|
113
hardware/PCB-kicad/production/netlist.ipc
Normal file
113
hardware/PCB-kicad/production/netlist.ipc
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
P CODE 00
|
||||
P UNITS CUST 0
|
||||
P arrayDim N
|
||||
317GND VIA MD0118PA00X+028214Y-013017X0236Y0000R000S3
|
||||
3173V3 VIA MD0118PA00X+014719Y-029293X0236Y0000R000S3
|
||||
3173V3 VIA MD0118PA00X+042519Y-019435X0236Y0000R000S3
|
||||
3173V3 VIA MD0118PA00X+014850Y-024532X0236Y0000R000S3
|
||||
317SK6812MINI-E VIA MD0118PA00X+044850Y-011855X0236Y0000R000S3
|
||||
317SCL VIA MD0118PA00X+014708Y-030017X0236Y0000R000S3
|
||||
317SDA VIA MD0118PA00X+015794Y-027949X0236Y0000R000S3
|
||||
317ROT_B VIA MD0118PA00X+023879Y-016694X0236Y0000R000S3
|
||||
317SW_1 VIA MD0118PA00X+044078Y-023775X0236Y0000R000S3
|
||||
317SW_2 VIA MD0118PA00X+043679Y-019559X0236Y0000R000S3
|
||||
317BATIN VIA MD0118PA00X+013794Y-017285X0236Y0000R000S3
|
||||
317SCK VIA MD0118PA00X+030494Y-016894X0236Y0000R000S3
|
||||
317BUZZER BZ1 -1 D0630PA00X+015435Y-030600X1000Y0000R000S0
|
||||
317GND BZ1 -2 D0630PA00X+017600Y-030600X1000Y0000R000S0
|
||||
367N/C H3 D1693UA00X+015354Y-033858X1693Y0000R000S0
|
||||
317ROT_A SW2 -A D0394PA00X+043602Y-013189X0787Y0787R000S0
|
||||
317ROT_B SW2 -B D0394PA00X+043602Y-015157X0787Y0000R000S0
|
||||
317GND SW2 -C D0394PA00X+043602Y-014173X0787Y0000R000S0
|
||||
317N/C SW2 -MP D0591PA00X+046555Y-011969X1260Y0787R000S0
|
||||
317N/C SW2 -MP D0591PA00X+046555Y-016378X1260Y0787R000S0
|
||||
317ROT_BTN SW2 -S1 D0394PA00X+049311Y-015157X0787Y0000R000S0
|
||||
317GND SW2 -S2 D0394PA00X+049311Y-013189X0787Y0000R000S0
|
||||
327GND Stemma-1 A01X+013956Y-028907X0236Y0610R090S2
|
||||
3273V3 Stemma-2 A01X+013956Y-029301X0236Y0610R090S2
|
||||
327SDA Stemma-3 A01X+013956Y-029694X0236Y0610R090S2
|
||||
327SCL Stemma-4 A01X+013956Y-030088X0236Y0610R090S2
|
||||
327N/C Stemma-MP A01X+012430Y-028395X0472Y0709R090S2
|
||||
327N/C Stemma-MP A01X+012430Y-030600X0472Y0709R090S2
|
||||
367N/C SW1 D0748UA00X+044654Y-029134X0748Y0000R000S0
|
||||
367N/C SW1 D1181UA00X+045154Y-028134X1181Y0000R000S0
|
||||
367N/C SW1 D1614UA00X+046654Y-029134X1614Y0000R270S0
|
||||
367N/C SW1 D1181UA00X+047654Y-027134X1181Y0000R000S0
|
||||
367N/C SW1 D0748UA00X+048654Y-029134X0748Y0000R000S0
|
||||
327SW_1 SW1 -1 A02X+043864Y-028134X1004Y0984R180S1
|
||||
327GND SW1 -2 A02X+048954Y-027134X1004Y0984R180S1
|
||||
3173V3 R1 -1 D0315PA00X+030400Y-018800X0630Y0000R180S0
|
||||
317SDO R1 -2 D0315PA00X+026400Y-018800X0630Y0000R180S0
|
||||
367N/C H4 D1693UA00X+047638Y-033858X1693Y0000R000S0
|
||||
367N/C SW2b1 D0748UA00X+044654Y-021260X0748Y0000R000S0
|
||||
367N/C SW2b1 D1181UA00X+045154Y-020260X1181Y0000R000S0
|
||||
367N/C SW2b1 D1614UA00X+046654Y-021260X1614Y0000R270S0
|
||||
367N/C SW2b1 D1181UA00X+047654Y-019260X1181Y0000R000S0
|
||||
367N/C SW2b1 D0748UA00X+048654Y-021260X0748Y0000R000S0
|
||||
327SW_2 SW2b1 -1 A02X+043864Y-020260X1004Y0984R180S1
|
||||
327GND SW2b1 -2 A02X+048954Y-019260X1004Y0984R180S1
|
||||
317SH}P0.06-PAD1) U1 -1 D0430PA00X+013370Y-017717X0690Y0000R000S0
|
||||
317SH}P0.08-PAD2) U1 -2 D0430PA00X+014370Y-017717X0690Y0000R000S0
|
||||
317GND U1 -3 D0430PA00X+015370Y-017717X0690Y0000R000S0
|
||||
317GND U1 -4 D0430PA00X+016370Y-017717X0690Y0000R000S0
|
||||
317SDA U1 -5 D0430PA00X+017370Y-017717X0690Y0000R000S0
|
||||
317SCL U1 -6 D0430PA00X+018370Y-017717X0690Y0000R000S0
|
||||
317ROT_BTN U1 -7 D0430PA00X+019370Y-017717X0690Y0000R000S0
|
||||
317ROT_A U1 -8 D0430PA00X+020370Y-017717X0690Y0000R000S0
|
||||
317ROT_B U1 -9 D0430PA00X+021370Y-017717X0690Y0000R000S0
|
||||
3171-P0.11-PAD10) U1 -10 D0430PA00X+022370Y-017717X0690Y0000R000S0
|
||||
317SW_1 U1 -11 D0430PA00X+023370Y-017717X0690Y0000R000S0
|
||||
317SW_2 U1 -12 D0430PA00X+024370Y-017717X0690Y0000R000S0
|
||||
317BLK U1 -13 D0430PA00X+024370Y-011717X0690Y0000R000S0
|
||||
317CS U1 -14 D0430PA00X+023370Y-011717X0690Y0000R000S0
|
||||
317SK6812MINI-E U1 -15 D0430PA00X+022370Y-011717X0690Y0000R000S0
|
||||
317DC U1 -16 D0430PA00X+021370Y-011717X0690Y0000R000S0
|
||||
317RES U1 -17 D0430PA00X+020370Y-011717X0690Y0000R000S0
|
||||
317VR_Y U1 -18 D0430PA00X+019370Y-011717X0690Y0000R000S0
|
||||
317VR_X U1 -19 D0430PA00X+018370Y-011717X0690Y0000R000S0
|
||||
317BUZZER U1 -20 D0430PA00X+017370Y-011717X0690Y0000R000S0
|
||||
3173V3 U1 -21 D0430PA00X+016370Y-011717X0690Y0000R000S0
|
||||
317(U1-RST-PAD22) U1 -22 D0430PA00X+015370Y-011717X0690Y0000R000S0
|
||||
317GND U1 -23 D0430PA00X+014370Y-011717X0690Y0000R000S0
|
||||
317BATIN U1 -24 D0430PA00X+013370Y-011717X0690Y0000R000S0
|
||||
317SCK U1 -31 D0430PA00X+022370Y-016717X0690Y0000R000S0
|
||||
317SDO U1 -32 D0430PA00X+022370Y-015717X0690Y0000R000S0
|
||||
3171-P1.07-PAD33) U1 -33 D0430PA00X+022370Y-014717X0690Y0000R000S0
|
||||
317N/C U1 -34 D0430PA00X+023090Y-016607X0690Y0000R000S0
|
||||
317N/C U1 -35 D0430PA00X+023090Y-015607X0690Y0000R000S0
|
||||
317N/C U1 -36 D0430PA00X+023090Y-014607X0690Y0000R000S0
|
||||
317N/C U1 -37 D0430PA00X+012370Y-011717X0690Y0000R000S0
|
||||
317N/C U1 -38 D0430PA00X+012370Y-017717X0690Y0000R000S0
|
||||
317GND DISPLA-1 D0394PA00X+027953Y-009449X0669Y0669R270S0
|
||||
3173V3 DISPLA-2 D0394PA00X+028953Y-009449X0669Y0000R270S0
|
||||
317SCK DISPLA-3 D0394PA00X+029953Y-009449X0669Y0000R270S0
|
||||
317SDO DISPLA-4 D0394PA00X+030953Y-009449X0669Y0000R270S0
|
||||
317RES DISPLA-5 D0394PA00X+031953Y-009449X0669Y0000R270S0
|
||||
317DC DISPLA-6 D0394PA00X+032953Y-009449X0669Y0000R270S0
|
||||
317CS DISPLA-7 D0394PA00X+033953Y-009449X0669Y0000R270S0
|
||||
317BLK DISPLA-8 D0394PA00X+034953Y-009449X0669Y0000R270S0
|
||||
367N/C H1 D1693UA00X+015354Y-009449X1693Y0000R000S0
|
||||
367N/C U2 D0630UA00X+013275Y-020977X0630Y0000R000S0
|
||||
367N/C U2 D0630UA00X+018000Y-025701X0630Y0000R000S0
|
||||
317GND U2 -1 D0433PA00X+016425Y-019953X0600Y0000R000S0
|
||||
317VR_X U2 -2 D0433PA00X+015637Y-019953X0600Y0000R000S0
|
||||
3173V3 U2 -3 D0433PA00X+014850Y-019953X0600Y0000R000S0
|
||||
3173V3 U2 -4 D0433PA00X+019023Y-024126X0600Y0000R000S0
|
||||
317VR_Y U2 -5 D0433PA00X+019023Y-023339X0600Y0000R000S0
|
||||
317GND U2 -6 D0433PA00X+019023Y-022552X0600Y0000R000S0
|
||||
317(U2-SW-A-PAD7) U2 -7 D0433PA00X+018236Y-020189X0600Y0000R000S0
|
||||
317(U2-SW-B-PAD8) U2 -8 D0433PA00X+018787Y-020741X0600Y0000R000S0
|
||||
367N/C H2 D1693UA00X+047638Y-009449X1693Y0000R000S0
|
||||
3173V3 R2 -1 D0315PA00X+036400Y-018800X0630Y0000R180S0
|
||||
317SCK R2 -2 D0315PA00X+032400Y-018800X0630Y0000R180S0
|
||||
317BATIN BT1 -1 D0315PA00X+023400Y-019313X0531Y0531R090S0
|
||||
317GND BT1 -2 D0315PA00X+023400Y-020100X0531Y0000R090S0
|
||||
3273V3 LED1 -1 A02X+045177Y-022953X0669Y0394R180S1
|
||||
327ET-(LED1-DOUT) LED1 -2 A02X+045177Y-023504X0669Y0394R180S1
|
||||
327GND LED1 -3 A02X+047343Y-023504X0669Y0394R180S1
|
||||
327SK6812MINI-E LED1 -4 A02X+047343Y-022953X0669Y0394R180S1
|
||||
3273V3 LED2 -1 A02X+045374Y-030827X0669Y0394R180S1
|
||||
327ED2-DOUT-PAD2) LED2 -2 A02X+045374Y-031378X0669Y0394R180S1
|
||||
327GND LED2 -3 A02X+047539Y-031378X0669Y0394R180S1
|
||||
327ET-(LED1-DOUT) LED2 -4 A02X+047539Y-030827X0669Y0394R180S1
|
||||
999
|
||||
16
hardware/PCB-kicad/production/positions.csv
Normal file
16
hardware/PCB-kicad/production/positions.csv
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
Designator,Mid X,Mid Y,Rotation,Layer
|
||||
BT1,59.436,-50.054,270.0,bottom
|
||||
BZ1,41.954,-77.724,0.0,top
|
||||
DISPLAY1,79.89,-24.0,90.0,top
|
||||
LED1,117.5,-59.0,0.0,bottom
|
||||
LED2,118.0,-79.0,0.0,bottom
|
||||
R1,72.136,-47.752,180.0,top
|
||||
R2,87.376,-47.752,180.0,top
|
||||
STEMMAQT1,33.4472,-74.924,270.0,top
|
||||
SW1,117.8785,-71.735,0.0,top
|
||||
SW2,118.0,-36.0,0.0,top
|
||||
SW2B,49.982,-24.13,0.0,top
|
||||
SW2B1,117.8785,-51.735,0.0,top
|
||||
SW2C,109.982,-24.13,0.0,top
|
||||
U1,46.66,-37.38,0.0,top
|
||||
U2,41.0,-58.0,0.0,top
|
||||
|
Loading…
Reference in a new issue