This is my attempt at a general purpose touch-screen controller in a box.

The situation is this: You want a microcontroller to read and display some sensor, control some process, or provide some user interface – the details vary – and you just want to build one or two, but you also want it to be somewhat permanent. I really hate the jumble of wires, and the unreliability of breadboarding, but don’t want to go off and design a custom board and enclosure for each thing. I want something that’s flexible, but more reliable. It needs to be in a case. It needs to have connectorized IO. It needs to be flexible about providing power, because I don’t want to end up with a second power supply to drive the external to-be-connected bits.

On Tapper:

  • All the IO is connected by soldered jumpers between through holes.
  • Each of the three six-pin connectors provides power from one of the power rails (3.3V, 5V, or VIN) based on a solder bridge
  • The touch screen is constant, wired to the same pins, so it works with the same software you used the last time
  • The nucleo-32 dev board provides an on-board ST-link for programming and debugging.

The first use-case was a spincoater RPM controller. But I’ve also used it to wire up an I2C sensor and display the reading while allowing a user to switch modes.

More detailed info lives on the github page. There’s an example software project, which includes a basic UI widget API for the touch screen. At some point I may expand on this and pull it out as a stand-alone library. The software uses the modm C++ peripheral library, which I’ve been using a lot lately.