Converting a Ham IV rotator to computer control

My old Ham-IV rotator has been in storage for a while, but I’m keen on using it again for satellite tracking. Following moving object such as satellites across the sky requires computer control, so I decided to retrofit the Ham-IV’s controller box. After all the rotator controller box is just 3 switches and a position sensing pot, it shouldn’t be too hard to control using a microcontroller.

Replacing a HAM IV rotator display bulb by LEDs

My 1981 vintage rotator control box blew its display backlight. Instead of searching for a suitable replacement bulb, I decided to replace it with a LED strip.

Scheduling VSCP events

This page describes how to automatically send events on the VSCP bus on specific, pre-determined moments. This is useful for example to every night turn off any lights that might have been left on.

5-way LiPo battery charger

I plan on using a few spare Nokia Li-Ion batteries for my new quadcopter and was in need of a decent battery charger. This project can charge 5 single cell LiPo or Li-Ion (in my case Nokia BL-5C 1020mAh) batteries simultaneously from a single 6-20VDC power source. It is based on Microchip’s MCP73831 integrated charge management IC, which is powered through a 1117 5V regulator.

REX C100 teardown

In true eevblog-style we take the REX C100 PID controller and don’t turn it on, but tear it apart.

The controller can be found in many different options on eBay for around 10 Euro. I was curious to see what is inside this cheap PID controller so I opened it up and took some pictures to share.

Controlling VSCP from a web page

This article describes how to control VSCP events from a web page. It is based on websockets which connects to the VSCP daemon.

Setting up OpenHAB development environment on Ubuntu

This post describes how I set up my development environment for OpenHAB on Ubuntu 14.04 LTS.

Quick tour of my home automation system

Check-list for configuring Mespelare nodes

This article is a check-list for configuring Mespelare nodes as I integrate them into my house’s lighting and power system. It describes the steps to follow to properly configure each node, so that I don’t forget anything.

Most of the configuration is documented in a master spreadsheet file, which lists all inputs and outputs, how they are physically connected (cabling) and how they are to be configured.

Fixing a Yamaha 9.5A pull-cord

When I tried to start my old Yamaha 9.5A outboard engine the pull-cord broke. Oh well, at least I was still in my driveway and didn’t already have the boat in the water. So I set out to replace the pull-cord, which was an easy fix.

Slow PWM on Arduino

I have an old Weck kettle which I occasionally use to boil my wort while brewing. The thermostat on the kettle does not allow fine control of the power input into the wort, so I decided to make a simple controller for it. I had an Arduino Uno clone lying around and it was time to put that to some use. The controller does a very slow pulse width modulation on an output pin, which (through a SSR) will control the kettle’s heating element. This control has to be very gentle so that it does not put too much strain on the AC power.


While changing the gears on my Hobbymat MD65 lathe, I discovered that I was missing a crucial accessory: a small bushing which in my French manual is affectionately called “le coussinet”. To add insult to injury, the manual continues to mention that this is an “accessoire normal”. I guess the lathe didn’t come complete with all accessories when I bought it second-hand. So I had to make my own replacement bushing. Fabricating a small bushing isn’t a big effort when one has a lathe, except that the bushing has a longitudinal slot which accepts a piece of 4x4mm square bar. Without a mill it wouldn’t be easy to machine this slot accurately, but I decided to get creative nonetheless.

Aquarium dosing pump

Since I have started adding fertilizers to my aquarium using the Estimative Index, I’ve found myself dosing 10ml of liquid into the tank 3 times a week. This gets old very soon, so I started thinking about a way to automatically add the correct dosage of liquid. Since all problems look like a nail if you have a hammer, I started thinking about syringes actuated by motor-driven threaded rod. When looking in my junk bin for a suitable timer to drive the motor, I found a simple 230V timer and realized that it already contained a small but heavily geared motor which turned on a daily cycle. So I decided to try and build a dosing pump out of it. This is the result.

Raspberry Pi door bell

I’ve always wanted a door bell that could e-mail me a picture whenever someone came to my door. This should be fairly easy using a Raspberry Pi, so I built one. Here’s the build log and code if you would like to build one yourself.

Estimative index

