Steven P. Reiss


Internet of Things

We started teaching a class on programming real time and embedded systems in 2006. This was essentially a software engineering course that included a hardware component and had an emphasis on doing the modeling and verification that is integral to such development. The project we chose for this firwst incarnation of the course was a 1979 pinball machine that we pulled out the CPU board from and connected instead to a Linux machine via a 96 pin DAC. Although the course now concentrates on student projects, mostly IoT baased, we continue to work on the Pinball machine. In addition, we have been working on our own IoT devicse, a sign outside my office (and virtually on-line) that tells my current status and is updated automatically.

1. PinBall

image of laser ball pinball machine

After running for 10 years the pinball machine finally broke.  Rather than scrapping it, we determine what was wrong and pulled out the driver board and the connection to the Linux machine.  We replaced both of these with a board we designed and built consisting of an Arduino Mega, a set of solid state relays, and other assorted parts. We also replaced the 5 front panel gas-discharge displays with solid state displays we built. We wront a complete pinball program for this configuration and, after some experimentation, had a working pinball machine again. Unfortunately, there is a bad connection between the board and the front displays that arose which we haven't been able to fix due to Covid restrictions. Once things are back to normal, we hope to fix that and upgrade the program.



image of sign outside my office

In addition to playing pinball (when we can) we actually have done some research in the IoT area.

I have a sign outside my office. Not really a sign, but actually a chrome tablet running a kiosk app displaying a synamically updated image. The image tells mu current status, if I'm available, when I'll be back, how to reach me, etc. The convenient thing is that it is automatically updated so I don't have to worry about it. It uses bluetooth to see if I'm in my office, a motion sensor to see if I have visitors, an off-the-hook circuit to see if I'm on the phone, and has access to my Google calendar. For Covid, it checks if I'm active on my home machine, if I'm currently using Zoom, and if I'm in my "office" Zoom meeting where people can just join me. Based on this and a set of 25-30 rules it decides what to display and updates the display accordingly.

We wee this as a specific instance of a more general problem, that of "programming" a set of IoT devices based on a complex set of conditions. IFTTT is insufficient even for something as simple as our sign. We needed something more complex. We build UPOD as a prototype for experimenting with this. It uses a prioritized set of rules and a synamic set of sensors, conditions, and actions. we have interfaces for our sign as well as smarthab and smarthings. Most of our research here has been on developing user interfaces that are understandable, programmable and debuggable by the non-programmer.

Last updated: March 2, 2021