4.2 KiB
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
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 Suggestions welcome. Open an issue or email 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/
thenmake all
→firefly.hex
.- Flash:
make flash
(editPROGRAMMER
andPORT
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
- Visual check; no shorts.
- Power at 3–5 V. Current < 10 mA idle.
- Program firmware over ISP.
- Verify Morse timing; adjust WPM in
config.h
if needed. - 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.