117 lines
4.2 KiB
Markdown
117 lines
4.2 KiB
Markdown
# ToGo-Lab FireFly Morse Blinker
|
||
|
||
**DIY kit**: ATtiny-based Morse blinker. Through-hole. No mains. Simple on purpose.
|
||
**Default license**: [CC-BY-NC-4.0](https://creativecommons.org/licenses/by-nc/4.0/)
|
||
|
||
---
|
||
|
||
## Intro
|
||
|
||
This is my “Hello World” hardware project on the new ToGo-Lab server. Years ago I built a tiny Morse throwie: ATtiny + one LED + one resistor, plus firmware. This version adds a supercapacitor and small solar cells. It uses the LED as a light detector, so it only blinks in the dark.
|
||
|
||
It’s not a throwie anymore. Hang it anywhere with decent light (for charging) and dry conditions and let it blink Morse on its own during night.
|
||
|
||
Goal: a beginner-friendly DIY kit with clear docs and hackable firmware.
|
||
|
||
|
||
Checkout also the [blog about this project](https://togo-lab.io/)
|
||
Suggestions welcome. Open an issue or email [tgohle@togo-lab.io](mailto:tgohle@togo-lab.io).
|
||
|
||
---
|
||
|
||
## Repo layout
|
||
```
|
||
0001_FireFly/
|
||
├─ KiCad/ # .kicad_pro, schematic, PCB, fabrication outputs
|
||
├─ CAD/ # 2D/3D mechanical drawings, panel outlines (if any)
|
||
├─ Programm/ # firmware source, hex, Makefiles / Arduino sketches
|
||
└─ Documentation/ # assembly guide, quick start, FAQ, photos, BOM CSV
|
||
```
|
||
|
||
---
|
||
|
||
## Hardware
|
||
- **MCU**: ATtiny45/85 (internal RC clock, no crystal).
|
||
- **I/O**: 1× LED + series resistor. Unused pins broken out to breadboard-style pads.
|
||
- **Programming**: external ISP programmer via Arduino IDE; PDIP-8 ATtiny45/85 footprint.
|
||
- **Power**: 3V DC (coin cell & & solar cell + supercapacitor with Schottky diodes to extend battery power).
|
||
- **Safety**: low voltage only. Observe polarity.
|
||
- **PCB**: hackable; access to unused ATtiny pins.
|
||
|
||
> PCB notes: big pads for beginners, clear silks, LED polarity marks, ISP near board edge for pogo-clip.
|
||
|
||
---
|
||
|
||
## KiCad
|
||
- **Version**: 7.x or newer recommended.
|
||
- Open `0001_FireFly/KiCad/ToGo-Lab_FireFly.kicad_pro`.
|
||
- Run ERC/DRC and fix errors before fabrication.
|
||
- Plot: Gerbers + drill. Add a README in `KiCad/fab/` with board thickness, finish, mask color, and min track/space.
|
||
- Optional: panel outline DXF/SVG in `CAD/`.
|
||
|
||
---
|
||
|
||
## Firmware
|
||
Two paths. Use what you like.
|
||
|
||
### A) Arduino IDE
|
||
- Board core: any stable ATtiny45/85 core.
|
||
- Clock: **internal**. No fuse change required for first tests.
|
||
- Programmer: USBasp / AVRISPmkII / Arduino-as-ISP.
|
||
- Open the sketch in `0001_FireFly/Programm/arduino/`.
|
||
- Set message and WPM in `config.h`. Build and **Upload Using Programmer**.
|
||
> Timing: internal RC. Unit may run at 1 MHz (CKDIV8) by default—adjust `F_CPU` or disable CKDIV8.
|
||
|
||
### B) avr-gcc + make
|
||
- Toolchain: `avr-gcc`, `avr-libc`, `avrdude`.
|
||
- `cd 0001_FireFly/Programm/avr/` then `make all` → `firefly.hex`.
|
||
- Flash: `make flash` (edit `PROGRAMMER` and `PORT` in the Makefile).
|
||
- `config.h` holds CPU clock, WPM, brightness.
|
||
|
||
---
|
||
|
||
## Assembly
|
||
- Follow `Documentation/ToGo-Lab_FireFly_Assembly_Guide.md`.
|
||
- First power-up: LED should blink test pattern. If not, recheck polarity and bridges.
|
||
|
||
---
|
||
|
||
## Test / Bring-up
|
||
1. Visual check; no shorts.
|
||
2. Power at 3–5 V. Current < 10 mA idle.
|
||
3. Program firmware over ISP.
|
||
4. Verify Morse timing; adjust WPM in `config.h` if needed.
|
||
5. Optional: measure sleep current.
|
||
|
||
---
|
||
|
||
## BOM
|
||
- `Documentation/ToGo-Lab_FireFly_BOM.csv` is the source of truth.
|
||
- Columns: `Designator,Qty,Manufacturer,MPN,Alt1,Description,Notes`.
|
||
- Keep alternates for LED and MCU. Note lot/date codes in commit messages for production.
|
||
|
||
---
|
||
|
||
## Files to fabricate
|
||
- Gerbers and drill files from `KiCad/fab/` (board house-ready).
|
||
- Project file: `0001_FireFly/KiCad/ToGo-Lab_FireFly.kicad_pro`.
|
||
|
||
---
|
||
|
||
## Known constraints
|
||
- Through-hole only. No reflow.
|
||
- Minimal I/O to keep it beginner-friendly.
|
||
- Low power is nice but optional; optimize after the basic release.
|
||
|
||
---
|
||
|
||
## Roadmap (tech only)
|
||
- v0.1-proto: breadboard + first PCB, single message, speed presets.
|
||
- v1.0: build guide, BOM with alternates, pilot 10 units.
|
||
- v1.1: docs polish, optional brightness setting, minor PCB tweaks.
|
||
|
||
---
|
||
|
||
## Contributing
|
||
PRs and issues welcome. Keep it simple. Reproducible steps beat long essays.
|
||
Photos of your build go in `Documentation/gallery/` with a short caption and license notice. |