# 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.