<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on JKTDEV.CO.UK</title><link>/posts/</link><description>Recent content in Posts on JKTDEV.CO.UK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 17 Oct 2026 20:34:07 +0100</lastBuildDate><atom:link href="/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Refining the Protoworks service offerings</title><link>/posts/businesspt6/</link><pubDate>Sat, 17 Oct 2026 20:34:07 +0100</pubDate><guid>/posts/businesspt6/</guid><description>&lt;p&gt;It has been a while since my last update, mainly because I’ve been concentrating on refining the services I offer through &lt;a href="https://www.protoworks.uk/"&gt;Protoworks&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;That has involved refining some offerings and removing others. A few services that I initially thought deserved their own packages turned out to overlap, making it harder for customers to work out which one suited them. To be honest, they were starting to confuse me as well!&lt;/p&gt;
&lt;p&gt;I’ve now simplified things to three paid services, with a free scoping call to help customers decide where to start.&lt;/p&gt;</description></item><item><title>Belfast Tech Week</title><link>/posts/businesspt5/</link><pubDate>Sun, 27 Sep 2026 22:35:59 +0100</pubDate><guid>/posts/businesspt5/</guid><description>&lt;h2 id="belfast-tech-week"&gt;Belfast Tech Week&lt;/h2&gt;
&lt;p&gt;Last week was Belfast Tech Week, an annual event in Belfast consisting of numerous technology meetups, demonstrations and technical briefings covering both current and emerging technologies.&lt;/p&gt;
&lt;p&gt;There were, of course, also plenty of business networking events. These proved particularly useful for getting a better understanding of the current needs of small businesses and considering how I can make my own services more approachable and less intimidating to people who may have a problem to solve without necessarily knowing what technology they need to solve it.&lt;/p&gt;</description></item><item><title>Refining the UCMOD Architecture</title><link>/posts/buildingblockspt38/</link><pubDate>Sat, 19 Sep 2026 21:30:57 +0100</pubDate><guid>/posts/buildingblockspt38/</guid><description>&lt;p&gt;It has been a busy few days. I&amp;rsquo;ve been attending a number of trade and technology events, dealing with some of the less interesting parts of running a business, and preparing for a few more events during Belfast Tech Week next week.&lt;/p&gt;
&lt;p&gt;Doing business in the UK at the moment is not particularly easy, although one of the advantages of being a very small business is that I can remain relatively compact and adapt quickly when necessary.&lt;/p&gt;</description></item><item><title>Giving AI Agents a Way to Talk to Protoworks</title><link>/posts/appdevpt4/</link><pubDate>Sun, 06 Sep 2026 22:11:12 +0100</pubDate><guid>/posts/appdevpt4/</guid><description>&lt;p&gt;Today I decided to work on creating an MCP service and a related admin interface.&lt;/p&gt;
&lt;p&gt;MCP, or Model Context Protocol, provides a standard way for an AI agent to interact with external services and tools. In this case, the idea is to give an AI agent a way to explore the products, services and technical capabilities I offer through Protoworks and, if appropriate, raise an enquiry that I can respond to.&lt;/p&gt;</description></item><item><title>A Morning at a Manufacturing Trade Show</title><link>/posts/businesspt4/</link><pubDate>Thu, 03 Sep 2026 23:23:17 +0100</pubDate><guid>/posts/businesspt4/</guid><description>&lt;p&gt;Today is a short update.&lt;/p&gt;
&lt;p&gt;I had an opportunity to emerge from the trenches today and head along to a business event taking place in the next town over from me.&lt;/p&gt;
&lt;p&gt;The event was mainly focused on the manufacturing side of engineering, with exhibitors covering industrial CNC machines, industrial 3D printing, injection moulding, plastics, bearings, asset management software and various other areas of industrial manufacturing.&lt;/p&gt;
&lt;p&gt;There were also a couple of interesting talks from representatives of Rolls-Royce — the engineering company behind aircraft engines, nuclear power systems and all kinds of heavy engineering equipment, rather than the cars — and Bespak, which manufactures inhalation devices and other medical products.&lt;/p&gt;</description></item><item><title>Debugging 921600 Baud on the ATtiny1614</title><link>/posts/buildingblockspt37/</link><pubDate>Tue, 01 Sep 2026 21:29:21 +0100</pubDate><guid>/posts/buildingblockspt37/</guid><description>&lt;p&gt;Yesterday I had some time to continue debugging the C code that I had been porting from my previously developed Arduino code, which uses megaTinyCore, over to plain C using the MPLAB tools in Visual Studio Code.&lt;/p&gt;
&lt;p&gt;As suspected, the problem turned out to be a USART register configuration issue, although it wasn&amp;rsquo;t quite the issue I had originally expected.&lt;/p&gt;
&lt;p&gt;My first thought was that I had failed to correctly configure the GPIO line connected to the DE, or Driver Enable, pin of the RS485 transceiver, which in this case is a TI ISO1430.&lt;/p&gt;</description></item><item><title>PICkit 5, GCBASIC and a Logic Green Rabbit Hole</title><link>/posts/devnotes/</link><pubDate>Fri, 28 Aug 2026 23:18:53 +0100</pubDate><guid>/posts/devnotes/</guid><description>&lt;p&gt;Today I managed to get a little time to test my PICkit 5 programmer with the UCMOD-0 module, mainly by porting the example code I had previously created using Arduino over to plain C using MPLAB in Visual Studio Code.&lt;/p&gt;
&lt;p&gt;It isn&amp;rsquo;t quite working yet.&lt;/p&gt;
&lt;p&gt;I can see the TX line flickering on the oscilloscope, and I already know that the receiver code works correctly from my previous test setup using a Raspberry Pi Pico 2 W. That narrows the problem down considerably.&lt;/p&gt;</description></item><item><title>Revisiting Some Internal Development Tools</title><link>/posts/appdevpt3/</link><pubDate>Thu, 27 Aug 2026 21:52:06 +0100</pubDate><guid>/posts/appdevpt3/</guid><description>&lt;p&gt;Today I worked on some internal tooling for my software development, revisiting two small command-line utilities that I originally created some time ago:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/johnktaylor/db-concat/"&gt;db-concat&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/johnktaylor/repo-status"&gt;repo-status&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both tools were originally created fairly quickly to solve specific problems I had at the time. They worked, so naturally they remained largely untouched after that!&lt;/p&gt;
&lt;p&gt;They are now undergoing fairly heavy revision, including refactoring, improving code quality, adding tests and generally bringing them closer to something I would consider suitable for use outside my own development environment.&lt;/p&gt;</description></item><item><title>AI Writes the Code, I Still Engineer the Software</title><link>/posts/aipt4/</link><pubDate>Wed, 26 Aug 2026 23:15:23 +0100</pubDate><guid>/posts/aipt4/</guid><description>&lt;p&gt;Over the past few months I&amp;rsquo;ve been using AI tools to a much greater extent in my coding work.&lt;/p&gt;
&lt;p&gt;In particular, I&amp;rsquo;ve increasingly been using them to generate the code that I would previously have written myself.&lt;/p&gt;
&lt;p&gt;That does not mean I&amp;rsquo;ve moved over to &amp;ldquo;vibe coding&amp;rdquo;, at least not in the sense that I understand the term: repeatedly prompting an LLM until whatever it produces appears to work, running it, kicking the tyres a bit, and moving on without necessarily reading or fully understanding what has been produced behind the scenes.&lt;/p&gt;</description></item><item><title>Pruning the Pipeline, Renaming UCMOD and Building an Authentication API</title><link>/posts/appdevpt2/</link><pubDate>Tue, 25 Aug 2026 23:57:48 +0100</pubDate><guid>/posts/appdevpt2/</guid><description>&lt;p&gt;Today was a fairly mixed day, split between rearranging some upcoming development work, tidying up the electronics development pipeline, and starting work on a small authentication API that I expect to reuse across several future projects.&lt;/p&gt;
&lt;p&gt;One consequence of reviewing the hardware pipeline was deciding to halt development of the USB-C Shield.&lt;/p&gt;
&lt;h2 id="pruning-the-development-pipeline"&gt;Pruning the Development Pipeline&lt;/h2&gt;
&lt;p&gt;The USB-C Shield was originally developed largely as a test case while I was exploring EasyEDA rather than KiCad. It served that purpose well, but looking at it again as a potential Protoworks product, it doesn&amp;rsquo;t really make much sense to continue developing it at the moment.&lt;/p&gt;</description></item><item><title>Defining the Small and Large UCMOD Form Factors</title><link>/posts/buildingblockspt36/</link><pubDate>Mon, 24 Aug 2026 23:57:00 +0100</pubDate><guid>/posts/buildingblockspt36/</guid><description>&lt;p&gt;Today was mostly an admin day: accounts, emails, taxes and all the fun stuff that comes with running a business. I could go on a rant, but that&amp;rsquo;s probably best avoided.&lt;/p&gt;
&lt;p&gt;I did, however, manage to improve the Protoworks website slightly. I&amp;rsquo;ve added Slack integration so that anyone with questions about my products or projects can chat with me directly. I&amp;rsquo;ll trial it for a few weeks and see whether it improves the customer experience.&lt;/p&gt;</description></item><item><title>Building a Simple Workshop Inventory System</title><link>/posts/inventorypt1/</link><pubDate>Sun, 23 Aug 2026 19:53:50 +0100</pubDate><guid>/posts/inventorypt1/</guid><description>&lt;p&gt;Today I decided to switch focus away from hardware for a bit and spend some time improving my own internal business processes for managing my workshop. I&amp;rsquo;ve been meaning to do this for a while, but I&amp;rsquo;ve never quite seemed to find the time.&lt;/p&gt;
&lt;p&gt;So today I decided to start work on a small software-based inventory system for my equipment.&lt;/p&gt;
&lt;p&gt;I currently work across two locations: one where I mainly do design and development work, and another where I tend to do more testing and building. With equipment regularly moving between the two, keeping track of where everything is located can occasionally become a problem.&lt;/p&gt;</description></item><item><title>Defining the UCMOD Auxiliary Connector</title><link>/posts/buildingblockspt35/</link><pubDate>Fri, 21 Aug 2026 20:39:04 +0100</pubDate><guid>/posts/buildingblockspt35/</guid><description>&lt;p&gt;Today I decided to define the UCMOD Auxiliary Connector layout.&lt;/p&gt;
&lt;h2 id="ucmod-connector"&gt;UCMOD Connector&lt;/h2&gt;
&lt;p&gt;As a prelude to designing the UCMOD Auxiliary Connector, here is the current pinout definition for the existing main UCMOD connector.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Pin&lt;/th&gt;
 &lt;th&gt;Function&lt;/th&gt;
 &lt;th&gt;Pin&lt;/th&gt;
 &lt;th&gt;Function&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;GND&lt;/td&gt;
 &lt;td&gt;2&lt;/td&gt;
 &lt;td&gt;3V3&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3&lt;/td&gt;
 &lt;td&gt;GND&lt;/td&gt;
 &lt;td&gt;4&lt;/td&gt;
 &lt;td&gt;RESERVED&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;5&lt;/td&gt;
 &lt;td&gt;I2C_SCL / GPIO0&lt;/td&gt;
 &lt;td&gt;6&lt;/td&gt;
 &lt;td&gt;I2C_SDA / GPIO1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;7&lt;/td&gt;
 &lt;td&gt;UART_TX / GPIO2&lt;/td&gt;
 &lt;td&gt;8&lt;/td&gt;
 &lt;td&gt;UART_RX / GPIO3&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;9&lt;/td&gt;
 &lt;td&gt;SPI_MOSI / GPIO4&lt;/td&gt;
 &lt;td&gt;10&lt;/td&gt;
 &lt;td&gt;SPI_MISO / GPIO5&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;11&lt;/td&gt;
 &lt;td&gt;SPI_SCK / GPIO6&lt;/td&gt;
 &lt;td&gt;12&lt;/td&gt;
 &lt;td&gt;SPI_CS / GPIO7&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;13&lt;/td&gt;
 &lt;td&gt;AN0 / GPIO8&lt;/td&gt;
 &lt;td&gt;14&lt;/td&gt;
 &lt;td&gt;AN1 / GPIO9&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;15&lt;/td&gt;
 &lt;td&gt;AN2 / GPIO10&lt;/td&gt;
 &lt;td&gt;16&lt;/td&gt;
 &lt;td&gt;AN3 / GPIO11&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;17&lt;/td&gt;
 &lt;td&gt;RESERVED&lt;/td&gt;
 &lt;td&gt;18&lt;/td&gt;
 &lt;td&gt;GND&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;19&lt;/td&gt;
 &lt;td&gt;3V3&lt;/td&gt;
 &lt;td&gt;20&lt;/td&gt;
 &lt;td&gt;GND&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;There are 12 GPIO pins available through the standard UCMOD connector, with a defined primary function assigned to each where appropriate. These include I2C, UART, SPI and four analogue-capable pins.&lt;/p&gt;</description></item><item><title>Software Testing the UCMOD-0 over RS485</title><link>/posts/buildingblockspt34/</link><pubDate>Thu, 20 Aug 2026 23:06:06 +0100</pubDate><guid>/posts/buildingblockspt34/</guid><description>&lt;p&gt;Today&amp;rsquo;s focus was on the software side of the UCMOD-0 ATtiny1614 module and the Isolated RS485 Building Block Board, creating a basic &amp;ldquo;Hello World&amp;rdquo; test program, configuring the ATtiny1614&amp;rsquo;s clock and brown-out settings, and testing communication over the RS485 bus.&lt;/p&gt;