My indigenous aquarium has been running just fine for a few months, and then developed a problem. The plant growth slowed down a lot, until they dwindled and slowly died. I knew I wasn’t feeding them properly, so I needed to give them some nutrients. But I want to avoid using test kits to measure the different nutrient levels in the tank. Enter the Estimative Index.

Installing VSCP on a Raspberry Pi

Raspberry Pi setup

This post documents how I have set up my Raspberry Pi (model B+) for double duty as a VSCP daemon server and a pimped doorbell. This page is mostly for my own reference.

Change CAN speed

The Hasselt code uses a non-standard bus speed of 250kbps. In order to stay in sync with the rest of the VSCP development community, I changed it back to the 125kbps which everyone else is using.

Actuating a local output from a local input trigger

An important design criteria for my home automation is that nodes should be able to continue performing (basic) actions autonomously, even when they loose connectivity to the VSCP bus. Therefore I designed my Mespelare node so that it has inputs and outputs to manage a 6-way push-button face plate with LED indicators, and the pulse relays that need to be actuated with these buttons. I was planning on piping events sent by the node through its own Decision Matrix and trigger the pulse relays this way, but it turns out that VSCP nodes do not receive events they have sent out themselves, so they are not processed by the DM within the sending node. I could re-write the vscp_firmware so that sent events are echoed to the receive buffer, but this would make mean I am no longer using the standard vscp_firmware and would have to merge future updates into my code manually. So I decided to implement the response to key presses in application code.

Update sendCANFrame()

Since version, VSCPworks reads registers using CLASS2_LEVEL1_PROTOCOL, EXTENDED_PAGE_READ. In reply to this request, the VSCP node sends a few tens of register values to the bus. These frames are sent through the sendCANFrame() and subsequently vscp18fsendMsg() or ECANSendMessage() functions. If the microcontroller can’t clear the CAN send buffer fast enough, the current implementation of the code hangs. Time to update it.

Changing interrupt timer period

The original Hasselt firmware runs a 10ms timer on Timer0 in interrupt isr_low. The code for Mespelare could use a timer that is a bit less granular than 10ms, for example for the new output PWM routine. Therefor I changed the timer period to 1ms, and updated the other code so it can handle this new timer period.

New action Pulse

The Hasselt code has defined several actions for its outputs: On, Off, Toggle and PWM. My house’s lighting system uses pulse relays so I couldn’t really use any of these actions, I need the action to put a short pulse on the output. So I wrote a new action called Pulse.

Solder reflow oven

This article describes the modification of a domestic oven for reflowing printed circuit boards. To avoid re-inventing the wheel I’m using firmware from another project, the Hobbybotics reflow controller. It has everything you’d expect from a reflow oven converter such as PID temperature control and solder profile selection and is nicely documented so it should be easy to reproduce. And it has a PC application as a bonus.

VSCP register addressing

VSCP uses registers to read and write information to and from a node. This article describes the way the addressing of these registers works in VSCP. It describes the mapping of registers in the MDF to the node’s application space and the way the application in turn stores these registers.

Cleaning a Siemens clothes dryer

So my Siemens WT46W560FG clothesdryer stopped working. It gave an error signalling that the condensation tray was full, while in fact it wasn’t at all. Checking the internet reveals that this is a very common problem with this type of dryers, so much that it can be considered a design flaw. Siemens wanted over a third of the cost of a new machine to repair my 4-year old machine, so I said no and decided to investigate the problem myself. Turns out all is needed to get the machine running again is a (very) thorough clean. Here’s the pictures, should you be interested to do this yourself.

Upgrading Mespelare firmware to XC8

As the C18 compiler is no longer supported by Microchip and the rest of the VSCP group has migrated their code to XC8, I needed to migrate my Mespelare firmware as well. This article describes the process.

Unbricking the PICkit3

So I’ve bricked my PICkit3. The PICkit 3 v3 application crashed while loading new firmware into the PICkit3, and it ended up bricked. It still got recognized by the host computer as a PICkit3 USB device, but with an empty serial number. The Power, Active and Status LEDs stayed on and I couldn’t load any more firmware. So I had to unbrick it. Ironically to do this you’ll need another PICkit programmer. I used my spare PICkit2.

Camera holder

