Resurrect project: repo cleanup, dual licensing, CI, and roadmap - #11
Merged
Conversation
- Drop EAGLE autosave/backup files (.b#, .s#), eagle.epf, and svg2poly.log from version control; keep the real .brd/.sch/.pro design files. - Stop tracking IDE files and ignore .idea/ and EAGLE backups going forward. - Fix the non-compiling adafruit_strand_test (duplicate STRAND_4_PIXELS defines and three strips all named strip4). - Remove a duplicated strand-4 advance block in fastled_strand_test. - Move standalone dev sketches out of test/ (reserved by PlatformIO for unit tests) into examples/ with a README describing each one. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HAJ28v8jXB5RJFHovDxZVg
Firmware (src/, lib/, examples/, test/) is MIT; the PCB and artwork are CERN-OHL-S v2. LICENSE.md explains the split. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HAJ28v8jXB5RJFHovDxZVg
- GitHub Actions workflow builds the firmware with PlatformIO on every push/PR. - ROADMAP.md captures the resurrection plan: hygiene, library extraction, deferred hardware v2 options, desk-sized enclosure, and magnet-based config. - Document the repository layout, build steps, and license in the README. - Fill in the empty abimc_pcb library README. - Set monitor_speed in platformio.ini to match the debug serial baud. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HAJ28v8jXB5RJFHovDxZVg
The first CI run failed compiling the Adafruit SAMD core's bundled I2S library, which references GCLK registers (STATUS/GENDIV/CLKCTRL) that no longer exist in the current Atmel CMSIS pack. FastLED's library dependency finder drags I2S in, but the APA102 strands use clocked SPI, so ignore it. Also restrict push-triggered CI to main so PR branches build once (via the pull_request event) instead of twice. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HAJ28v8jXB5RJFHovDxZVg
Modern FastLED (3.10.x) makes addLeds a non-static member, so the old CFastLED::addLeds<...>() calls no longer compile. Call them on the global FastLED object like the example sketches already do. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HAJ28v8jXB5RJFHovDxZVg
The firmware drives the APA102 strands via FastLED and never includes Adafruit_DotStar. Keeping it as a dependency pulled in Adafruit BusIO, which needs Wire.h and broke the build. It is only used by the adafruit_strand_test example, which isn't part of the default build. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HAJ28v8jXB5RJFHovDxZVg
bamapookie
marked this pull request as ready for review
June 17, 2026 00:38
bamapookie
pushed a commit
that referenced
this pull request
Jun 17, 2026
Record the maintainer's preference to farm fabrication out to services (turnkey PCBA, service-bureau enclosure prints) and minimize hand-soldering and hand-fitting, while staying inexpensive at hobby quantities. Weave the principle through the hardware tracks (module-over-dev-board, fab-placed LEDs, sockets/connectors over soldered wiring, print/CNC bureaus for the enclosure) and add a near-term task to export Gerbers/BOM/CPL so the current board is PCBA-ready. Also tick the now-complete CI item. Note: Track A cleanup and dual licensing already shipped in #11, and the CERN-OHL-S license already permits third-party manufacturing, so no rework there. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HAJ28v8jXB5RJFHovDxZVg
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
First pass at bringing the Analog Binary Infinity Mirror Clock back to life. This is Track A (repo & firmware hygiene) — no behavioral firmware changes yet, no hardware changes.
What's in here
Cleanup
*.b#,*.s#),eagle.epf, andsvg2poly.logfrom version control. The real design files (.brd/.sch/.pro/DRILEGEND.CFG) stay..gitignorenow covers.idea/and EAGLE backups.adafruit_strand_testsketch (duplicateSTRAND_4_PIXELSdefines; three objects all namedstrip4).fastled_strand_test.test/(reserved by PlatformIO for unit tests) intoexamples/, with a README describing each.Licensing (dual)
LICENSE.mdexplains the split.CI & docs
ROADMAP.mdcaptures the full plan: library extraction, deferred hardware-v2 options, the desk-sized revision, and the magnet-based configuration concept.abimc_pcbREADME.Notably not done yet (tracked in ROADMAP.md)
volatileon ISR globals, the broken torn-read guard insetClock(), out-of-bounds writes inupdateStrandSeconds(), the never-populated leap-second data, and polishing the VCR12:00no-signal flash.lib_depsversions (intentionally left unpinned for the first CI build so we can see what currently resolves).🤖 Generated with Claude Code
Generated by Claude Code