# badges TinyGo badge firmware for multiple hardware targets (GopherBadge, NiceBadge, GoBadge/PyBadge). ## Hardware targets | Target | Build tag | Resolution | |--------|-----------|------------| | GopherBadge | `gopher_badge` | 320×240 | | NiceBadge | `nicenano` | 240×135 | | GoBadge / PyBadge | `pybadge` | 160×128 | ## Generating logo.bin The badge firmware embeds a `logo.bin` file displayed at boot (`showLogoBin` in `badge.go`). Use the `logogen` command to convert any image to the required hex format. ### Setup ```sh cd cmd/logogen go mod download ``` ### Usage ```sh # By target name go run . -size nicebadge -image tinygo go run . -size gopherbadge -image gopherconeu go run . -size gobadge -image golab # By explicit resolution go run . -size 320x240 -image /path/to/logo.jpg # Write directly to the project root logo.bin go run . -size nicebadge -image tinygo -output ../../logo.bin ``` ### Flags | Flag | Default | Description | |------|---------|-------------| | `-size` | *(required)* | Target name (`nicebadge`, `gopherbadge`, `gobadge`, `pybadge`) or explicit resolution (`320x240`) | | `-image` | *(required)* | File path (relative or absolute) or short name | | `-output` | `logo.bin` | Output file | | `-images-dir` | `images` | Directory with source images | | `-cache-dir` | `cache` | Directory for cached `.bin` files | ### Adding images Place source images inside `cmd/logogen/images/`: ``` cmd/logogen/images/ tinygo.jpg ← source image for short name "tinygo" tinygo_240x135.png ← predefined variant for nicebadge (skip resize) tinygo_320x240.png ← predefined variant for gopherbadge (skip resize) gopherconeu.jpg golab.png ... ``` **Resolution priority** for a given short name + target: 1. `_.png` / `.jpg` — predefined resized variant, used as-is (no resize) 2. `.png` / `.jpg` / `.jpeg` — base image, resized with BiLinear interpolation 3. Cache hit (`cache/_.bin`) — skips all image processing on repeat runs Generated `.bin` files in `cache/` are gitignored.