To use the washing machines in my apartment complex you need to pay using a rechargeable contact card. I was curious to find out how it works.

washroom.jpg card-reader.jpg original-card.jpg
the washing room the payment terminal the payment card

It turns out it's an I²C EEPROM in a card. By recording the communication between the card and the machine I figured out where and how the credit value is stored.

proxy.jpg
the ID-1 proxy PCB and Bus Pirate in I²C monitor more

Now I can read and write the value on cards using a Raspberry Pi or simple micro-controller, but also program my own cards to work with the machines.

rpi.jpg arduino.jpg own-card.jpg
using a RPi as card reader using an Arduino as card reader making own payment cards

How is the I²C EEPROM used:

The sources for the ID-1 proxy are available here. I will no provide the source for the Raspberry Pi nor the Arduino, since it would easily be used for fraud. The purpose was just to find out how it works, and in case the support for the machine or cards ended.