Thomas shares makes

Mutually Exclusive Media Players in Home Assistant
homeassistant

Mutually Exclusive Media Players in Home Assistant

I have Raspberry Pi's in different rooms, and one thing I use them for is to play music to speakers.

Each of them has two music player services on it (MPD, Spotify), and it's a bit annoying that I have to stop a player when I want to listen to the other one.

Since I'm running home assistant as an automation hub, I wrote two short automations that stop the already playing service when the second one kicks in.

Central Heating sensor manipulation
arduino

Central Heating sensor manipulation

We used to have a gas-powered central heating system that had no external controls other than radiator valves. It had a sun-exposed exterior temperature sensor on the west side of the house that caused it to refuse to heat in the evening.

I wanted to fix the issue and control it via Home Assistant, and since only the newer models had bus control, I resorted to manipulate the outside sensor readings and designed a man-in-the-middle device.

Home Assistant Touch Screen
homeassistant

Home Assistant Touch Screen

My 2017 Christmas present was a voucher for the local electronics shop. I spent it on an 'official 7" raspberry pi touch screen display', which is a nice capacitive touchscreen that you can hook up to a raspberry pi.

I 3d-printed an enclosure from Thingiverse for it, and fitted an RGB LED string around the edges as an extra.

Initially I created an AppDaemon HAdashboard configuration to control my Home Assistant instance with it.

Heat Canon (Salamander heater) controller repair
picmicro

Heat Canon (Salamander heater) controller repair

In the winter of 2016, someone gave me a controller board for a heater. The heater is pretty scary, it burns fuel and blows exhaust and hot air out of what looks like a canon. It has some interesting mechatronics; a fuel valve, an ignition coil, and a fan. It has a flame detection sensor input as well, as a safety feature. I succeeded at repairing the board, but had to write the controller software from scratch.

DIY Automatic condensation water pump
makes

DIY Automatic condensation water pump

In 2015 we moved into a house which had a condensing gas boiler. When the previous owners installed it, they never installed a drain pipe to dispose of the water that it produces. Instead there was... a bucket that had to be emptied every week. I quickly grew tired of emptying the bucket. With no obvious way to direct the water except over the ceiling, I needed a device that would pump the water. This sounded like a fun DIY project, so I ordered some float switches and a 12VDC membrane pump, then got busy and soldered a simple set/reset controller with... Guess which old-school IC...

Atmel AT91RM9200 Linux DMX Driver
embedded

Atmel AT91RM9200 Linux DMX Driver

As final project for my Professional Bachelor degree Electronics - ICT, I developed embedded software. I built a custom Linux based device that acts as an 'Art-Net node', converting a serial DMX-512 stream to network packets.

After a few months of work, I was able to present a working system, with basic functionality and buttons+LCD interface working.

I wrote a special Linux (character) device driver for the AT91RM9200 microprocessor's built-in UART's built-in UART. This device driver provides a simple and straightforward way to use the AT91's UART on a DMX-512 universe.

This article is meant to provide some information about the project. It is not complete and will be written up on over time.

Debugging the free_ecb_at91 board using JTAG
embedded

Debugging the free_ecb_at91 board using JTAG

For a school project early 2007 (a study of embedded Linux on the AT91RM9200 ARM9 processor) I got familiar with the GNU development tools and setup required to run a Linux based operating system.

Using the setup described here I was able to inspect the inner workings of Darrell loader in real time, set hardware breakpoints, step through the program flow and inspect values of program variables while the CPU core was halted.

Ancient VB6 stuff
vb6

Ancient VB6 stuff

Visual Basic used to be an easily accessible programming language for the windows platform. I spent quite some hours and a lot of creativity with it years ago, and the result is a bunch of half-finished programs. I started creating stuff with VB6 out of interest when I was a kid. I didn't have any programming experience, and literature I got from the library.

I compiled a list of the things I created in VB6 when I created my website years ago, and for nostalgic reasons I still keep it here. Be warned these programs are childish and useless. Fortunately there is none of its nasty code here to look at.

PenguinPages Preprocessor
php

PenguinPages Preprocessor

When I started maintaining a personal website years ago, I kept all content in static HTML files which I uploaded. The server didn't support server side scripting and for a while I used a JavaScript to provide a navigation menu.

The JavaScript menu fixed just that, navigation. Devising a publishing side scripting system allowed me to separate the website look (template) from the content too.

I created a set of PHP scripts I named Pepp to process the page content along with a navigation menu to static HTML files to upload to the webspace.

JAL Programmable Logic Controller
pic

JAL Programmable Logic Controller

When my brother was doing his last year of high-school in electromechanics, he came up with the idea of doing his final project using a homebuilt PLC instead of the usual Siemens stuff. I built the electronics and came up with a framework so he could easily implement his GRAFCET state machine for his part sorting robot for the PICMICRO in the JAL programming language.

This was long before Arduino, long before 'all the cool kids were doing it', and JAL was a free compiler for the affordable PIC microcontrollers. The Arduino of its days.

Vim 8051 assembler syntax file
hacks

Vim 8051 assembler syntax file

I wrote this syntax highlighting file for Vim because I had an Intel 8051 course in 2005, and wanted to do my coding in Vim. It's totally optional to have syntax highlighting, but it does give you many advantages. This .syn file will make sure recognised mnemonics and registers are given a nice color. Also values that are entered are only highlighted if they are valid. Note that the colors depend on the color theme you choose in Vim, no fixed colors are used. You can easily add extra registers specific to your 8052 to the .syn file, the file should be self explanatory.

Using your WRT54 to secure your email connections
networking

Using your WRT54 to secure your email connections

Fetching POP3 mail over an untrusted WiFi public access point is dangerous, as the password is transmitted unencrypted (in plain text). Anyone with a laptop and a suited program can sniff your password right out of the air, along with your email. Sending mails is also impossible most of the time, since most ISP's only relay mail from computers directly connected to their network.

These two problems are solved by fetching and sending your email via an encrypted connection between your laptop and Internet gateway at home. If you run Linux and have a WRT54G, and it's running OpenWRT, you're almost there. Just follow this guide and you'll be set in under half an hour.

← Previous Next → Page 2 of 3
Follow me on Mastodon!