&lt;p&gt;Things went well overall. There was an issue with a jumper wire not being fully seated, which caused instability on the power rail and in turn caused the ATtiny to halt intermittently. Once that was fixed everything looked good.&lt;/p&gt;</description></item><item><title>Programming and Testing the UCMOD-0 with Arduino and UPDI</title><link>/posts/buildingblockspt33/</link><pubDate>Wed, 19 Aug 2026 20:27:25 +0100</pubDate><guid>/posts/buildingblockspt33/</guid><description>&lt;p&gt;Today I finally got a chance to do some initial software testing with the UCMOD-0 and the Isolated RS485 Carrier Board.&lt;/p&gt;
&lt;p&gt;Things went surprisingly well, all things considered, other than a ten-minute diversion trying to figure out why the obligatory &amp;ldquo;Hello World&amp;rdquo; LED blink sketch was failing to blink the LED on the carrier board.&lt;/p&gt;
&lt;p&gt;Thankfully, the problem existed between the chair and keyboard — me — rather than with the hardware.&lt;/p&gt;</description></item><item><title>Maker Night and Designing the UCMOD-1</title><link>/posts/buildingblockspt32/</link><pubDate>Wed, 19 Aug 2026 00:04:20 +0100</pubDate><guid>/posts/buildingblockspt32/</guid><description>&lt;p&gt;Today I attended a Maker Night at Farset Labs in Belfast. It was a great chance to chat with other makers, shoot the breeze, see what people were working on, and learn a little more about the facilities available at the makerspace.&lt;/p&gt;
&lt;p&gt;There appears to be plenty going on, particularly around laser cutting, 3D printing and CNC machining. My own work is somewhat adjacent to much of that these days, being mostly focused on electronics design and coding, but it&amp;rsquo;s always interesting to see what other people are building and what can be produced with the various tools available at the makerspace.&lt;/p&gt;</description></item><item><title>First Hardware Tests of the UCMOD-0 and RS485 Rev C</title><link>/posts/buildingblockspt31/</link><pubDate>Mon, 17 Aug 2026 22:22:44 +0100</pubDate><guid>/posts/buildingblockspt31/</guid><description>&lt;p&gt;Today I received the latest revision of the Isolated RS485 Building Block Board and the first version of the ATtiny1614-based UCMOD-0 microcontroller module.&lt;/p&gt;
&lt;p&gt;This was a particularly interesting batch because it gave me the opportunity to test not only the changes made to the RS485 board, but also the basic UCMOD concept in physical hardware for the first time.&lt;/p&gt;
&lt;h2 id="rs485-isolated-board-rev-c"&gt;RS485 Isolated Board Rev C&lt;/h2&gt;
&lt;figure&gt;&lt;a href="RS485RevC.jpg"&gt;&lt;img src="/posts/buildingblockspt31/RS485RevC.jpg"
 alt="Rev C Isolated RS485 Building Block Board"&gt;&lt;/a&gt;&lt;figcaption&gt;
 &lt;h4&gt;Rev C Isolated RS485 Building Block Board&lt;/h4&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Revision C of the Isolated RS485 board adds a UCMOD connector, an improved input protection circuit based around the TPS259474LRPWR eFuse, and a new DC-to-DC converter.&lt;/p&gt;</description></item><item><title>Defining the Protoworks Product Ranges</title><link>/posts/businesspt3/</link><pubDate>Sat, 15 Aug 2026 13:27:55 +0100</pubDate><guid>/posts/businesspt3/</guid><description>&lt;p&gt;Over the last few months I&amp;rsquo;ve designed and built a number of boards, with several more already planned. As the range has started to grow, I&amp;rsquo;ve also begun to get a clearer idea of the different types of boards I want Protoworks to develop and how they fit together.&lt;/p&gt;
