Making an Arduino act like an AXE027

Today I wanted to modify the firmware in a PICAXE microcontroller. Downloading the IDE and compiling the code was easy enough, but you have to have a special AXE027 USB to serial converter to get the code onto the microcontroller. Any USB to TTL level serial converter will do if only it inverts the usual TTL serial levels, i.e. the AXE027 uses 0V for logic 1 and 5V for logic 0.

Once I understood the problem, the solution was easy. Program an Arduino (of which I have many on hand) to treat its own serial pins as digital I/O pins whose logical sense can be inverted and pipe the I/O through to/from another pair of pins.

void setup() {
  // set up my serial pins as digital I/O
  pinMode(0, INPUT);
  pinMode(1, OUTPUT);
  // set up two other pins for interfacing with the PICAXE
  pinMode(2, OUTPUT);
  pinMode(3, INPUT);
}

void loop() {
  // act as a man in the middle inverting signals
  digitalWrite(2, !digitalRead(0));
  digitalWrite(1, !digitalRead(3));
}

That’s it. Now Arduino pin 2 goes to Serial In on the PICAXE and Arduino pin 3 goes to Serial Out.

You also have to connect Arduino ground to PICAXE ground and the PICAXE can use the Arduino’s 5V if it doesn’t have its own.

Gaggia Boiler Terminal Connectors

After years of mucking about with “chocolate block” connectors, I have now learned how to get the correct connectors for the boiler element terminals. The connector part number is 160783-6 or 160783-7 (or any digit after the dash from what I understand).

And for the plastic cover, there is now a 3D printable solution designed in collaboration between me and Loogle from the Gaggiuino discord server.

Here’s my YouTube video about installing the connectors and printing and installing the plastic covers:

Hot Metal Brewbot USA BOM

A coffee machine modder friend in the USA has built my rev2 board and sent me the bill of materials he used. This may give a head start to intrepid adventurers from the USA who are attempting the same.

Download it here. Note: this list was compiled before I decided that a metal oxide varistor is needed. See note 2 here.

Introducing Hot Metal Brewbot

My coffee machine controller is now open source. I have uploaded the firmware and hardware design to GitHub. This meant I needed a catchy name. I have always just called my controller “coffeepid”, which is pretty generic.

After a conversation with several coffee machine modder friends (thanks guys), I settled on “Hot Metal Brewbot”.

Do you need an explanation? Right then…

It’s a (delightfully bad) pun on the hot metal printing press and an espresso press. It also describes the thing we are controlling, i.e. the boiler. And I think it sounds kind of cool.

The name was already claimed by the HoTMetaL HTML editor but that is now defunct. Searching on GitHub, there are a few random projects using the name but nothing obviously popular and nothing related to coffee. And (if you share my dry sense of humour) this gives us another justification for the name: if a programming language can be named after an island where coffee is grown and a derivative of that language can become a standard adjunct to HTML, then why can’t a coffee machine controller be named after an HTML editor?

So there.

A reflection on HRH Prince Philip’s death

I have been surprised to find myself increasingly sad at the death of Prince Philip. This may seem odd as I never met him. So why am I sad? I have been pondering this and have identified four reasons. And what can I do about the sadness? Nothing – but I believe it will pass and I will settle into a hope founded in the Easter story which is, after all, the great surrounding narrative of the week in which Prince Philip died.

Continue reading

Zinc plating

This year I have plated several parts of my coffee machine with zinc to prevent corrosion. This turns out to be surprisingly easy to do at home and I found I already had all the components I needed.

I have plated the bracket which holds the steam boiler in my Gaggia Baby Twin, the bolts which hold the boiler together and the bracket which holds the thermal fuse in place and also acts as a terminal for the earth wire onto the boiler.

Continue reading

Where to mount a temperature probe?

Let’s suppose you’ve figured out a fab design for a temperature probe that could be mounted anywhere on the Gaggia boiler. What is the best placement for your probe? Two obvious considerations spring to mind:

  • Ideally the probe will reflect the water temperature well (rather than, say, always be colder than the water by some amount that is affected by ambient temperature or always hotter because it is more affected by the heating elements than the water).
  • Ideally the probe will respond very quickly to changes in temperature.

Continue reading

Temperature probe design

I have not found it easy to design a cheap and reliable temperature probe which can easily be mounted on the Gaggia boiler. If you have a simple solution, I would love to hear about it.

Here I document my present probe design and an idea I have just had which is really simple and obvious to me since I built a 3D printer but wasn’t before.

There are also some notes at the end about types of devices which could be used for temperature probes and how to use them with the rev2 board.

Continue reading