2025-09-07 13:18:41 +00:00
2025-09-07 13:18:41 +00:00

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.

Its 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/ then make allfirefly.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 35 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.

Description
This is my “Hello World” hardware project on the new ToGo-Lab server.
https://togo-lab.io/?p=82 Readme 75 KiB
Languages
C++ 100%