I’m using my Nikon D3000 DSLR camera to document my projects for this web site. Usually it is trailing around somewhere on my cluttered workbench, which isn’t the best idea for a sensitive and expensive piece of electronics. So I decided it deserved its own dedicated space, and bodged up a quick & dirty open cabinet to install it in.

Mespelare proof-of-concept

Before putting the Mespelare board into production, I wanted to do a final proof-of-concept test to make sure the hardware design is 100% correct before ordering the boards and components. I wanted my first professional production PCBs to come out 100% perfect, I would hate it to have to bodge up 30 boards…

VSCP roadmap

This article describes my roadmap for developing a home automation system based on VSCP. While I generally try to avoid any Project Management in my hobby projects, this roadmap does keep me focussed on the ultimate goal of getting the system running, and to build basic functionality first and then the sugar coating.

Updating VSCP firmware

Now that I have the code for the Mespelare module mostly working, it is time to update the VSCP firmware to the latest version. A few years have passed since Kurt has written the firmware for Hasselt (on which Mespelare is based), and the code is still using the old VSCP firmware. A few changes and bugfixes have been made in the meantime so it is time to upgrade.

APRS tracker

This is a small PIC-based APRS tracker that supports the OpenTracker firmware. It has a small integrated 300mW transmitter on-board, and a pin header to connect a GPS module.

Dumping EEPROM contents

Frontpage thumb After lots of testing, reading code and checking, I came to the conclusion that the MDF file for the Hasselt module is bad. That statement goes for any version of the MDF that I was able to find (SourceForge, forum posts, …) So that means we’re on our own and will need to reconstruct it. To be able to do that, we’ll need a way to verify what values VSCP Works has written to our node’s EEPROM memory. This article describes some code to dump the EEPROM memory over the serial connection which we set up earlier.

Electronics components cabinet

When you have a hobby like electronics, you quickly find yourself swamped with large numbers of small components which you have to carefully label and store. This goes especially for SMD components; not only will you loose them, but if you don’t keep them in a labelled container you’ll never know the part number of the component again. I needed a cheap, easy and quick way of storing my components, so I made a simple cabinet for them.

Adding serial debugging

Learning the way existing code works is much easier when you can have insight in the code as it runs. While we can’t really look inside a running microcontroller the way we can with programs on a computer, we can use the serial port to send us information on the running code (values of variables, if statement conditions, signal specific points in the code etc). To add serial output to the existing Hasselt code, we’ll need to add a serial connection and add some code to the existing Hasselt firmware. We’ll start by looking at the code.

The Mespelare Decision Matrix

Dissecting the Hasselt firmware

The firmware for the Mespelare board will be based on kurtsidekick’s Hasselt firmware. To gain a good understanding of how this firmware works, we will dissect it in detail in this article.

Indigenous aquarium

As a kid I used to have a tropical aquarium. When I moved out of my parents house, the aquarium was emptied and stored in the attic. A decade later my parents cleared the attic, and the aquarium had to go. Instead of storing it empty in my basement, I decided to put some simple plants and fish in it for the enjoyment of my kids (and my own). Easy maintenance and low cost are the key words.

Installing USB2CAN on Linux

This article describes how to use the USB2CAN interface with VSCP on Linux. While I am installing the interface on Ubuntu Linux, there is no reasons why it shouldn’t work on other distributions as well. We’ll be using VSCP’s built-in driver. The interface is subsequently tested using the VSCP Works suite.

Printing Excel lists onto labels

After happily using Herma labels to label my beer bottles, I also want to use them to label jars in which I keep my SMD electronic components. Instead of printing multiple copies of the same label, I needed to figure out a way to print a different text onto each label, preferably without having to type over all the label information that I already have in an Excel file. Luckily, the Herma Label Designer has a feature to import information from a ‘database’. It has a small learning curve, so here’s a quick tutorial.

Installing VSCP Daemon on Windows

The VSCP Daemon is a service that forms an abstraction layer between the application(s) and the hardware interface. We’ll use it to allow multiple applications to connect to the bus through the same physical interface. Here’s how to install and test it on a Windows computer.

Table saw slide

I have a table saw with a crappy fence. It takes a long time and lots of measuring to set it correctly, and even then it isn’t as stable as it should be. I replaced it with a sliding table. This table is guaranteed to run exactly square to the blade, and allows for easy setting of cutting distances.

