In 2012, I got my first exposure to an Arduino thanks to a coworker at my new job. Since then, I have worked on a variety of projects which I will be sharing here. Or, you can read Arduino related blog posts.

The number one most-viewed article on this site is this one, which deals with making the Arduino Ethernet library accept multiple socket connections on the same port (like real servers can).


  • ALLRAMBBS – (article, GitHub) my 1983 bulletin board system ported to Arduino. This was an experiment to translate Microsoft BASIC to Arduino C as closely as possible (and thus, as ugly as possible). The original program was designed to run on a 32K Radio Shack Color Computer with a cassette drive for storage, and therefore can’t really run out of the 2K the Arduino has, but if the message base and userlog is made very, very small, it is fully function. Just not useful. Or practical.
  • ArduinoDI – (article, GitHub) monitor a range of Digital Inputs and send a serial message based on the input going HIGH or LOW. This program was created to monitor pressure mats in a local haunted house attraction, and send signals to a piece of show control software that could monitor serial ports. It includes full debounce support to reduce false switch detection.
  • ArduinoAIDI – (article, GitHub) an evolution of my very first Arduino program, ArduinoDI. This one adds the ability to monitor the analog inputs as well. It will calibrate the AIs on startup, and then allow sending signals based on them reaching a threshold. It was created to respond to light sensors triggered by laser tag guns for a Halloween attraction.
  • Arduino Pac-Man Project – (article, GitHub) my experiments with the TVout library to generate video on an Arduino led me to documenting my accidental efforts to create a Pac-Man style dot eating maze game.
  • ATParser – (article, GitHub) a Hayes Modem “AT” command set parser that can monitor an input stream and look for the “+++” escape sequence to enter command mode. The guard time (before and after) and the escape sequence character is adjustable in software, just like it would be on a real Hayes modem.
  • Bluetooth (Adafruit Bluefruit EZ-Key) – (article, GitHub) experiments with the $20 EZ-Key module from Adafruit. I have a work-in-progress program that will allow you to reconfigure/reprogram the EZ-Key from an Arduino, instead of requiring a computer and installing special software to do it. This module will also enable Bluetooth support for my arcade input projects (such as a wireless iCade adapter).
  • iCadeTeensy – (article, GitHub) designed and written for a Teensy 2.0 using the Teensyduino IDE add-on, this code can read switches from a digital joystick (like an old Atari 2600) then send them out as USB keyboard commands in iCade format. The original project allowed playing Atari’s Greatest Hits on an iPad using a real Atari joystick. The code can be made to work on any Arduino that has enough digital inputs, and USB host mode (like the Leonardo). It would not work on other Arduinos, since it relies on that USB connection to the iOS device.
  • LEDHeartbeat – (article, GitHub) a simple time based routine to blink an LED to let you know your Arduino is still alive and processing. It is easily configurable. You can find this one on the official Arduino website:
  • LEDSign – (article, GitHub) a simple scrolling LED sign program for WS2811 (Adafruit NeoPixels) addressable LED strips. It could be easily modified to work with the LPN8806 strips as well, and possibly any other similar type strip.
  • sesTelnetServer – (article, GitHub) a work-in-progress Telnet server for the Arduino. Unlike the small examples, this one actually supports Telnet protocol and can easily be modified to handle any of the Telnet escape sequences you care about. It has extensive debugging information that can be compiled out with a #define, and also can be conditionally compiled to run with all strings in Flash to save RAM space. If the Ethernet library is updated to fix a bug, it even supports a mechanism to let connections be gracefully refused with a message while the main connection is in use.
  • USBiCade – (article, GitHub) a work-in-progress expansion on the original iCadeTeensy project, this time designed to work on devices with both USB input and output, such as a Leonardo with USB Host Shield. It can read inputs from various standard USB controllers (like a fighter stick or even the USB Atari joysticks) and translate them to the USB keyboard signals the iCade generates. This allows an off-the-shelf cheap joystick or game pad to be used on an iPad.


Much more to come…

One thought on “Arduino

  1. Pingback: Greetings from the Sub-Etha! « Sub-Etha Software

Leave a Reply