&lt;p&gt;For the time being, I intend to organise them into three broad ranges:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Just Boards&lt;/li&gt;
&lt;li&gt;Building Block Boards&lt;/li&gt;
&lt;li&gt;Industrial Boards&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There will inevitably be some overlap between them, and I&amp;rsquo;m deliberately not trying to create rigid boundaries, but I think these three categories provide a useful way of organising what I&amp;rsquo;m building and, more importantly, the purpose each board is intended to serve.&lt;/p&gt;</description></item><item><title>Tweaking the UCMOD-0 Microcontroller Module</title><link>/posts/buildingblockspt30/</link><pubDate>Fri, 14 Aug 2026 22:47:45 +0100</pubDate><guid>/posts/buildingblockspt30/</guid><description>&lt;p&gt;It&amp;rsquo;s a short update today.&lt;/p&gt;
&lt;p&gt;Today I tweaked the ATtiny1614 UCMOD design slightly. The main change was adding a jumper that allows the UPDI programmer&amp;rsquo;s power line to supply only the microcontroller, rather than powering the entire module and potentially any attached carrier board or other circuitry.&lt;/p&gt;
&lt;p&gt;I also adjusted the three-pin UPDI socket to match the header layout used by the Adafruit UPDI Friend. The previous arrangement worked electrically, but hadn&amp;rsquo;t been laid out with the UPDI Friend&amp;rsquo;s physical header pin arrangement in mind.&lt;/p&gt;</description></item><item><title>Two Simple Boards for the Just Boards Range</title><link>/posts/justboardspt1/</link><pubDate>Thu, 13 Aug 2026 23:03:50 +0100</pubDate><guid>/posts/justboardspt1/</guid><description>&lt;p&gt;Today I decided to design two simple PCBs for my &amp;lsquo;Just Boards&amp;rsquo; range. Unlike most of my other boards, these are intended primarily for user assembly rather than PCB assembly services. They&amp;rsquo;re deliberately simple, use common components wherever possible, and should require little more than a decent soldering iron to assemble.&lt;/p&gt;
&lt;p&gt;The bare PCBs can be ordered from manufacturers such as JLCPCB or PCBWay, while the components themselves are standard parts that can be sourced from Amazon or other electronics suppliers. The aim is to keep these boards inexpensive, accessible and easy to build without requiring solder paste, stencils, hot-air rework equipment or other specialist tools. In most cases, a soldering iron — and perhaps a little Blu Tack to hold components in place while the board is turned over — should be enough.&lt;/p&gt;</description></item><item><title>Expanding the Building Block Ecosystem</title><link>/posts/buildingblockspt29/</link><pubDate>Tue, 11 Aug 2026 22:06:44 +0100</pubDate><guid>/posts/buildingblockspt29/</guid><description>&lt;p&gt;Today I sent the following Building Block Boards off to the fab for manufacture:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rev A of the UCMOD-0 Microcontroller Module, an ATtiny1614-based plug-in module that can be fitted to compatible Building Block Boards to provide them with processing capability.&lt;/li&gt;
&lt;li&gt;Rev C of the Isolated RS485 Building Block Board, which includes the revised input protection circuit as well as support for the new UCMOD interface.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I actually skipped manufacturing Rev B of the Isolated RS485 board. That revision had already been designed, but before sending it to manufacture I decided to add the UCMOD header and its associated circuitry, so the design moved directly on to Rev C.&lt;/p&gt;</description></item><item><title>Designing a Modular ATtiny Microcontroller Board</title><link>/posts/buildingblockspt28/</link><pubDate>Tue, 04 Aug 2026 00:00:21 +0100</pubDate><guid>/posts/buildingblockspt28/</guid><description>&lt;p&gt;Today I started designing a microcontroller module as part of a larger project that I have been working on.&lt;/p&gt;
&lt;p&gt;The first version is based on the Microchip ATtiny1614. The board should also be compatible with the ATtiny1624 and ATtiny3224 in their equivalent 14-pin packages, although there are naturally some differences in the peripherals and capabilities provided by each device.&lt;/p&gt;
&lt;p&gt;The module connects to its carrier board through a simple 20-pin, 2 × 10, 0.1-inch socket. This plugs into a corresponding 2 × 10 pin header on the carrier board.&lt;/p&gt;</description></item><item><title>Completing Rev A Testing of the Isolated RS485 Board</title><link>/posts/buildingblockspt27/</link><pubDate>Fri, 24 Jul 2026 21:06:13 +0100</pubDate><guid>/posts/buildingblockspt27/</guid><description>&lt;h2 id="completing-rev-a-testing-of-the-isolated-rs485-board"&gt;Completing Rev A Testing of the Isolated RS485 Board&lt;/h2&gt;
&lt;p&gt;This will be a short update this time around.&lt;/p&gt;
&lt;p&gt;Today I finished testing Rev A of the Isolated RS485 Building Block Board, concentrating on communications between two boards.&lt;/p&gt;
&lt;p&gt;Everything worked as expected, with nothing unexpected being uncovered during testing. This was helped by the work I had already completed on the Non-Isolated RS485 Building Block Board and the test rig I assembled for it.&lt;/p&gt;</description></item><item><title>Testing the Isolated RS485 Building Block Board</title><link>/posts/buildingblockspt26/</link><pubDate>Thu, 16 Jul 2026 22:51:56 +0100</pubDate><guid>/posts/buildingblockspt26/</guid><description>&lt;h2 id="testing-the-isolated-rs485-building-block-board"&gt;Testing the Isolated RS485 Building Block Board&lt;/h2&gt;
&lt;p&gt;Over the past few days, I finally got around to testing the Isolated RS485 Building Block Board.&lt;/p&gt;
&lt;p&gt;As a quick summary, the board uses a TI ISO1430 isolated RS485 transceiver together with an onboard 3.3 V-to-5 V isolated DC-DC converter. It also includes reverse-polarity and overvoltage protection on the 3.3 V input.&lt;/p&gt;
&lt;p&gt;Initial testing has gone reasonably well, but it has also identified a problem with the input protection circuit that will make a Rev B of the board necessary.&lt;/p&gt;</description></item><item><title>Isolated RS485 Building Block Board</title><link>/posts/buildingblockspt25/</link><pubDate>Fri, 03 Jul 2026 00:00:00 +0100</pubDate><guid>/posts/buildingblockspt25/</guid><description>&lt;h2 id="isolated-rs485-building-block-board"&gt;Isolated RS485 Building Block Board&lt;/h2&gt;
&lt;p&gt;Today I worked on the next version of the RS485 building block board, this time moving from the simpler non-isolated version to an isolated RS485 design.&lt;/p&gt;
&lt;p&gt;The non-isolated RS485 board is useful for short runs, bench testing, cabinet wiring, and situations where all of the connected equipment shares a sensible ground reference. It is a good practical board, and it has already been useful in testing with the Raspberry Pi Pico boards, the Digital I/O Expander board, and the EC11 rotary encoder setup.&lt;/p&gt;</description></item><item><title>Planning a New Weather Station Revision</title><link>/posts/weatherstationpt9/</link><pubDate>Fri, 26 Jun 2026 20:43:20 +0100</pubDate><guid>/posts/weatherstationpt9/</guid><description>&lt;h2 id="planning-a-new-weather-station-revision"&gt;Planning a New Weather Station Revision&lt;/h2&gt;
&lt;p&gt;Today was a different kind of day.&lt;/p&gt;
&lt;p&gt;It was far too hot to work in the workshop, so I spent the afternoon planning, designing, and sitting under the air conditioner. For reference, the UK has been recording some record-breaking June temperatures this week, and it has been absolutely sweltering.&lt;/p&gt;
&lt;p&gt;With workshop work off the table, I turned my attention back to the weather station project I completed a few weeks ago and started thinking about a possible new revision.&lt;/p&gt;</description></item><item><title>Adding a PC RS485 Monitor to the EC11 Test Setup</title><link>/posts/buildingblockspt24/</link><pubDate>Thu, 25 Jun 2026 17:41:39 +0100</pubDate><guid>/posts/buildingblockspt24/</guid><description>&lt;h2 id="adding-a-pc-rs485-monitor-to-the-ec11-test-setup"&gt;Adding a PC RS485 Monitor to the EC11 Test Setup&lt;/h2&gt;
&lt;p&gt;Today I connected my RS485 test setup to my PC so that I could monitor the communications from the computer rather than relying only on the standalone receiver unit.&lt;/p&gt;
&lt;p&gt;As a reminder, the current setup consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Transmitter:&lt;/strong&gt; Raspberry Pi Pico 2 W, Digital IO Expander Building Block Board, RS485 Non-Isolated Building Block Board, and an EC11 rotary encoder.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Receiver:&lt;/strong&gt; Raspberry Pi Pico 2 W, RS485 Non-Isolated Building Block Board, and an SH1106 OLED display.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The transmitter and receiver are connected using a 20 m CAT 6 cable for the RS485 signals. The software running on the Pico boards interprets the encoder signals on the transmitter side and displays the result on the OLED display on the receiver side.&lt;/p&gt;</description></item><item><title>Improving the EC11 Encoder and RS485 Test Setup</title><link>/posts/buildingblockspt23/</link><pubDate>Wed, 24 Jun 2026 22:09:37 +0100</pubDate><guid>/posts/buildingblockspt23/</guid><description>&lt;h2 id="improving-the-ec11-encoder-and-rs485-test-setup"&gt;Improving the EC11 Encoder and RS485 Test Setup&lt;/h2&gt;
&lt;p&gt;Today I mainly concentrated on improving the transmitter-side and receiver-side software for the EC11 rotary encoder test setup.&lt;/p&gt;
&lt;p&gt;The setup uses the Digital IO Expander board to read the rotary encoder and push button, sends events over RS485, and displays the result on a Raspberry Pi Pico 2 W receiver with an OLED display.&lt;/p&gt;
&lt;figure&gt;&lt;a href="testsetupdisplay.jpg"&gt;&lt;img src="/posts/buildingblockspt23/testsetupdisplay.jpg"
 alt="Test Setup with OLED Display"&gt;&lt;/a&gt;&lt;figcaption&gt;
 &lt;h4&gt;Test Setup with OLED Display&lt;/h4&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The aim was not to build a complete production-ready control system, but to validate the hardware and prove that the boards could work together in a simple but realistic integration test.&lt;/p&gt;</description></item><item><title>Decoding an EC11 Rotary Encoder over RS485</title><link>/posts/buildingblockspt22/</link><pubDate>Tue, 23 Jun 2026 21:33:42 +0100</pubDate><guid>/posts/buildingblockspt22/</guid><description>&lt;h2 id="decoding-an-ec11-rotary-encoder-over-rs485"&gt;Decoding an EC11 Rotary Encoder over RS485&lt;/h2&gt;
