The Hiberfaker is offered by Hiber as a substitute for real Hiberband network connectivity when you do not have access to the Hiberband network, e.g. when you are working at your desktop. In this article, we describe step by step how the Hiberfaker can help you test your Arduino modem from end-to-end. The goal is to deliver the message you submit to the modem to Mission Control, via the Hiberfaker.
Make sure you have the following hardware ready:
- Arduino Mega 2560 R3
- Arduino modem shield; Beta or Gamma (Alpha is not supported by the Hiberfaker)
- Hiberfaker connector shield (only required if you use the Beta shield)
- External 3.3v power supply
Download or conform to the following software versions:
- Windows 7 or higher / MacOS 10.11 or higher / Linux Ubuntu 16.04 LTS or higher
- Arduino development environment (download)
- CP210x USB to UART driver (download)
- Arduino developer-kit project
- Hiberfaker utility
- You need to have access to Mission Control (hiber.cloud), the Hiber backend from which you can manage your modems. If you do not have access yet, please contact firstname.lastname@example.org.
- Modem firmware version v0.9.5 or higher required; you can check your version in the welcome message that is displayed when the modem reboots:
Hiber API (Build cn-release-v0.9.4-0-ge5cdfa46 @ Mon Aug 27 13:52:15 UTC 2018) - Ready
As you can see from this welcome message, this modem firmware needs to be updated.
Follow the instructions in this article to update your modem firmware with the Hiberfaker.
Step by step guide
- Stack the modem shield on top of the Arduino Mega:
- Beta modem shield: stack the black Hiberfaker connector shield on top of the modem shield.
Gamma modem shield: the Hiberfaker connector is integrated on the shield, you do not need a Hiberfaker connector shield.
- Beta modem shield: Connect the Hiberfaker connector to the 10 pin connector on the Hiberfaker connector shield:
Gamma modem shield: Connect the Hiberfaker to 10 pin connector on the shield, above the Hiber logo:
- Make sure the 3V3 and 3V3_INT pins are connected with a jumper cap:
- Make sure the On/Off switch (labelled S1) just above the Arduino's USB connector is set to the ON state: (here shown is the gamma version of the Arduino Hiberband shield)
- Connect the Arduino to your PC through the blue USB cable, and connect the Hiberfaker to your PC through the black USB cable:
- Open the Arduino IDE environment and set your Serial Monitor to communicate with 19200 bauds with 8N1 and both 'NL & CR' (i.e. \n\r at the end of each API UART command)
- Upload the Arduino developer-kit project
- Check if communication with the modem is working by entering in the Serial Monitor:
- The response should look like this:
API(600; <int>; every day)
- Download the latest Hiberfaker utility software (see links under "preparation")
- Extract the files from the downloaded ZIP archive
- From the directory to which the files have been extracted, run the "hiber-faker" executable (.exe) or binary by double-clicking it or executing in a terminal on Linux (./hiber-faker with proper privileges to access the serial port)
- Wait for the terminal window to end with '-- UART -- Reading port'
- This means communication is established after a few seconds and the utility is waiting for a Hiberband message to be sent by your device
- Now go back to the Arduino Serial Monitor and set your payload (this should be automated in your prototype by e.g. a sensor trigger), an example sequence of input and response would look as follows:
- The Hiberfaker will pick up from here and pass your encrypted message to Mission Control (hiber.cloud). Log in to verify if your message was received successfully.
- If the modem reboots upon sending a message via the Hiberfaker, you can resolve by connecting an external power supply
- The following screen recording shows the expected behavior, see the commands entered in the Serial Monitor at the top and the output of Hiberfaker Utility running at the bottom.
See the sequence diagram below under 'handshake between Arduino and Hiberband modem' for more detail on what API commands to send and what responses to expect from the modem.
Handshake between Arduino and Hiberband modem
When the Hiberfaker utility software is launched, you are ready to send your payload to the modem. After setting your payload, the HiberFaker will automatically detect the new payload and trigger a satellite pass-over. The desktop satellite will then pass your encrypted satellite message to Mission Control (hiber.cloud), where it is decrypted - as if it were an actual satellite message - and will trigger a webhook if this is set. A typical sequence diagram between host (i.e. Arduino Mega in this case) and the modem looks as follows:
Overview: from sensor to app
A typical IoT application encompasses a variety of components, such as:
- Arduino Mega
- Hiber shield with Hiber LPGAN modem
- Hiber Utility software
- Mission Control
- Your app
We are working on an example online test app to get you started quickly, so stay tuned!