SW to v0.4, timing only via watchdog, filled a little bit README.MD
This commit is contained in:
1 parent
b77e1d5a51
commit
28f49e8463
2 files changed
+240
-110
No files matched your search
@@ -14,7 +14,16 @@ FireFly Solar is a small outdoor LED blinker inspired by the idea of an LED thro
|
||||
During the day, the solar cell charges the energy storage.
|
||||
At night, the circuit wakes up and sends a simple Morse-style light signal.
|
||||
|
||||
The project is partly a small garden object, partly a low-power electronics experiment, and partly a design exercise for future DIY kits.
|
||||
## About this Project
|
||||
|
||||
FireFly Solar is my **technology playground**. It is a small garden object, but its real purpose is to learn by building something complete. With it I learn about:
|
||||
|
||||
- **Circuit design at the edge**: in this case, as low power as possible
|
||||
- **PCB design**
|
||||
- **Weatherproof casing**
|
||||
- **ATtiny programming**
|
||||
|
||||
Possible next technology step: everything about DIY SMD design and soldering.
|
||||
|
||||
## Project Goals
|
||||
|
||||
@@ -24,6 +33,40 @@ The project is partly a small garden object, partly a low-power electronics expe
|
||||
- Test mechanical concepts for outdoor 3D-printed parts
|
||||
- Learn what is needed to turn a small electronics project into a possible DIY kit
|
||||
|
||||
## Software
|
||||
|
||||
The firmware runs on an **ATtiny85** at 1 MHz (internal clock, ATTinyCore: `clock=1internal`, `millis=disabled`). The LED itself is used as the light sensor. When it is dark, the firefly sends a short Morse text ("TGO 26") about once a minute.
|
||||
|
||||
### Current Firmware version: v0.4 (2026-11-08)
|
||||
|
||||
Goal: lowest possible average current.
|
||||
|
||||
Changes vs v0.3:
|
||||
|
||||
- No `delay()` / `millis()`; Timer0 and Timer1 are gated off in PRR.
|
||||
- The watchdog (interrupt mode) is the only timebase: Morse units (~96 ms), the sensing window and the 8 s sleeps. The CPU sleeps in power-down in between.
|
||||
- Darkness sensing: the CPU sleeps in 16 ms steps while the LED junction discharges, instead of a busy `digitalRead()` loop. Bright light exits after the first step. `darknessThreshold` is replaced by `darkSteps`.
|
||||
- The ADC is disabled before it is gated off in PRR; pins are set up before PRR.
|
||||
- After a power-on or external reset, no blinking for `RECOVER_CYCLES` (about 16 min), so the supercap can recharge.
|
||||
- `DEBUG_TEST` switch for bench testing: 8 s cycle, no recovery wait, short flash when the sketch decides "bright". Set it to 0 for the field.
|
||||
- Optional `BOD_FUSE_ENABLED` (BOD off during sleep); unused with the BOD fuse off.
|
||||
|
||||
Tested: compiles with ATTinyCore and runs on hardware. Current draw is not yet measured.
|
||||
|
||||
## PCB
|
||||
|
||||
- Finished: a batch of 10 is assembled, tested and working.
|
||||
- Latest adjustment: fine-tuned the resistors for the LED, and the 3.9 V Zener diode is confirmed safe avoid overcharging 4V supercap.
|
||||
- Next version: the PCB should be a little shorter. The wiring space is a bit too tight now.
|
||||
|
||||
## Casing
|
||||
|
||||
Works basically as intended. Lessons for the next version:
|
||||
|
||||
- Better locking of the solar modules.
|
||||
- The rope structure works, but building it is too complicated and takes a lot of nerves.
|
||||
- Using material tension to secure the modules via rope was basically a good idea.
|
||||
|
||||
## Naming
|
||||
|
||||
The English project name remains:
|
||||
@@ -39,9 +82,12 @@ The name roughly means **sun-disc firefly**. It keeps the solar theme, adds a sl
|
||||
---
|
||||
|
||||
## Contributing
|
||||
PRs and issues welcome. Keep it simple.
|
||||
|
||||
PRs and issues welcome. Keep it simple.
|
||||
Photos of your build you send me go in `Documentation/gallery/` with a short caption and license notice.
|
||||
|
||||
---
|
||||
|
||||
## Default license**: [CC-BY-NC-4.0](https://creativecommons.org/licenses/by-nc/4.0/)
|
||||
## License
|
||||
|
||||
Default license: [CC-BY-NC-4.0](https://creativecommons.org/licenses/by-nc/4.0/)
|
||||
Reference in new issue
Block a user