Hardware and Software

Hardware

The original plan was to use RAK4631 module on top of RAK5005-O WisBlock Base Board, without the need for GPS or accelerometer, which are normally present and included in WisBlock based Helium Mapper described here.

All that is required for successful mapper is RAK4631 that provides LoRa and Bluetooth, allowing us to use it as an universal auxilary RF device, that can communicate with your mobile device via Bluetooth. This means also, that whatever logic is needed, it can be implemented in the mobile app, not in the firmware.

This is possible thanks to sensibly designed AT command set, meaning we can build our uplink data outside of the device and transmit via LoRa network. Maybe it is not the most elegant way to do it, definitely not the most efficient, but it works and means I can re-use the WisBlock mapper code, without any modifications!

The RAK4631 module is also very energy efficient (compare to any stock ESP32 solution) and without any optimisations uses only 12.5mA when idle (with Bluetooth connection active). For comparison, ESP32 based devices seem to take 38mA or more, depending on their state.

Power usage graph

As we are working with Class A device, you can see it listens for downlinks for a short time after transmitting an uplink.

REMEMBER - by default, RAK4631 running WisBlock Mapper software accepts Bluetooth connections only during the first 15 seconds since being powered up.

Software - Mobile Application

He.Mapper Lite was created entirely in AppInventor 2, which offers easy way to build mobile applications from simple building blocks (pretty much like Scratch). I feel I pushed it to the limits (and vice-versa) - anything more complex will most likely force me to switch to something else and rewrite entire app.

The application is fairly basic and is likely to remain as such, becasue I don’t have the time nor energy at the moment to make it more complex, and I don’t want to compete with RAK Wireless and their recently released hardware based Field Tester, which I had a chance to use during #HereBeDragonsLDN and have to say, it’s nicely done.

Main app features:

  • scan for Bluetooth devices (tries to display only RAK mappers, but sometimes shows everything nearby)
  • report back some device characteristics, battery status, etc.
  • use mobile device’s location sensor to obtain GPS coordinates
  • form an uplink message and transmit through Bluetooth connected LoRa radio
  • report back field test results and some diagnostics (in debug window at the bottom)

Main Screen

Values and their meanings:

  • Hotspots count — Reports how many hotspots received signal from your sensor - remember to enable multi-buy in Helium console!
  • RSSI — is an indication of the power level being received by the receiving radio (after the antenna and possible cable loss). It is normally expressed as negative value in dBm. The higher the value, the stronger the signal (as in -10 dBm is better than -20 dBm).
  • SNR — defined as the ratio of signal power to the noise power, often expressed in decibels. A ratio higher than 1:1 (greater than 0 dB) indicates more signal than noise.
  • Distance - reports the distance from the nearest and the furthest hotspot that received our signal and passed it to Helium Console. Distance is calculated based on asserted hotspot location and location reported in the uplink.
  • DC balance - how much DC is left in the mapper’s account.