Testing the PICkit 5 with the UCMOD-0, moving from Arduino to plain C with MPLAB, and disappearing down a couple of 8-bit microcontroller rabbit holes.
Posts for: #Development
Revisiting Some Internal Development Tools
Revisiting two small Go command-line utilities I originally built for my own development workflow: db-concat for assembling parameterised SQL and text files, and repo-status for managing multiple local Git repositories.
AI Writes the Code, I Still Engineer the Software
How I’ve integrated LLMs into my software development workflow while keeping architecture, code review and engineering responsibility firmly in human hands.
Defining the UCMOD Auxiliary Connector
Defining a standard auxiliary connector for UCMOD microcontroller modules, providing additional peripheral interfaces and microcontroller-specific GPIO.
Improving My Demos
Improving the Protoworks demos and tools, including an in-browser Gerber viewer and an electrical engineering calculation workbench.
Setting Out the Road Ahead
Thinking through the next stage of the Protoworks building block board roadmap, including RS485 communications, isolated RS485, digital I/O expansion, low-side driver outputs, 48 V distribution, USB to serial, and future prototype board ideas.
Marketing Open Hardware Building Block Boards
Thinking through how to position Protoworks’ small-batch open hardware building block boards, who they are for, and why open hardware makes sense.
Using AI, Part 2
A practical look at using AI as a copy editor to improve clarity, readability, and workflow efficiency—without giving up control or relying on AI to do the thinking.
Designing a Simple Compiler for a Digital Sequencer
A practical walkthrough of building a simple compiler for a custom Digital Sequencer DSL, covering lexical analysis, syntax parsing, semantic validation, and bytecode generation for embedded systems.
Digital Sequencer DSL – Instruction Set (Part 1)
Defining the core instruction set for a digital sequencer DSL, including SET command behaviour, execution model considerations, and mapping to a compiled bytecode representation.