&lt;p&gt;Today I worked on decoding an EC11 rotary encoder, sending the result over RS485, and displaying it on a receiver setup.&lt;/p&gt;
&lt;p&gt;The receiver setup consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 x Raspberry Pi Pico 2 W&lt;/li&gt;
&lt;li&gt;1 x RS485 receiver board&lt;/li&gt;
&lt;li&gt;1 x SH1106-based OLED display&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The transmitter setup consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 x EC11 rotary encoder on a small prototype PCB&lt;/li&gt;
&lt;li&gt;1 x Digital IO Expander Board&lt;/li&gt;
&lt;li&gt;1 x Raspberry Pi Pico 2 W&lt;/li&gt;
&lt;li&gt;1 x RS485 transmitter board&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The basic idea was to read the A and B pins from the rotary encoder, decode the direction of travel on the transmitter side, send a simple message over the RS485 link, and then display the result on the receiver.&lt;/p&gt;</description></item><item><title>Some Integration Testing</title><link>/posts/buildingblockspt21/</link><pubDate>Mon, 22 Jun 2026 21:20:43 +0100</pubDate><guid>/posts/buildingblockspt21/</guid><description>&lt;h2 id="some-integration-testing"&gt;Some Integration Testing&lt;/h2&gt;
&lt;p&gt;Today I decided to do some integration testing between my first three building block boards.&lt;/p&gt;
&lt;p&gt;Sometimes just hooking things together and seeing how they react is the best way to find unexpected behaviour. Individual board testing is useful, but integration testing is where the small assumptions and wiring mistakes tend to show up.&lt;/p&gt;
&lt;p&gt;With that in mind, I connected the following boards and parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 x USB-C Power Input &amp;amp; 3.3 V Regulator Board&lt;/li&gt;
&lt;li&gt;2 x RS485 Non-Isolated Breakout Boards&lt;/li&gt;
&lt;li&gt;1 x Digital IO Expander Board&lt;/li&gt;
&lt;li&gt;2 x Raspberry Pi Pico 2W boards&lt;/li&gt;
&lt;li&gt;1 x EC11 Rotary Encoder on a prototype PCB&lt;/li&gt;
&lt;li&gt;20 m Cat 6 cable&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The boards were arranged as a transmitter and receiver setup.&lt;/p&gt;</description></item><item><title>Kubernetes, Hugo, React, MkDocs and Docker</title><link>/posts/systemadmin/</link><pubDate>Sun, 21 Jun 2026 22:31:29 +0100</pubDate><guid>/posts/systemadmin/</guid><description>&lt;p&gt;Today I decided to do some maintenance on my various websites, which are built using a mixture of React, Hugo, and MkDocs, then packaged as Docker containers and deployed to a Kubernetes cluster.&lt;/p&gt;
&lt;p&gt;The setup has grown gradually over time, but the basic idea is fairly simple.&lt;/p&gt;
&lt;h2 id="the-deployment-pipeline"&gt;The Deployment Pipeline&lt;/h2&gt;
&lt;p&gt;Each site lives in its own repository on my Git server. When changes are pushed to the main branch, a Drone CI pipeline builds a new Docker image, pushes it to my container registry, and updates the relevant deployment on the Kubernetes cluster.&lt;/p&gt;</description></item><item><title>Testing the RS485 Building Block Board</title><link>/posts/buildingblockspt20/</link><pubDate>Thu, 18 Jun 2026 21:22:19 +0100</pubDate><guid>/posts/buildingblockspt20/</guid><description>&lt;h2 id="testing-the-rs485-building-block-board"&gt;Testing the RS485 Building Block Board&lt;/h2&gt;
&lt;p&gt;Today I tested the simplified RS485 Building Block Board, which was derived from the original RS485 + 48 V Passthrough Board.&lt;/p&gt;
&lt;p&gt;The standalone RS485 circuit had already been designed as part of the earlier combined board, so creating this version was fairly straightforward. This board removes the 48 V passthrough, voltage regulators, and additional protection circuitry from the previous design, leaving a smaller board focused purely on RS485 communication.&lt;/p&gt;</description></item><item><title>Digital I/O Expander Testing: Inputs</title><link>/posts/buildingblockspt19/</link><pubDate>Wed, 17 Jun 2026 20:09:47 +0100</pubDate><guid>/posts/buildingblockspt19/</guid><description>&lt;h2 id="digital-io-expander-testing-inputs"&gt;Digital I/O Expander Testing: Inputs&lt;/h2&gt;
&lt;p&gt;Today I continued the testing I started yesterday, this time looking at the input side of the Digital I/O Expander building block board.&lt;/p&gt;
&lt;p&gt;The first test was a basic input check. I wrote a small script to read the input pins and print the result to the serial console. The plan was simple: set each input high one by one, then check that the board was reading the input correctly.&lt;/p&gt;</description></item><item><title>Testing the Digital IO Expander and RS485 Building Block Boards</title><link>/posts/buildingblockspt18/</link><pubDate>Tue, 16 Jun 2026 21:55:59 +0100</pubDate><guid>/posts/buildingblockspt18/</guid><description>&lt;h2 id="digital-io-expander-and-rs485-building-block-boards"&gt;Digital IO Expander and RS485 Building Block Boards&lt;/h2&gt;
&lt;p&gt;Today I received the Rev A versions of the Digital IO Expander and RS485 building block boards from the PCB manufacturer.&lt;/p&gt;
&lt;p&gt;After a brief visual inspection, both boards look good. Of course, the real answer only comes once they are on the bench and tested properly.&lt;/p&gt;
&lt;figure&gt;&lt;a href="rs485-standalone.jpg"&gt;&lt;img src="/posts/buildingblockspt18/rs485-standalone.jpg"
 alt="RS485 physical board"&gt;&lt;/a&gt;&lt;figcaption&gt;
 &lt;h4&gt;RS485 Physical Board&lt;/h4&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure&gt;&lt;a href="digitalioexpansion.jpg"&gt;&lt;img src="/posts/buildingblockspt18/digitalioexpansion.jpg"
 alt="Digital IO Expander physical board"&gt;&lt;/a&gt;&lt;figcaption&gt;
 &lt;h4&gt;Digital IO Expander Physical Board&lt;/h4&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;As I am already in familiar territory with the RS485 building block board, having tested its predecessor, the RS485 + 48 V building block board, I decided to test the Digital IO Expander first.&lt;/p&gt;</description></item><item><title>Improving My Demos</title><link>/posts/appdevpt/</link><pubDate>Sun, 14 Jun 2026 23:56:17 +0100</pubDate><guid>/posts/appdevpt/</guid><description>&lt;h2 id="improving-my-demos"&gt;Improving My Demos&lt;/h2&gt;
&lt;p&gt;Over the last week I have mainly been working on other things: business admin, planning, and some improvements to the Demos and Tools section of my website.&lt;/p&gt;
&lt;p&gt;Business admin is not especially exciting, but it has to be done. The more interesting part of the week was spending some time improving a couple of technical demos that are useful both as website content and as practical tools for my own work.&lt;/p&gt;</description></item><item><title>Using AI, Part 3: Useful, Powerful, and Risky</title><link>/posts/aipt3/</link><pubDate>Sun, 14 Jun 2026 11:28:28 +0100</pubDate><guid>/posts/aipt3/</guid><description>&lt;h2 id="using-ai-part-3"&gt;Using AI, Part 3&lt;/h2&gt;
&lt;p&gt;Lately I have been thinking again about the continuing evolution of AI, its use by businesses, including my own, and the limitations, restrictions, and risks that are starting to become more visible as the industry matures.&lt;/p&gt;
&lt;p&gt;For a while, a lot of AI usage felt like a flat-rate service. You paid a subscription and got access to a very powerful capability. But that model now appears to be shifting. Usage-based pricing, API limits, model tiers, and higher compute costs are all starting to reveal the real financial cost of using AI at scale.&lt;/p&gt;</description></item><item><title>Sending Boards off for Fabrication</title><link>/posts/buildingblockspt17/</link><pubDate>Mon, 08 Jun 2026 00:00:00 +0100</pubDate><guid>/posts/buildingblockspt17/</guid><description>&lt;h2 id="sending-boards-off-for-fabrication"&gt;Sending Boards off for Fabrication&lt;/h2&gt;
&lt;p&gt;I have had a busy few days and have finally got around to sending some more boards off for fabrication. This time, the boards are the RS485 non-isolated board and the revised Digital I/O Expander Board.&lt;/p&gt;
&lt;p&gt;The RS485 board has had a few tweaks. I have reintroduced 22 ohm series resistors on the A and B lines, with associated solder jumpers so that they can be bypassed if necessary. Apart from that, the design is largely the same as the previous version, except that I have moved to smaller screw terminals than last time.&lt;/p&gt;</description></item><item><title>RS485 Non-Isolated Building Block Board</title><link>/posts/buildingblockspt16/</link><pubDate>Wed, 03 Jun 2026 23:11:58 +0100</pubDate><guid>/posts/buildingblockspt16/</guid><description>&lt;h2 id="rs485-non-isolated-building-block-board"&gt;RS485 Non-Isolated Building Block Board&lt;/h2&gt;
&lt;p&gt;I have now created the non-isolated version of my RS485 building block board.&lt;/p&gt;
&lt;p&gt;This board is based on the earlier RS485 + 48 V passthrough building block board, but with the 48 V section removed. After testing and thinking through that first version, I decided that separating the RS485 communications side from the 48 V distribution side made more sense. It reduces the chance of accidentally bringing higher voltages too close to the logic and data lines, and it makes the RS485 board more focused and easier to reuse.&lt;/p&gt;</description></item><item><title>Exploring a Different EDA Tool: EasyEDA</title><link>/posts/misc20260602/</link><pubDate>Tue, 02 Jun 2026 23:28:07 +0100</pubDate><guid>/posts/misc20260602/</guid><description>&lt;h2 id="exploring-a-different-eda-tool-easyeda"&gt;Exploring a Different EDA Tool: EasyEDA&lt;/h2&gt;
&lt;p&gt;I kept bumping into EasyEDA while looking for components in the JLCPCB parts library and on LCSC, so I decided to check it out properly.&lt;/p&gt;
&lt;p&gt;EasyEDA is an online EDA tool closely integrated with JLCPCB and LCSC, two companies I already use quite frequently for PCB manufacturing and component sourcing. Since I expect to use them for a few more boards in the near future, I thought it was worth giving EasyEDA a try and kicking the tyres a little.&lt;/p&gt;</description></item><item><title>Adding Some STM32 Nucleo Boards to the Bench</title><link>/posts/misc20260601/</link><pubDate>Mon, 01 Jun 2026 22:34:31 +0100</pubDate><guid>/posts/misc20260601/</guid><description>&lt;h2 id="adding-some-stm32-nucleo-boards-to-the-bench"&gt;Adding Some STM32 Nucleo Boards to the Bench&lt;/h2&gt;
&lt;p&gt;Today I ordered a couple of STM32 Nucleo boards from RS Components, specifically the NUCLEO-G071RB and the NUCLEO-G070RB.&lt;/p&gt;
&lt;p&gt;I also ordered the X-NUCLEO-DRP1M1 expansion board for the G071RB, as USB-C Power Delivery is something I want to start experimenting with properly.&lt;/p&gt;
&lt;p&gt;The boards were not particularly expensive. The NUCLEO-G071RB and NUCLEO-G070RB were around £14 and £15 respectively, while the X-NUCLEO-DRP1M1 expansion board was around £22.&lt;/p&gt;</description></item><item><title>RS485 Breakout with 48 V Passthrough Building Block Board — Final Testing</title><link>/posts/buildingblockspt15/</link><pubDate>Mon, 01 Jun 2026 00:00:00 +0100</pubDate><guid>/posts/buildingblockspt15/</guid><description>&lt;h2 id="rs485-breakout-with-48-v-passthrough-building-block-board--final-testing"&gt;RS485 Breakout with 48 V Passthrough Building Block Board — Final Testing&lt;/h2&gt;
&lt;p&gt;Today I carried out what should be the final round of testing on the current version of the RS485 Breakout with 48 V Passthrough board.&lt;/p&gt;
&lt;p&gt;This time, the aim was to test the RS485 section at higher transfer rates and confirm that the board still behaved correctly beyond the earlier low-speed tests. The results were encouraging.&lt;/p&gt;
&lt;p&gt;I repeated the previous test setup, sending messages from a transmitter board to a receiver board over the same approximate 20 metre length of Cat 6 Ethernet cable. Previously I had tested the board at 9600 baud. This time I increased the transfer rate to 115200 baud and then to 921600 baud.&lt;/p&gt;</description></item><item><title>Setting Out the Road Ahead</title><link>/posts/businesspt2/</link><pubDate>Sat, 30 May 2026 12:50:02 +0100</pubDate><guid>/posts/businesspt2/</guid><description>&lt;h2 id="setting-out-the-road-ahead"&gt;Setting Out the Road Ahead&lt;/h2&gt;
&lt;p&gt;I am now thinking more seriously about the roadmap ahead, and it looks like I am going to be busy over the next few weeks.&lt;/p&gt;
&lt;p&gt;The aim is to build up a small library of practical, reusable boards that can support future prototypes, customer projects, and my own embedded systems work.&lt;/p&gt;
&lt;p&gt;The RS485 + 48 V passthrough board has given me a much clearer direction for the next set of prototype building block boards I want to design, manufacture, and test. It has also highlighted one important lesson: not every useful function needs to be combined onto a single board.&lt;/p&gt;</description></item><item><title>RS485 Breakout with 48 V Passthrough Building Block Board — Part 7</title><link>/posts/buildingblockspt14/</link><pubDate>Fri, 29 May 2026 23:57:03 +0100</pubDate><guid>/posts/buildingblockspt14/</guid><description>&lt;h2 id="rs485-breakout-with-48-v-passthrough-building-block-board--part-7"&gt;RS485 Breakout with 48 V Passthrough Building Block Board — Part 7&lt;/h2&gt;
&lt;p&gt;Now that I have tested the first batch of RS485 breakout boards from JLCPCB, I have been thinking about whether the board should remain as one combined design or be split into two separate boards.&lt;/p&gt;
&lt;p&gt;The original idea was to make a simple RS485 breakout more useful by also allowing 48 V power to be distributed alongside the RS485 signals. On paper, that made a lot of sense.&lt;/p&gt;</description></item><item><title>RS485 Breakout with 48 V Passthrough Building Block Board — Part 6</title><link>/posts/buildingblockspt13/</link><pubDate>Fri, 29 May 2026 15:33:06 +0100</pubDate><guid>/posts/buildingblockspt13/</guid><description>&lt;h2 id="rs485-breakout-with-48-v-passthrough-building-block-board--part-6"&gt;RS485 Breakout with 48 V Passthrough Building Block Board — Part 6&lt;/h2&gt;
&lt;p&gt;Yesterday I had the opportunity to continue testing the RS485 breakout with 48 V passthrough building block board.&lt;/p&gt;
&lt;p&gt;This round of testing covered both the 48 V power side of the board and the RS485 signalling side. Overall, the results were encouraging. The board behaved largely as intended, although I did identify a few errata that I can live with for this first batch and address properly in a second revision.&lt;/p&gt;</description></item><item><title>RS485 Breakout with 48 V Passthrough Building Block Board — Part 5</title><link>/posts/buildingblockspt12/</link><pubDate>Tue, 26 May 2026 20:55:53 +0100</pubDate><guid>/posts/buildingblockspt12/</guid><description>&lt;h2 id="rs485-breakout-with-48-v-passthrough-building-block-board--part-5"&gt;RS485 Breakout with 48 V Passthrough Building Block Board — Part 5&lt;/h2&gt;
&lt;p&gt;Today I carried out some more testing on the RS485 breakout boards, and things appear to be heading in the right direction.&lt;/p&gt;
&lt;figure&gt;&lt;a href="RS485Testing.jpg"&gt;&lt;img src="/posts/buildingblockspt12/RS485Testing.jpg"
 alt="RS485 breakout boards connected for basic transmitter and receiver testing"&gt;&lt;/a&gt;&lt;figcaption&gt;
 &lt;h4&gt;Basic RS485 transmitter and receiver test setup&lt;/h4&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The tests were still relatively simple at this stage, but useful. The aim was not to validate a complete communications protocol, but to prove that two boards could be configured as a basic RS485 transmitter and receiver pair, and that the transceiver section behaved as expected.&lt;/p&gt;</description></item><item><title>RS485 Breakout with 48V Passthrough Building Block Board — Part 4</title><link>/posts/buildingblockspt11/</link><pubDate>Mon, 25 May 2026 23:11:56 +0100</pubDate><guid>/posts/buildingblockspt11/</guid><description>&lt;h2 id="rs485-breakout-with-48-v-passthrough-building-block-board--part-4"&gt;RS485 Breakout with 48 V Passthrough Building Block Board — Part 4&lt;/h2&gt;