Bottle cap labels

Conveniently I label my beers on the cap and not on the bottle. This way they are easily readable without removing the bottle from the case, and once the bottle is uncapped and thoroughly rinsed, I put it in the crate on it’s head and it is ready for re-use, without removing any pesky bottle labels.

Pillar drill table

My cheap pillar drill comes with a standard table with two slots for installing a small vise. Rarely do I need to drill pieces that require tight clamping, so I figured my pillar drill would benefit more from a bigger table with an adjustable precision fence. I made one out of a few pieces of scrap wood.

Hacking the PlayStation 1

Now this is old-school: I sometimes play Tekken 2 and Tony Hawk 1 with my mates on an old PlayStation 1. I used to have a borrowed PS1 which I had modded, but had to return it. I have since acquired my own PS1, so it is time to mod it so it can run copied game CD’s.

Snelkoppeling voor flessenspoeler

De flessenspoeler “Blast”, die verkocht wordt bij Brouwland, is een zeer handig hulpmiddeltje om snel de binnenkant van flessen te spoelen. Het enige nadeel is dat je hem steeds op en af je kraan moet schroeven wanneer je de kraan ook wilt gebruiken om de spoelbak te vullen of een slang aan te sluiten. Het zou zeer handig zijn om de Blast met een snelkoppeling op een standaard koppelstuk te kunnen bevestigen. Mits een kleine aanpassing is dit eenvoudig mogelijk.

Hacking the Rigol DS1052E

Scope view I own a Rigol DS1052E oscilloscope. It is a 2-channel 50MHz scope which offers excellent value for its price, and as an unintended bonus can be easily hacked to increase its bandwidth to the 100MHz of its more expensive but otherwise identical brother DS1102E. This article describes the necessary steps, and where to find the correct firmware files & tools to successfully hack the scope.

Getting started with VSCP

This article is a collection of links to documents that have good information for people starting with VSCP. Besides reading the complete protocol specification, they explain some of the basic concepts such as the general protocol concept, addressing, the Decision Matrix, masks/filters and much more in an understandable way.

Running the Mespelare firmware

Mespelare VSCP firmware

My beer recipes

Fermenting beer Here are all the recipes for the beers that I have brewed so far. Not all of them turned out so great, mind you. I like to experiment and sometimes make extreme things. Some of these beers are, mmm, more of an acquired taste… My better beers are listed in bold, although ‘better’ is a quite subjective statement. Let’s say that these are the beers that I would happily brew and drink again.

VSCP toolchain

Mespelare VSCP Module I’m experimenting with VSCP. The Very Simple Control Protocol is a simple but clever protocol implementation. Its creator made some of the same design choices I would have made, so it will be well-suited for my application as a home automation protocol. I’m not going to describe it here, you can read all about it on Wikipedia or on the VSCP website. Instead I will describe the set-up I have installed to learn VSCP and develop for it.

Mespelare VSCP node

About my website and me

Thanks for reading my website. No really, I appreciate it. This website is a minimalistic attempt to give something back to the web. As this is a personal website, don’t expect quality content and fancy layouts. If you however like to read, as I do, other people’s endeavours into all things technical, I hope that my sometimes incoherent ramblings offer some information or entertainment to you.

How does my website work?

In case you wonder what technologies power this website, here’s the what and how.

TS-50 USB interface

TS-50 The original way to interface a TS-50 transceiver to a computer used to be through a serial interface converter. The serial interface has since been replaced with USB ports. Luckily it is even easier to build a homebrew USB interface for the TS-50!

Beer rack

I like brewing beer. This means I have to store a lot of beer. There was an unused space in the basement under the stairs so I set out to build a simple beer rack there. It holds 23 cases, is constructed out of cheap 46x21mm pine and designed to hold a Duvel case in such a way that a maximum of cases can be fitted, keep the bottles accessible without lifting crates, and to allow enough room for circulation. So I put the cases halfway on their sides.

Pillar drill bottle capper

Bottle capper I bottle all of my homebrew. Bottling is one of the more tedious tasks of brewing, and consists of different steps; filling the bottle, capping it, labelling and cleaning. The easier and faster I can make these tasks, the better. I have a pretty good work-flow for filling, labelling and cleaning bottles, but capping needed some improvement.

