Jim's Depository

20 years of rewriting the same code
embedded category
Linking a hand-maintained Makefile library into ESP-IDF exposes brittle CMake ordering and cross-compilation traps. This hard-won configuration shows how `ExternalProject_Add`, `BUILD_BYPRODUCTS`, and toolchain variables can produce a reliable static archive without letting CMake overwrite local work.
embedded category
A practical macOS setup checklist for ESP-IDF that flags the obsolete `easy_install` step, Homebrew’s prerequisites, and the shell environment command that makes `idf.py build` work.
embedded category
Signed firmware lets ESP32 fleets tolerate Let’s Encrypt certificate rotation while preserving update authenticity over HTTP—provided code confidentiality is not a requirement.
swift category
Swift’s `Base.method` syntax exposes a curried function that can bind behavior to instances—a useful pattern for graph traversal, callbacks, and other higher-order designs. The playground also surfaces the trade-offs: unlabeled arguments and awkward polymorphic dispatch.
embedded category
A few overlooked SDK calls and a realistic ADC_VREF value separate useful thermal monitoring from nonsense readings. The RP2040’s on-chip sensor won’t replace a precision probe, but it can flag an overheating enclosure before it cooks a project.
embedded category
Turn Pico’s CMake setup and UF2 flashing into a repeatable `make install` workflow, with configurable SDK and mount paths. The compact targets also show how `fstab` permissions and `sync` remove common friction on a Raspberry Pi host.
embedded category
A USB console command can wipe the secondary bootloader and force a Pico back into UF2 mode, eliminating physical reset-button access during development. The historical technique also exposes RP2040 flash-programming hazards, watchdog recovery, and why `reset_usb_boot()` is now the safer choice.
embedded category
Programmable I/O can make USB devices responsive without a debugger bolted onto every prototype. A software route back to RP2040 boot mode plus Debian’s mount tooling could turn reflashing from a button-timing ritual into a single Make target.
femtoblogger category
Browser-driven color schemes can make a lightweight publishing interface easier on the eyes without maintaining separate themes, while CSS variables help avoid mismatched form controls in Safari.
femtoblogger category
A quick Markdown-engine swap and Prism syntax highlighting show how a small Swift publishing stack can reduce maintenance while making code-heavy posts easier to read—without turning deployment into a project of its own.
more articles