&lt;p&gt;The first run of the RS485 breakout boards arrived today.&lt;/p&gt;
&lt;p&gt;It is always a bit of a buzz to see something move from a design on a screen into a physical item: manufactured, assembled, and ready to be tested.&lt;/p&gt;
&lt;p&gt;This board is part of my wider set of building block boards. The idea is to create small, reusable hardware modules that can be used in prototypes and small embedded systems without having to redesign the same supporting circuits every time.&lt;/p&gt;</description></item><item><title>8-Channel Low-Side Driver Board — Part 1</title><link>/posts/buildingblockspt10/</link><pubDate>Sun, 24 May 2026 00:00:00 +0100</pubDate><guid>/posts/buildingblockspt10/</guid><description>&lt;h2 id="8-channel-low-side-driver-board---part-1"&gt;8-Channel Low-Side Driver Board - Part 1&lt;/h2&gt;
&lt;p&gt;Today I decided to start work on another building block board: an 8-channel low-side driver board.&lt;/p&gt;
&lt;p&gt;The idea behind this board is fairly simple. I want a reusable module that can switch external DC loads from logic-level control signals, without having to rebuild the same MOSFET driver circuit every time I need to control a relay, solenoid, small motor, lamp, or other moderate-current load.&lt;/p&gt;</description></item><item><title>Marketing Open Hardware Building Block Boards</title><link>/posts/businesspt1/</link><pubDate>Fri, 22 May 2026 21:41:33 +0100</pubDate><guid>/posts/businesspt1/</guid><description>&lt;h2 id="marketing-and-promotion"&gt;Marketing and Promotion&lt;/h2&gt;
&lt;p&gt;Today I have been thinking about the next steps for Protoworks, and about pushing the hardware and prototyping side of the business further. I feel there is a lot of potential for this kind of work here in Northern Ireland and across the UK more generally.&lt;/p&gt;
&lt;p&gt;I have been delivering software and systems solutions for years, but moving further into practical electronics, PCB design, and small-batch open hardware boards is a bit of a pivot for me.&lt;/p&gt;</description></item><item><title>Digital IO Expander Building Block Board — Part 1</title><link>/posts/buildingblockspt9/</link><pubDate>Wed, 20 May 2026 22:46:17 +0100</pubDate><guid>/posts/buildingblockspt9/</guid><description>&lt;h2 id="digital-io-expander-building-block-board--part-1"&gt;Digital IO Expander Building Block Board — Part 1&lt;/h2&gt;
&lt;p&gt;Today I started work on the next board in my building block board series: a digital IO expansion board.&lt;/p&gt;
&lt;p&gt;The basic idea is to provide a small, reusable board that gives a microcontroller, FPGA board, or small embedded system 8 digital inputs and 8 digital outputs without consuming a large number of GPIO pins.&lt;/p&gt;
&lt;p&gt;This is not an IO expander in the same sense as a dedicated I2C or SPI GPIO expander IC. It is a shift-register-based digital IO expansion board. That keeps the design simple, understandable, and useful for projects where the IO does not need to be especially fast or complex.&lt;/p&gt;</description></item><item><title>USB-C Breakout and 3.3 V Regulator Building Block Board — Part 4</title><link>/posts/buildingblockspt8/</link><pubDate>Fri, 15 May 2026 18:03:22 +0100</pubDate><guid>/posts/buildingblockspt8/</guid><description>&lt;h2 id="usb-c-breakout-and-33-v-regulator-building-block-board--part-4"&gt;USB-C Breakout and 3.3 V Regulator Building Block Board — Part 4&lt;/h2&gt;
&lt;p&gt;Today I published the USB-C breakout and 3.3 V regulator building block board project.&lt;/p&gt;
&lt;p&gt;The project is now available here:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/johnktaylor/protoworks-kicad-3-3v-regulator"&gt;https://github.com/johnktaylor/protoworks-kicad-3-3v-regulator&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I have published it under the CERN-OHL-W-2.0 licence. The repository contains the KiCad project files, including the schematic, PCB layout, and bill of materials.&lt;/p&gt;
&lt;p&gt;This is the first of my building block boards that I have published properly as an open hardware project. The goal is not to create a polished commercial product straight away, but to make the design available in a useful form so that others can inspect it, learn from it, modify it, or use it as the basis for their own projects.&lt;/p&gt;</description></item><item><title>RS485 Breakout with 48V Passthrough Building Block Board — Part 3</title><link>/posts/buildingblockspt7/</link><pubDate>Fri, 15 May 2026 02:31:49 +0100</pubDate><guid>/posts/buildingblockspt7/</guid><description>&lt;h2 id="rs485-breakout-with-48v-passthrough-building-block-board--part-3"&gt;RS485 Breakout with 48V Passthrough Building Block Board — Part 3&lt;/h2&gt;
&lt;p&gt;Today I sent the first version of the RS485 Building Block Board to JLCPCB for manufacture.&lt;/p&gt;
&lt;p&gt;There is no real substitute for getting a board into physical form and running it through testing. Otherwise, it is very easy to keep redesigning the board forever, especially when there are lots of small choices to tweak. I know I have a tendency to do that, so when I recognise it happening, that is usually a sign that it is time to move to the next step.&lt;/p&gt;</description></item><item><title>USB-C Breakout and 3.3 V Regulator Building Block Board — Part 3</title><link>/posts/buildingblockspt6/</link><pubDate>Wed, 13 May 2026 22:23:53 +0100</pubDate><guid>/posts/buildingblockspt6/</guid><description>&lt;h2 id="usb-c-breakout-and-33-v-regulator-building-block-board--part-3"&gt;USB-C Breakout and 3.3 V Regulator Building Block Board — Part 3&lt;/h2&gt;
&lt;p&gt;Today I received the 5 W resistors I needed to load test the USB-C and 3.3 V regulator building block board.&lt;/p&gt;
&lt;p&gt;I also tested the short-circuit behaviour of the board, which required a little bit of debugging before I was happy with the result.&lt;/p&gt;
&lt;p&gt;The first test was the short-circuit behaviour on the 5 V rail, followed by the 3.3 V rail. Initially, I saw a slightly confusing result when I shorted the 5 V output: the board appeared to turn off immediately.&lt;/p&gt;</description></item><item><title>USB-C Breakout and 3.3V Regulator Building Block Board — Part 2</title><link>/posts/buildingblockspt5/</link><pubDate>Tue, 12 May 2026 21:49:15 +0100</pubDate><guid>/posts/buildingblockspt5/</guid><description>&lt;h2 id="usb-c-breakout-and-33v-regulator-building-block-board--part-2"&gt;USB-C Breakout and 3.3V Regulator Building Block Board — Part 2&lt;/h2&gt;
&lt;p&gt;The first test batch of my 3.3V Regulator Building Block Boards arrived from JLCPCB today.&lt;/p&gt;
&lt;p&gt;For this board, I used both JLCPCB’s PCB manufacturing service and their PCBA service to populate and solder the SMT components. This reflects a small change in my workflow: I am trying to focus more on design, documentation, testing, and repeatability, rather than hand-assembling every prototype in the workshop.&lt;/p&gt;</description></item><item><title>RS485 Breakout with 48V Passthrough Building Block Board — Part 2</title><link>/posts/buildingblockspt4/</link><pubDate>Mon, 11 May 2026 22:47:27 +0100</pubDate><guid>/posts/buildingblockspt4/</guid><description>&lt;h2 id="rs485-breakout-with-48v-passthrough-building-block-board--part-2"&gt;RS485 Breakout with 48V Passthrough Building Block Board — Part 2&lt;/h2&gt;
&lt;p&gt;Today I spent some time refining the design for my RS485 building block board.&lt;/p&gt;
&lt;p&gt;One of the more significant changes was actually the removal of a feature. I decided to remove the RJ45 connector and replace it with a second 5-position screw terminal.&lt;/p&gt;
&lt;p&gt;I also added a second 2-position screw terminal for passing 48 V out from the board. This output is not protected by a separate fuse on the output side. Instead, the protection is intended to be handled at the 48 V input side. If 48 V is delivered through the 5-position screw terminals instead, then the upstream board or device providing that 48 V feed should provide the relevant protection.&lt;/p&gt;</description></item><item><title>RS485 Breakout with 48V Passthrough Building Block Board</title><link>/posts/buildingblockspt3/</link><pubDate>Wed, 06 May 2026 23:52:54 +0100</pubDate><guid>/posts/buildingblockspt3/</guid><description>&lt;h2 id="rs485-breakout-with-48v-passthrough-building-block-board"&gt;RS485 Breakout with 48V Passthrough Building Block Board&lt;/h2&gt;
&lt;p&gt;The next building block board I’ve been working on is an RS485 breakout board based around the MaxLinear SP3485EN.&lt;/p&gt;
&lt;p&gt;The SP3485EN is a 3.3V RS485 transceiver with a similar role and pinout to the MAX3485E. That makes it useful for this kind of small prototyping board, where I may want to try alternative parts later.&lt;/p&gt;
&lt;p&gt;The reason for building this board is simple: microcontroller GPIO is fine on a PCB, and sometimes acceptable over a short jumper wire, but it is not designed for reliable signalling over any real distance. Once signals need to leave the board and travel across a machine, a workshop, a building, or a larger installation, something more robust is needed.&lt;/p&gt;</description></item><item><title>USB-C Breakout and 3.3V Regulator Building Block Board</title><link>/posts/buildingblockspt2/</link><pubDate>Sat, 02 May 2026 23:51:42 +0100</pubDate><guid>/posts/buildingblockspt2/</guid><description>&lt;h2 id="usb-c-breakout-and-33v-regulator-building-block-board"&gt;USB-C Breakout and 3.3V Regulator Building Block Board&lt;/h2&gt;
&lt;p&gt;Today I sent the first of my new building block boards to JLCPCB for fabrication and assembly.&lt;/p&gt;
&lt;p&gt;Originally, I was going to create two separate boards: a USB-C breakout board and a 3.3V regulator board. After thinking about it for a while, though, I realised that most of my future projects are likely to need both. If I am bringing USB-C power into a board, there is a good chance I will also want a local 3.3V rail.&lt;/p&gt;</description></item><item><title>Building Block Boards</title><link>/posts/buildingblocks/</link><pubDate>Mon, 27 Apr 2026 21:38:51 +0100</pubDate><guid>/posts/buildingblocks/</guid><description>&lt;h2 id="building-block-boards"&gt;Building Block Boards&lt;/h2&gt;
&lt;p&gt;As part of improving my design process, I’ve decided to create a set of repeatable circuit designs for common functions that I expect to use again and again.&lt;/p&gt;
&lt;p&gt;These designs — or “Building Block Boards” for now, until I come up with a better name — are intended to be small, validated modules of functionality. Each board will have its own documentation, schematic, PCB layout, and bill of materials, giving me a known-good starting point for future projects.&lt;/p&gt;</description></item><item><title>First Look at the TS21 Soldering Iron</title><link>/posts/ts21/</link><pubDate>Sat, 25 Apr 2026 23:40:36 +0100</pubDate><guid>/posts/ts21/</guid><description>&lt;h2 id="first-look-at-the-ts21-soldering-iron"&gt;First Look at the TS21 Soldering Iron&lt;/h2&gt;
&lt;p&gt;I finally managed to give my new portable soldering iron a quick trial today: the TS21 soldering iron from Miniware.&lt;/p&gt;
&lt;p&gt;I’m pleased to say it will be staying in my toolkit.&lt;/p&gt;
&lt;p&gt;For quick soldering jobs, it looks like exactly the sort of tool I was hoping for. Sometimes I just need to solder a joint, attach a connector, or do a quick touch-up without breaking out the full rework station, arranging stands, wrestling with cabling, and rearranging half the desk. For that kind of job, this little iron makes a lot of sense.&lt;/p&gt;</description></item><item><title>Improving My Process</title><link>/posts/misc20260419/</link><pubDate>Sun, 19 Apr 2026 01:15:07 +0100</pubDate><guid>/posts/misc20260419/</guid><description>&lt;h2 id="improving-my-process"&gt;Improving My Process&lt;/h2&gt;
&lt;p&gt;Over the past few days, I’ve been focused on customer work while also preparing for the next set of projects in my pipeline (the Digital Sequencer). One thing I’ve been deliberately investing time in is improving my development process—specifically by creating modular, reusable circuit blocks for common functionality.&lt;/p&gt;
&lt;p&gt;Some of the building blocks I’m working on include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;USB-C interface circuit&lt;/strong&gt;&lt;br&gt;
Handling both power and data, including appropriate ESD protection.&lt;/p&gt;</description></item><item><title>Testing out the UPDI Friend</title><link>/posts/udpifriend/</link><pubDate>Mon, 13 Apr 2026 23:16:50 +0100</pubDate><guid>/posts/udpifriend/</guid><description>&lt;h2 id="testing-out-the-updi-friend"&gt;Testing out the UPDI Friend&lt;/h2&gt;
&lt;p&gt;Today I received a couple of Adafruit UPDI Friend programmers from &lt;a href="https://thepihut.com"&gt;The Pi Hut&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This time around, I decided to use a dedicated programmer rather than relying on the DIY Arduino-based UPDI setup I built last year. That approach worked perfectly well, but the board was eventually repurposed into another project, and I’d rather not keep rebuilding tools that I know I’ll need again.&lt;/p&gt;
&lt;p&gt;This felt like a sensible upgrade: small, purpose-built, and ready to go without any additional setup.&lt;/p&gt;</description></item><item><title>First Step Into Amateur Radio</title><link>/posts/radiohampt3/</link><pubDate>Sun, 12 Apr 2026 23:23:12 +0100</pubDate><guid>/posts/radiohampt3/</guid><description>&lt;h2 id="first-step-into-amateur-radio"&gt;First Step Into Amateur Radio&lt;/h2&gt;
&lt;p&gt;Today I ticked off the first step into the world of Amateur Radio by sitting the Foundation licence exam from home. I’m now waiting for the result to be uploaded to Ofcom so I can apply for my first callsign.&lt;/p&gt;
&lt;p&gt;The process was straightforward. I chose to take the test online, with a member of the Radio Society of Great Britain (RSGB) acting as the invigilator. The exam consists of 26 multiple-choice questions covering the basics of the hobby. Most of it was manageable after working through online study material from &lt;a href="https://www.essexham.co.uk/"&gt;Essex Ham&lt;/a&gt; and their associated &lt;a href="https://hamtrain.co.uk/"&gt;Ham Train&lt;/a&gt; course, both of which proved to be excellent revision resources.&lt;/p&gt;</description></item><item><title>Putting It All Together: BME280 Integration and Debugging</title><link>/posts/weatherstationpt8/</link><pubDate>Thu, 09 Apr 2026 18:07:20 +0100</pubDate><guid>/posts/weatherstationpt8/</guid><description>&lt;h1 id="putting-it-all-together"&gt;Putting it all together&lt;/h1&gt;
&lt;p&gt;Today was spent bringing everything together.&lt;/p&gt;
&lt;p&gt;The first task was to extract the &lt;strong&gt;BME280&lt;/strong&gt; sensor from a previous project to replace the &lt;strong&gt;BMP280&lt;/strong&gt; module I had received in error. With the correct sensor now in place, I moved on to building out the software to interrogate it.&lt;/p&gt;
&lt;p&gt;The firmware now captures:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Temperature&lt;/li&gt;
&lt;li&gt;Humidity&lt;/li&gt;
&lt;li&gt;Pressure&lt;/li&gt;
&lt;li&gt;Calculated altitude&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These values are displayed on the OLED screen and also transmitted over UART as debug output to a connected PC.&lt;/p&gt;</description></item><item><title>Testing the Weather Station Devices</title><link>/posts/weatherstationpt7/</link><pubDate>Wed, 08 Apr 2026 22:39:48 +0100</pubDate><guid>/posts/weatherstationpt7/</guid><description>&lt;h2 id="testing-the-devices"&gt;Testing the Devices&lt;/h2&gt;
&lt;p&gt;Today consisted of verifying that the sensors worked when attached to the PCB. This is part of the bring-up process to confirm the PCB, power delivery, and peripherals are all behaving as expected. Everything went well, except for one slightly annoying issue.&lt;/p&gt;
&lt;h2 id="oled-screen-testing"&gt;OLED Screen Testing&lt;/h2&gt;
&lt;p&gt;I connected the 1.3 inch OLED screen to the PCB. Thankfully, it was already soldered and simply needed to be plugged into the socket on the board, which matches the pin layout of the OLED module.&lt;/p&gt;</description></item><item><title>Using AI, Part 2</title><link>/posts/aipt2/</link><pubDate>Wed, 08 Apr 2026 00:55:36 +0100</pubDate><guid>/posts/aipt2/</guid><description>&lt;h2 id="using-ai-part-2"&gt;Using AI, Part 2&lt;/h2&gt;
&lt;p&gt;I thought I would expand a little on how I use AI in practice and how it helps improve my workflow.&lt;/p&gt;
&lt;p&gt;Lately, I’ve been using AI as a kind of copy editor for my articles, customer documents, and even internal notes and diary entries. I use it to improve readability, tighten clarity, and help the writing flow better. Of course, I still double-check facts and make sure the final result says what I actually mean.&lt;/p&gt;</description></item><item><title>Finishing the Weather Station Prototype PCB</title><link>/posts/weatherstationpt6/</link><pubDate>Tue, 07 Apr 2026 23:12:42 +0100</pubDate><guid>/posts/weatherstationpt6/</guid><description>&lt;h2 id="finishing-the-weather-station-prototype-board"&gt;Finishing the Weather Station Prototype Board&lt;/h2&gt;
&lt;p&gt;Today was mainly about finishing the build of the PCB for the weather station prototype, rearranging the workshop so I can reach tools and parts more easily, and picking up a small fire extinguisher from Lidl.&lt;/p&gt;
&lt;p&gt;The fire extinguisher was something of an opportunistic purchase, but considering I work with electronics and heat, it was probably a sensible addition to the workshop. Not that I intend on building incendiary devices anytime soon, but better safe than sorry.&lt;/p&gt;</description></item><item><title>Assembling the Weather Station</title><link>/posts/weatherstationpt5/</link><pubDate>Mon, 06 Apr 2026 20:49:56 +0100</pubDate><guid>/posts/weatherstationpt5/</guid><description>&lt;h2 id="assembling-the-weather-station"&gt;Assembling the Weather Station&lt;/h2&gt;
&lt;p&gt;I spent some time today assembling one of the weather station carrier boards I recently received from PCBWay.&lt;/p&gt;
&lt;p&gt;I placed the order just after midnight on &lt;strong&gt;26-03-2025&lt;/strong&gt;, and it arrived on the afternoon of &lt;strong&gt;04-04-2025&lt;/strong&gt;, giving a turnaround of roughly &lt;strong&gt;9 days&lt;/strong&gt; to Northern Ireland. For a professionally manufactured PCB, that’s a very reasonable lead time and something worth factoring into future iterations.&lt;/p&gt;
&lt;figure&gt;&lt;a href="front.jpg"&gt;&lt;img src="/posts/weatherstationpt5/front.jpg"
 alt="PCB front view"&gt;&lt;/a&gt;&lt;figcaption&gt;
 &lt;h4&gt;Front of the Weather Station PCB&lt;/h4&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure&gt;&lt;a href="back.jpg"&gt;&lt;img src="/posts/weatherstationpt5/back.jpg"
 alt="PCB rear view"&gt;&lt;/a&gt;&lt;figcaption&gt;
 &lt;h4&gt;Back of the Weather Station PCB&lt;/h4&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The boards arrived vacuum-sealed and surrounded by protective packaging. Straight out of the pack, they looked clean — good silkscreen alignment, no obvious defects, and a consistent finish across the batch.&lt;/p&gt;</description></item><item><title>Revisiting the ATtiny1614</title><link>/posts/attiny1616/</link><pubDate>Sat, 04 Apr 2026 20:50:54 +0100</pubDate><guid>/posts/attiny1616/</guid><description>&lt;h2 id="revisiting-the-attiny1614"&gt;Revisiting the ATtiny1614&lt;/h2&gt;