Automated brewery

My two main needs when brewing are small volume and automation, something I couldn’t find in most brewing rigs except for the (+1.500€) Speidel Braumeister. So I decided to build my own picobrewery, based on a 28L Weck kettle and a BrewTroller control module.

Homemade malt mill

Homemmade malt mill Crushing malt is an important step in brewing. It is important to crush the malt finely so that all starch is easily accessible for conversion into sugar, but care must be taken not to damage the husks too much since they are essential to the lautering process. An ideal mill for the job is a roller mill, since it crushes flour out of the malt grains while leaving the husks largely intact. As an exercise in metalworking skills I set out to build my own malt mill.

Building the MiniMost

Het Zotte Zomerproject van vorig jaar was een vispeditie van een paar dagen met een vlot op de rivier. Hiervoor heb ik een tweedehands buitenboordmotortje van 2pk gekocht voor 25€, wat nu dus werkloos in de garage staat. Zonde natuurlijk, en ik had de smaak van het ‘varen’ te pakken gekregen, dus kreeg ik al snel zin in een bootje. De vereisten waren: zelf te bouwen, klein en licht, en qua prijs zo dicht mogelijk tegen de 0€ aan.

Homemade magnetic stir plate

Magnetic stir plate If you want to grow your own yeast, a magnetic stir plate is a great tool. It keeps the wort (and any suspended yeast) in constant motion, improving the access of the yeast to nutrients, and optimizing gas exchange so that produced CO2 is replaced by fresh oxygen. Commercial magnetic stirrers are quite expensive, even second-hand, luckily they aren’t too difficult to make yourself.

Fishing raft

One day we were sitting by the waterside, fishing. We contemplated that it would be so comfortable to have a sofa on the bank of the river, no, it needed to be on a platform on the water! With a little barbecue on the side for food. And a sofa bed so we could sleep under a tent canopy. Well, things got a little out of hand from there… We built it, took the thing onto the water, lived on it for a few days and had lots of fun along the way!

Ballistic Evaluation Motor test 3

BEM after firing

This is a report of the third firing of the Ballistic Evaluation motor constructed by the Vlaamse Raket Organisatie (VRO). During the second firing a number of issues surfaced, which were since resolved and this third test is intended to verify these fixes.

Ballistic Evaluation Motor test 2

Ballistic Evaluation Motor

The previous tests with the Ballistic Evaluation Motor (BEM) failed because the motor failed to ignite. To avoid ignition problems it was decided to increase the throat diameter from 2 or 3mm to 6mm. This allows the use of a beefier igniter. Pol machined a new insert for the throat region, and made a hollow brass tube with flange for the ignition, in which the igniter was glued in such a way that the head of the igniter protrudes from the underside of the tube.

Static Test Controller

Static Test Controller

Deze pagina beschrijft de ontwikkeling van een geïntegreerd meetsysteem voor statische motorttesten. Deze electronica interfacet met de Ballistische Evaluatie Motor, leest hier de meetwaarden uit en geeft deze door aan een computer voor opslag en analyse.

Load cell amplifier

Static test This page describes the construction and operation of a device for testing rocket motors. It allows the recording of the thrust generated by the motor during a static test. The recorded data is then analysed using an Excel spreadsheet.

16F88 Rocket timer

This is a compact, programmable 4-channel rocket timer, based on the Microchip PIC 16F88 microcontroller. It features accelerometer or reed switch lift-off detection and 4 pyro channels that can be independently timed, disabled or grouped together.

TS-50 serial interface

TS-50 This article describes a homebuilt interface for connecting the TS-50 transceiver to a computer using the serial port.

Note: this article is depreciated, for a more modern and easier way to interface the TS-50 to a computer, please check the post TS-50 USB interface.

My QSL card

My QSL card The picture on the front of my QSL card was taken while departing for a DXpedition to Holmön island (EU-135), off the coast of Umea, Sweden. While preparing for the expedition, I was told that the only means of transportation to the island at the time I would be in Sweden, was a Hydrocopter. I could picture all sorts of weird vehicles in my head, like helicopters with floatation skids etc, but was quite surprised to see this nice vehicle sitting on the ice.

Building a custom MDF