The death of fax has been greatly exaggerated! Twilio Programmable Fax allows you to work with faxes using the REST APIs that you are already familiar with as a developer. Instead of loading piles of paper sheets into a machine tray we can send and receive a fax in the cloud.

But… what about those beautiful physical fax machines? Remember the buzzing noise, the blinking lights and the minutes spent waiting for it to finish printing a page? While you could go out and buy a fax machine and get a landline, neither would be fun. We can instead build our own fax machine using JavaScript and some inexpensive Tessel hardware.

Things you’ll need

Our fax should be a physical device, a machine we can put on the shelf, on our desk or next to our copy machine. There are plenty of IoT microcontrollers that we could use but for this post we will use the open-source development board Tessel 2.

Why a Tessel? Two reasons. First, it runs JavaScript and supports npm with its massive number of modules we can use or re-assemble. Second it is an excellent platform for quick prototyping supporting Wifi, Ethernet, USB and serial ports out of the box so there are no additional modules needed.

This is the board. Beside the networking and USB it comes with two module ports on the right side. With some additional setup those ports could be used to rig a way to send faxes. We’ll focus on receiving faxes for now.

In addition to the Tessel the other hardware components we need are:

a thermal printer – no fax without printer; I’m using an AdaFruit Mini Thermal Receipt Printer but other printers with a serial port should work with some code changes.

a power supply for Tessel and the thermal printer. The printer requires its own a 5v – 9V, 2A power supply since the Tessel can’t power it. I use a separate power supply for the thermal printer and USB power supply to power Tessel.

lots of thermal paper rolls

jumper wires to connect the microcomputer with the printer.

Once you’ve gathered all of your hardware, the last three bits of prep you need to do are

sign up for a Twilio account which you can do here for free.

make sure you have a Node.js development environment set up including npm.

If this is your first time with Tessel follow the Tessel Installation Guide first. No worries, it is painless and shouldn’t take more than 15 minutes. Part of the getting started guide is a simple application which lets Tessel’s LEDs blink.