&lt;p&gt;Today I was taking a second look at some &lt;strong&gt;ATtiny1614&lt;/strong&gt; microcontrollers I found in my parts drawer from a previous project that never quite made it past the concept stage.&lt;/p&gt;
&lt;p&gt;They are quite impressive for the price — around &lt;strong&gt;£0.67 each&lt;/strong&gt; — and, in my case, are powerful enough to act as additional microcontrollers on a board if you want to offload certain tasks from the main controller.&lt;/p&gt;</description></item><item><title>Using Hotplates for SMD Soldering</title><link>/posts/hotplate/</link><pubDate>Fri, 03 Apr 2026 20:31:13 +0100</pubDate><guid>/posts/hotplate/</guid><description>&lt;h2 id="using-hotplates-for-smd-soldering"&gt;Using Hotplates for SMD Soldering&lt;/h2&gt;
&lt;p&gt;Today I was testing out a couple of cheap hotplates I picked up from Amazon.&lt;/p&gt;
&lt;p&gt;One is a &lt;strong&gt;20 cm × 20 cm&lt;/strong&gt; large hotplate, and the other is a much smaller &lt;strong&gt;5.6 cm × 5.6 cm&lt;/strong&gt; mini hotplate. Both turned out to be surprisingly useful.&lt;/p&gt;
&lt;p&gt;The large hotplate cost around &lt;strong&gt;£50&lt;/strong&gt;, while the smaller one was about &lt;strong&gt;$20&lt;/strong&gt; (65 W, USB-powered). Both appear to be generic white-label units — if you search for &lt;em&gt;“electronics hotplate”&lt;/em&gt; on Amazon, you’ll likely find several listings that look identical.&lt;/p&gt;</description></item><item><title>Designing a Simple Compiler for a Digital Sequencer</title><link>/posts/sequencerpt4/</link><pubDate>Thu, 02 Apr 2026 20:37:18 +0100</pubDate><guid>/posts/sequencerpt4/</guid><description>&lt;h2 id="building-a-compiler-for-the-digital-sequencer"&gt;Building a Compiler for the Digital Sequencer&lt;/h2&gt;
&lt;p&gt;Today I’ve been thinking about how to approach the compiler for the Digital Sequencer DSL.&lt;/p&gt;
&lt;p&gt;Because the language is still fairly small and focused, the compiler itself can also remain relatively simple.&lt;/p&gt;
&lt;p&gt;My current thinking is that it will be split into a few clear stages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Lexical Analysis&lt;/strong&gt; — Read the input text and convert it into tokens.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Syntax Analysis&lt;/strong&gt; — Check that the token sequence matches the grammar of the language and build a structured representation of the program.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Semantic Analysis&lt;/strong&gt; — Validate that the program makes sense, for example by checking labels, commands, and arguments.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Intermediate Representation&lt;/strong&gt; — Convert the parsed structure into a simpler internal form that is easier to work with.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optimisation&lt;/strong&gt; — Perform any simple compile-time improvements, where appropriate.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code Generation&lt;/strong&gt; — Emit the final bytecode that the sequencer will execute.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At this point, I’m not aiming for a large or overly clever compiler. The goal is simply to produce something clear, reliable, and easy to extend as the language evolves.&lt;/p&gt;</description></item><item><title>Digital Sequencer DSL – Instruction Set (Part 1)</title><link>/posts/sequencerpt3/</link><pubDate>Wed, 01 Apr 2026 22:08:29 +0100</pubDate><guid>/posts/sequencerpt3/</guid><description>&lt;h2 id="commands-for-the-digital-sequencer"&gt;Commands for the Digital Sequencer&lt;/h2&gt;
&lt;p&gt;With the overall structure of the DSL defined, the next step is to begin defining the instruction set that will be used within the &lt;code&gt;PROCESS&lt;/code&gt; block.&lt;/p&gt;
&lt;p&gt;At this stage, I want to keep things deliberately minimal. Rather than attempting to design a complete instruction set up front, the focus is on defining a small number of core commands that are sufficient to express simple and useful behaviour.&lt;/p&gt;</description></item><item><title>Building a Digital Sequencer DSL for Embedded Systems</title><link>/posts/sequencerpt2/</link><pubDate>Tue, 31 Mar 2026 11:10:35 +0100</pubDate><guid>/posts/sequencerpt2/</guid><description>&lt;h2 id="digital-sequencer-inputs"&gt;Digital Sequencer Inputs&lt;/h2&gt;
&lt;p&gt;While thinking about the digital sequencer, I’ve also been considering how inputs should work.&lt;/p&gt;
&lt;p&gt;For outputs, it is straightforward to shift pin states out using three microcontroller lines. On something like an ESP32-C3 or ESP32-C6, a 74HC595 provides a straightforward way to achieve this.&lt;/p&gt;
&lt;p&gt;For inputs, I would also like a way to read multiple input states while using as few GPIO pins as possible. A 74HC165 seems like a sensible option here, as it provides parallel-in, serial-out operation — effectively the inverse of the 74HC595.&lt;/p&gt;</description></item><item><title>Building a Digital Sequencer (Concept)</title><link>/posts/sequencer/</link><pubDate>Tue, 31 Mar 2026 00:02:43 +0100</pubDate><guid>/posts/sequencer/</guid><description>&lt;h2 id="thinking-about-a-new-product"&gt;Thinking about a new product&lt;/h2&gt;
&lt;p&gt;Today I found myself thinking about a new product while waiting for the parts and PCB for my weather station project to arrive.&lt;/p&gt;
&lt;p&gt;The idea is a digital sequencer — a programmable timing and automation controller that could be used in a range of scenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lighting rigs&lt;/li&gt;
&lt;li&gt;Industrial test rigs&lt;/li&gt;
&lt;li&gt;Manufacturing sequences&lt;/li&gt;
&lt;li&gt;General automation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The concept, at least initially, is intentionally simple.&lt;/p&gt;
&lt;p&gt;The user would define a sequence — something akin to a hymn sheet.
Instead of musical notes, however, each “note” represents a digital pulse on an output.&lt;/p&gt;</description></item><item><title>Using Low Code / No Code Approaches for Business Automation</title><link>/posts/lowcode/</link><pubDate>Sun, 29 Mar 2026 13:21:56 +0100</pubDate><guid>/posts/lowcode/</guid><description>&lt;h2 id="using-low-code--no-code-approaches"&gt;Using Low Code / No Code Approaches&lt;/h2&gt;
&lt;p&gt;Today I’ve been working on a low code / no code solution for a client.&lt;/p&gt;
&lt;p&gt;They needed to automate a number of tasks, but without the overhead of maintaining their own IT infrastructure or investing in a fully custom-built system — something they neither had the desire nor the in-house capability to support.&lt;/p&gt;
&lt;p&gt;In this case, I used Microsoft Power Automate as part of Microsoft 365. The specific tool isn’t the important part — what matters is that it provides a way to automate business processes without writing code, and without introducing additional infrastructure.&lt;/p&gt;</description></item><item><title>Considering Production Runs</title><link>/posts/consideringproduction/</link><pubDate>Sat, 28 Mar 2026 11:34:25 +0000</pubDate><guid>/posts/consideringproduction/</guid><description>&lt;h2 id="considering-production-runs"&gt;Considering Production Runs&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve been thinking in terms of prototyping lately, but there does come a time where I need to consider moving to a small production run (or larger, if something becomes wildly successful).&lt;/p&gt;
&lt;p&gt;While I mainly focus on prototyping and getting things up and running, I need to keep production in mind from the very beginning of a design.&lt;/p&gt;
&lt;p&gt;A few questions I’ve started asking myself early on:&lt;/p&gt;</description></item><item><title>Keeping a Stock of Components</title><link>/posts/stock/</link><pubDate>Fri, 27 Mar 2026 21:20:08 +0000</pubDate><guid>/posts/stock/</guid><description>&lt;h2 id="suppliers-and-keeping-a-stock-of-components"&gt;Suppliers and Keeping a Stock Of Components&lt;/h2&gt;
&lt;p&gt;Today was different and mainly involved ordering components from local electronics suppliers in the UK rather than China, where timelines are extended due to distance, and confidence in component authenticity becomes more important when you&amp;rsquo;re running a prototyping business rather than just dabbling in a hobby.&lt;/p&gt;
&lt;p&gt;So why the move to UK suppliers for my business? I’ll speak plainly here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I need to know that the parts are genuine.&lt;/li&gt;
&lt;li&gt;The reliability of components is known.&lt;/li&gt;
&lt;li&gt;I can resolve ordering or part issues quickly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Is it more expensive? Regrettably, yes. But if something goes wrong, I can resolve issues quickly and I have a much greater degree of confidence that the parts supplied are genuine and will perform as expected.&lt;/p&gt;</description></item><item><title>Weather Station Pt 4</title><link>/posts/weatherstationpt4/</link><pubDate>Thu, 26 Mar 2026 22:50:33 +0000</pubDate><guid>/posts/weatherstationpt4/</guid><description>&lt;h2 id="working-on-gerber-viewer"&gt;Working on Gerber Viewer&lt;/h2&gt;
&lt;p&gt;As part of the weather station project (and other ongoing projects), I switched focus today from hardware to tooling.&lt;/p&gt;
&lt;p&gt;Recently, I’ve been working on an online application that allows Gerber files to be viewed directly in the browser—without uploading anything to a server. Everything is processed client-side, which keeps things simple and avoids handling potentially sensitive design files.&lt;/p&gt;
&lt;p&gt;The application is built using:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;React&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TypeScript&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vite&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;and is containerised using &lt;strong&gt;Docker&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Weather Station Pt 3</title><link>/posts/weatherstationpt3/</link><pubDate>Thu, 26 Mar 2026 02:11:20 +0000</pubDate><guid>/posts/weatherstationpt3/</guid><description>&lt;h2 id="a-small-update"&gt;A Small Update&lt;/h2&gt;
&lt;p&gt;Today was a bit of a split day. Most of the morning was spent on a customer project, mainly software and web design, but I did manage to make a little progress on the weather station board.&lt;/p&gt;
&lt;p&gt;I’ve now sent off the next revision of the PCB for manufacture after making a handful of small tweaks. I’m under no illusion that it’s perfect — there will almost certainly be something wrong — but that’s part of the process. Getting a physical board in hand forces you to confront the real-world issues that don’t always show up on screen.&lt;/p&gt;</description></item><item><title>Weather Station Pt 2</title><link>/posts/weatherstationpt2/</link><pubDate>Tue, 24 Mar 2026 21:51:28 +0000</pubDate><guid>/posts/weatherstationpt2/</guid><description>&lt;p&gt;Today I made a couple of tweaks to the schematic to correct a few errors, and then completed a first pass at laying out the PCB for the weather station carrier board.&lt;/p&gt;
&lt;h2 id="tweaks-made"&gt;Tweaks Made&lt;/h2&gt;
&lt;p&gt;The main schematic change was replacing the original 3.3V regulator, the &lt;strong&gt;AMS1117-3.3&lt;/strong&gt;, with the &lt;strong&gt;AP2114D-3.3&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I wanted to move to a more efficient regulator because I may power this design from &lt;strong&gt;LiPo batteries&lt;/strong&gt; in a future revision. The &lt;strong&gt;AP2114D-3.3&lt;/strong&gt; is not a drop-in replacement, but it offers a few advantages that made the change worthwhile.&lt;/p&gt;</description></item><item><title>Weather Station Prototype</title><link>/posts/weatherstation/</link><pubDate>Mon, 16 Mar 2026 14:23:08 +0000</pubDate><guid>/posts/weatherstation/</guid><description>&lt;h2 id="weather-station-prototype"&gt;Weather Station Prototype&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s been a while since I last looked at a fairly simple project I began last December as a way to experiment with an ESP32-C3 microcontroller.&lt;/p&gt;
&lt;p&gt;The ESP32-C3 has some very useful capabilities for small connected devices:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A single &lt;strong&gt;RISC-V based core running at 160 MHz&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;400 KB of SRAM&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;4 MB of flash&lt;/strong&gt; (on most modules)&lt;/li&gt;
&lt;li&gt;Flexible GPIO that can be configured for &lt;strong&gt;I²C and SPI&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WiFi 2.4 GHz (b/g/n)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bluetooth 5 Low Energy&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The project itself is quite straightforward: a small &lt;strong&gt;weather station prototype&lt;/strong&gt; powered via USB (at least initially) that can report temperature and humidity to a remote console via either &lt;strong&gt;Bluetooth or WiFi&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Yocto Fun</title><link>/posts/yocto/yocto/</link><pubDate>Sun, 15 Mar 2026 22:59:59 +0000</pubDate><guid>/posts/yocto/yocto/</guid><description>&lt;h2 id="using-yocto-to-build-a-custom-linux-distribution-for-the-raspberry-pi"&gt;Using Yocto to build a custom Linux distribution for the Raspberry Pi&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve recently found myself needing to build a custom Linux distribution for the Raspberry Pi Zero 2W as part of an embedded system I&amp;rsquo;m currently developing.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve used Yocto before for an FPGA-based project a few years ago, but I&amp;rsquo;m not a regular user of it. That means it&amp;rsquo;s time to get back up to speed.&lt;/p&gt;
&lt;p&gt;One of the best ways I&amp;rsquo;ve found to acquire (or in this case re-acquire) the necessary knowledge is simply to tinker with the tools and make notes as I go. I&amp;rsquo;ll be sharing those notes here.&lt;/p&gt;</description></item><item><title>Ai</title><link>/posts/ai/my-journey-with-ai/</link><pubDate>Sun, 15 Mar 2026 16:45:17 +0000</pubDate><guid>/posts/ai/my-journey-with-ai/</guid><description>&lt;h2 id="my-journey-with-ai"&gt;My Journey with AI&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve been experimenting with AI tools for the past few months, mainly OpenAI&amp;rsquo;s ChatGPT and Google&amp;rsquo;s Gemini. I&amp;rsquo;ve come to respect the technology for what it is: a tool that can help me be more productive and creative. I&amp;rsquo;m not convinced that it&amp;rsquo;s a replacement for human intelligence or creativity, at least not yet. This isn&amp;rsquo;t arrogance (at least I don&amp;rsquo;t think so!), it&amp;rsquo;s just my opinion at the moment, let me explain why.&lt;/p&gt;</description></item><item><title>Websdr</title><link>/posts/radiohampt2/</link><pubDate>Sat, 14 Mar 2026 23:52:56 +0000</pubDate><guid>/posts/radiohampt2/</guid><description>&lt;h2 id="websdr-and-digital-modes"&gt;WebSDR and Digital Modes&lt;/h2&gt;
&lt;p&gt;So lately I&amp;rsquo;ve been using &lt;a href="https://websdr.org/"&gt;WebSDR&lt;/a&gt; to listen to various radio signals and listen into
the various radio stations and signals that are available on the air. So far I&amp;rsquo;ve been able to listen to
APRS signals, various weather stations and of course the odd ham radio signal or two. It certainly appears that digital modes appear to be significantly more common now than they were previously.&lt;/p&gt;</description></item><item><title>My New/Reacquired Interest in Ham Radio</title><link>/posts/radioham/</link><pubDate>Sat, 14 Mar 2026 20:58:36 +0000</pubDate><guid>/posts/radioham/</guid><description>&lt;h2 id="my-newreacquired-interest-in-ham-radio"&gt;My New/Reacquired Interest in Ham Radio&lt;/h2&gt;
&lt;p&gt;My early interest in Ham radio began way back when I was a child, watching my dad play around with his CB radio&amp;rsquo;s and Ham radio&amp;rsquo;s in his shed back in the 80&amp;rsquo;s when I was just a kid. I remember being loaded into the car along with my sister and my mum and driven to the top of the local hill to try and get a better signal for his CB or Ham radio, or being dragged along to the local radio club meetings where I&amp;rsquo;d be fascinated by the various homebrew radio&amp;rsquo;s and equipment on display and not being allowed to touch anything!&lt;/p&gt;</description></item><item><title>Purpose of Site</title><link>/posts/purpose-of-site/</link><pubDate>Sat, 14 Mar 2026 14:23:37 +0000</pubDate><guid>/posts/purpose-of-site/</guid><description>&lt;h2 id="so-whats-the-purpose-of-this-site"&gt;So what&amp;rsquo;s the purpose of this site?&lt;/h2&gt;
&lt;p&gt;Put simply, anything and everything, this will be a place for me to publish news, articles, and links
to things I find interesting that don&amp;rsquo;t quite fit into my day job which is running a small focused
prototyping company based in Northern Ireland &lt;a href="https://www.protoworks.uk"&gt;Protoworks (NI)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This particular website will be less constrained and freeform and will act as a simple blog for
documenting my various interests which currently span the following subjects: -&lt;/p&gt;</description></item></channel></rss>