badges/README.md

70 lines
2.1 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.

# 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. `<name>_<WxH>.png` / `.jpg` — predefined resized variant, used as-is (no resize)
2. `<name>.png` / `.jpg` / `.jpeg` — base image, resized with BiLinear interpolation
3. Cache hit (`cache/<name>_<WxH>.bin`) — skips all image processing on repeat runs
Generated `.bin` files in `cache/` are gitignored.