LinuxTampa 1.0 — Independent Consulting (2000–2001)

These are projects I undertook during my first run as an independent Linux consultant.

MoneyTree ATM — The World's First Linux-Based ATM (2000)

The flagship project of this era was MoneyTree ATM in Destin, FL. The hardware team handled the enclosure — a hardened, robbery-resistant cabinet with a retractable keyboard controlled via RS-232C serial port. My job was everything else.

Hardware Integration

The machine had six serial devices, each requiring a custom driver:

Device Purpose
Retractable keyboard Motor control via RS-232C
8 side buttons (4×2) POS-style selection buttons
19.2k bps modem Visa merchant authorization
De La Rue cash dispenser Currency dispensing
3" thermal printer Receipt printing with auto-cut
Magnetic stripe card reader Payment card swipe (EMV was years away)

The stock Linux kernel supported four serial ports. Six were required. The fix was straightforward but required going into the kernel: I found the C array of structs declaring IRQ/DMA settings for COM1–COM4, doubled it to eight entries, and recompiled. This is possibly the smallest and easiest kernel modification that ever added a genuinely essential capability.

The De La Rue cash dispenser had no SDK, but its serial protocol was well-documented. I wrote directly to the serial port according to the protocol spec.

Because there was no continuously-available IP connectivity in 2000, remote management wasn't feasible — machines required in-person visits for maintenance.

If we were to do it all over again

A newer ATM platform would not have required six serial ports:

Software

Other Engagements

← Back to Work