topocare x IOTA — PoP Status Report 04

Final realization

1) Review and focus of this article

In the first article of this series we presented the objectives of this PoC. Our aim is to create a true Pay-on-Production model (PoP), where IOTA payments are made for every production step. Every time a production step is achieved a payment should directly be executed.

A production step can be a spot weld, a bending operation or in our case “a meter of tube” produced by our machine. There are plenty of other examples beyond production processes as in e.g. laundry or carsharing operations.

To realize our goals, we developed a technology demonstration platform. The developed platform contains an electrical drive system, a control PC, as well as different types of sensors and actuators. The hardware is described in our second status report.

The software realization is the center piece of our proof of concept and described in our third report. We explained the relevant characteristics of the IOTA tangle, as well as the software architecture and logic of implementation.

In this report we will focus on the final results of the realization.

2) Process Demonstration

We did an external test with the technology demonstration platform. The results are shown below.

Figure 1: In front of our office

A small distance of approximately 7 meters was driven. The machine which is equipped with different sensors was tracking the production path. Each meter we pulled the textile roll in order to simulate a production step and therefor trigger a payment.

Figure 2: Triggering a transaction (orange light)

To get a direct feedback regarding the wallet status we implemented a signal light system. The sequence of lights used is: green, orange, red.

public void checkMachineUnlock(IotaMachineWallet.WalletState state){
   if(state== WalletState.allFundingInConfirmation){
setLEDs(true, true, true);
ros.setMachineUnlocked(false);
}
elseif(state== WalletState.available){
setLEDs(true, false, false);
ros.setMachineUnlocked(true);
}
elseif(state== WalletState.availableAndTransactionOngoing){
setLEDs(true, true, false);
ros.setMachineUnlocked(true);
}
elseif(state== WalletState.noFunding){
setLEDs(false, false, true);
ros.setMachineUnlocked(false);
}
elseif(state== WalletState.noFundingAndTransactionOngoing){
setLEDs(false, true, true);
ros.setMachineUnlocked(false);
}
elseif(state== WalletState.preparingRefunding){
setLEDs(false, true, false);
ros.setMachineUnlocked(false);
}
elseif(state== WalletState.refunding){
setLEDs(false, true, false);
ros.setMachineUnlocked(false);
}
}

The following figure 3 shows the status of no funding (red), available funding/ ready for production (green) and available funding and a transaction ongoing (green and orange).

Figure 3: Use of signal lights to indicate the machines wallet status

One of the light sequences can also be observed in figure 2 (gif), where a transaction is triggered by pulling the textile. At first only the green light is on, which shows that there is a sufficient funding for production.

When the orange light also turns on a production step is reached and therefor a transaction is started. The orange light will turn off when the transaction has been confirmed.

2) Machine Monitor

The transactions and sensor data used to qualify a payment can be seen on a web based “machine monitor”.

Figure 4: PoP Machine Monitor, Part 1

It allows the operator and machine owner to see where the machine was utilized. The transferred value as well as all production data is directly attached to the IOTA tangle. To achieve this, the PoW is done locally on the machine to ensure least possibilities of manipulating the data.

The production data can be visualized on the machine monitor. Based on the GPS data e.g. the production path can be observed on a map.

Figure 5: PoP Machine Monitor, Part 2

The prototypically implemented machine monitor can be reached publically under: www.toporobo.de

The following IOTA address can be inserted to find the given example:

HYUSLDKYDJJGSAZVCEMGARMTQTZLQ9FOCJRGVKOXMHVCNTH9FTOYXZCTOSH9PWJTWER99KHZNBSJLVXVASDWIG9RV9