Arduino HDK Quickstart

Basic Arduino Setup

See https://docs.google.com/document/d/1K2cRBrJnSa8AWtDL8i6PVFxEyXkXKZmScGG4JmmmWCo/edit#heading=h.amhyvsfh7v9f.

Setting the Hardware ID

  1. Create a global Gumband object (must be declared as a global object)

  2. Create a hardware unit on the Gumband platform

  3. Set the Hardware ID. This is a unique value generated and assigned in the Gumband UI for each registered Hardware device. It is required to link Hardware to a specific Exhibit.

Alternatively, Gumband can be initialized in OFFLINE MODE. In OFFLINE MODE, MQTT messages are sent over USB.

See id() API Reference for detailed documentation.

Setting the Username and Password

  1. Set the Gumband Master control server username and password

See username() and password() API Reference for detailed documentation.

Creating a Property (Publish)

Publish properties send information or I/O data to the Gumband Server. Publish properties can be things such as buttons state, switch state, dial position, etc.

  1. Create GumbandProperty objects for every Gumband property in the exhibit.

  2. Initialise each Gumband property. Publish properties are initiated using a property name, a peripheral name and a property type.

See GumbandProperty API Reference for detailed documentation.

Creating a Peripheral (Subscribe)

Subscribe properties receive information or other data from the Gumband Server. Subscribe properties are things such as LED colour, LED brightness, relay state, motor speed, motor position, etc.

  1. Create Gumband properties to which we subscribe to receive data.

  2. Subscribe properties are created using a property name, a peripheral name and a property type.

 

Handling Data

Publishing Property Data

  1. Publish some arbitrary data (e.g. data from an encoder).

    1. Obtain data. In this case we call a function where data from the encoder is decoded (line 89).

    2. Call publish() with the peripheral and property names we created earlier, as well as the decoded data.

  2. Publish a single byte of data (e.g. button state).

    1. Obtain data. In this case we call a function that reads the button state (line 97).

    2. Call publish() with the peripheral and property names we created earlier, as well as the button state data.

  3. Publish an array of data (e.g. the last few encoder positions).

    1. Obtain data. In this case, we call a function where data from the encoder is decoded and the last five encoder values are stored (line 109).

    2. Call publish with the peripheral and property names we created earlier, as well as the decoded data and the length of the array where that data is stored.

See publish() API Reference for detailed documentation.

Publishing Event and Debug Data

Publish an event message to the Gumband event log using event().

 

Publish a debug message to the Gumband debug log using debug().

 

*Note: See API Reference for detailed API documentation