The "T" in IoT

A wise man once said: “The Internet of Things has a profound lack of things”.

Well, this is true, so let’s push the state of IoT a small step in the right direction, by adding some things.

A “thing” doesn’t necessarily imply something new and innovative. It doesn’t have to be disruptive either. Significant value can be added in a business domain by simply IoT enabling existing devices - like, in this example, pinball or vending machines.

Companies that operate these types of machines tend to choose their coin mechs carefully. A coin mech is a small device that plugs into an arcade or vending machine. It accepts physical currency and will either reject or accept it. If it is accepted, the coin mech will generate a pulse train on one or more open collector outputs. These outputs are the electrical interface between the coin mech and the machine it fronts.

A pinball machine typically costs up to 100.000 NOK. An arcade simulator can cost significantly more. An operator is typically not present on location, unless there is a problem with the equipment. If he/she is lucky, someone will complain when a machine breaks down. If not, the operator will lose money. Profit margins are low and downtime is expensive, since the machine no longer generetes revenue when it is out of order.

So… What to do… ?

We have EE-02 LoRa modules and we have access to 12 pinball machines that are practically begging to be used as IoT guinea pigs.

Let’s connect them to the IoT sphere! Our infrastructure is already in place. We have LoRa gateways running and we have a backend server. We even have a nice frontend that enables us to create applications and devices.

We have to first create an application in We will then create devices that represent our pinball machines.


The devices can be configured as ABP or OTAA. We have chosen to use OTAA, so we will have to download the device configuration and copy the DEVICE_EUI, APP_KEY and APP_EUI and use as initial credentials in our firmware. Network and application session keys will be exchanged after the device has joined the network.


The physical integration is extremely simple. All we have to do is to connect power, ground and a signal wire to a GPIO pin and let some really simple firmware count pulses from the coin mech and transmit the count as LoRa packages at regular intervals.

It took maybe 4 hours to install and physically integrate EE02 modules in 12 pinball machines. Most of this time was spent navigating the wire harness inside the machines.

This is a demonstration application only, but it is up and running and is producing on the order of 2000 LoRa messages per day (Not enough to even tickle our backend :))

There are multiple ways an external application can get access to the message data:

  • Via the Congress (our backend) REST api.
  • Via web sockets
  • Via MQTT outputs that can be defined for devices.

Given that it is only a demo, it still provides real value. The operator now

  • has online access to audits.
  • knows if a machine is operational or not, without having to rely on personal communications.

PS. In case you are interested in experimenting with LoRa, is now possible to get access to EE-02 LoRa modules and EE-04 LoRa developer kits via our web shop. Yay ! :)