Notes On Software

Notes, experiments, and working references on software, networking, embedded systems, and tools.

May 22, 2026
How to implement an MCP server in Go that exposes application functions as typed tools for Claude Code and Claude Desktop — with a working example from the Trader FX engine.
March 13, 2024
Notes on using the Adafruit STEMMA soil moisture sensor after unreliable results from cheap capacitive sensors in an ESP32 garden project.
February 15, 2024
Notes on choosing soil moisture sensors for IoT garden projects, including resistive vs. capacitive sensors, common reliability problems, protection methods, calibration, and a practical recommendation for future builds.
May 2, 2022
Go timers along with a select can be used to simplify testing both read and write side of communication protocols. In this article you will learn to combine a Go timer along with a select statement to test both sides with a single test case.
July 22, 2021
There are times when a device loaded with software needs to be configured without a keyboard or monitor. A WebApp is a great way to do just that, but what if you can't or don't want to connect to an existing Wifi network. We will discuss these scenarios in this document.
November 3, 2020
A brief look at Go timers to clear out stale sensor stations.
September 22, 2019
The programming language Go as taken the development world by storm over the last few years. This article will discuss reasons why Go has become so popular and why you might choose it for your next project.
May 24, 2019
Red Eye manages streams of videos from cameras like the Raspberry Pi appropriate for real time navigation, storage and replay.
May 15, 2019
Skid Steering is probably the simplest form of steering a vehicle, both its mechanics and software are very simple and a great place to jump in and get our feet oily.
May 14, 2019
This is from one of my early robots, a single Raspberry Pi connected to an Adafruit Motor Shield. I wrote the Skidder C++ class to drive the vehicle with skid steering. See how it works...
May 3, 2019
MQTT is a messaging protocol commonly reffered to as Publish/Subscribe or is an popular solution to distributed system communications, where you do not want to directly couple the publisher and subscribers. That is a fundamental design of this MBR project.
April 29, 2019
One of the primary requirements of my Mobile Robot project is the ability to stream live or _realtime_ video while the vehicle roams about. This turned out to be more complicated than I expected
April 23, 2019
The number of fantastic, but complex tools available for streaming is mind boggling, these are notes I started gathering as I worked through the redeye project.
April 17, 2019
A very simple byte oriented protocol used to swap unformatted messages over a variety of communication channels (i2c, SPI, UDP, TCP, RF, BLT, etc).
December 23, 2018
Streaming video over a local area network can take on a significantly different look than trying to live stream video over the Internet.
August 22, 2018
The first Robot I build, like many others used an Arduino Motor Controller, our first robots used Arduino Motor Controllers. We use them as dedicated output devices used to control voltage sent to motors, where as controls run on a Master Controller.
May 5, 2018
Boy do I gotta lotta learn. This control systems is pretty serious stuff! I'll have to learn some of this stuff to incorporate back into our driving algorithms.
February 3, 2018
IP Multicast is a seldom used but very useful mechanism for groups of machines to communicate. I will cover the basics of IP multicast in this document.