Step 1: Check Operating Manual for starting up with the system


Other sources of help:


Application Notes:

    • Placement Manual – practical advises and examples of how to mount the Marvelmind Indoor “GPS” system to achieve the best performance in different applications and configurations
    • Autonomous copter settings manual – basic and practical recommendations for setting up of Indoor “GPS” system for usage with autonomous copters/drones indoor and outdoor
    • PixHawk and Marvelmind Integration Manual – step by step guide for PixHawk and Marvelmind integration for drones
    • Architectures comparison – basic explanation of Non-Inverse and Inverse architectures, their use cases and differences between them
    • Beacons comparison – a table summarizing key differences between regular HW v4.9 beacons and new types of beacons: DSP, Mini-beacon and Outdoor/IP67/EX versions
    • Selection Guide – a slideset aiming at helping you in creating configuration of Indoor “GPS” suitable for your particular task and requirements

Step 2: Install STM driver

    • – required to connect beacons/modems to the Dashboard via USB. It needs to be installed only once on your Windows PC.
    • DfuSe_Demo_V3.0.5_Setup.exe – required, if you decide to upload DFU SW. This version or v3.0.4 or v3.0.3 – depending on your operating system, computer’s HW, etc.

Step 3: Download and install the latest stable SW

      • Always use SW from the same pack: Dashboard SW + modem SW + beacon SW. Don’t mix SW from different SW packages. If not from the same SW pack, the SW compatibility between the modem, beacon, and Dashboard SW is not guaranteed
      • See how to update the SW in the Operating Manual
      • Start with default settings only

Updated on 19.Apr.2020

    • New features:
      • Support of up to 120m range in NIA. Works with special horn antenna with external microphone with Super-Beacon and Mini-RX
      • Modem can find too closely placed beacons now. Previously, both devices would be overloaded by RSSI
      • Support of geofencing zones in IA (previously, only in NIA)
      • Inverse and non-inverse geofencing zones (allowing and forbidding zones)
      • “IMU via modem” from beacons are available via radio in the Dashboard now with each location update. Previously – only via USB directly from modem to streaming, but not to the Dashboard
      • Dashboard streams out via UDP the received “IMU via modem” data
      • “IMU via modem” is supported in IA as well
      • All hedges stream our location data of all other hedges in IA now. It was previously supported in NIA only. In both architectures it is possible to turn the functionality off and increase the update rate by saving on the streaming time
      • Now IA supports new types of streaming packets via UART and USB: a) raw distances; b) raw IMU data; c) telemetry data (RSSI, battery voltage; d) quality of positioning. This have been supported in NIA only before. In IA and NIA these packets can be turned on from the Dashboard. By default only streaming of location data is enable
      • New types of devices added: robots and workers. And new layers of buttons in the Dashboard added to each of the new types
      • Player is now split into two parts: a) Player window, b) Statistics/Analytics window. Statistics/Analytics windows are customer specific and customized by request
      • Dashboard warns users that switched the Dashboard into streaming-only mode when they try to change settings in the beacons, because they can’t in this mode
    • New API features:
      • Function of read/write of configuration memory of the modem (settings and the map)
      • Function of angle received from the Paired Beacons feature
      • Function of manual entry of coordinates of stationary beacons
      • Function of read/write air temperature (as a parameter for speed of sound calculation)
    • Improvements:
      • When user starts entering distances in the table of distances manually, the automatic building up of submaps freezes to stop interfering with manual entries
      • LEDs of all beacon blink identically. Previously, for the same mode, different beacons could blink differently
      • Optimized power saving in Super-Beacons, Mini-RX and Industrial-RX and Industrial-RX beacons
      • Default size of submap and IA and NIA is the same now – 30m. Previously, 30m in NIA and 20m in IA
      • More settings are stored in the file of settings created by Save Map button
      • Quality of tracking of Mini-TX with Super-Beacons, Mini-RX and Industrial beacons
      • Dashboard automatically saves maps with any changes of settings and enters the link to the map into the log so that the Player could play log properly and use the right map accordingly
    • Bug fixes:
      • Corrected loading map into the hedges when button Load Map pressed in IA
      • Now the distance in the submap matches the distance in in the embedded oscilloscope in IA
      • Correct height entry of stationary beacons in overlapping submaps. Previously, when one of the heights enters, some other heights could alter
    • Known issues (to be fixed in the next releases):
      • Direction in the Paired Beacons configuration may not work properly with location update rates 1Hz or lower

Mobile beacon (“hedge”) interfaces

Via virtual UART via USB: Supported interfaces

This is the easiest way to connect since no soldering is required and protocol is the same for different operating systems.


SPI & UART interface pins on beacon board

Mobile beacon (“hedge”) libraries

Python library for beacon

  • Here is the Python code for Linux-based devices integration via virtual UART via USB
  • Library is easy to use. Also, here is detailed description and example
  • Code is fairly universal; Tested on:
    • Ubuntu 16.04
    • Raspbian Jessie
    • Mac (OS X 10.10)
    • Python 2.7 & Python 3+
  • There are handlers of different exceptions, for example, non-standard states of COM/USB

The Python library provides quick and easy ability for integration of ultrasound navigation system with various Linux-based devices. Among them are Raspberry Pi and other single-board PCs. This code is free to use in your applications (please include a reference link to this web page).

C library for beacon

  • Here is the C code + guiding document
  • Supported operating systems:
    • Microsoft Windows
    • GNU/Linux (including Raspberry Pi)
    • Mac OS X
  • Additionally, link to Github repository
    • v2018_04_06:
      • Improved processor load
      • Fixed compiling in Visual Studio
      • Added parsing for Paired Beacons angle
      • Added parsing for distance raw data
      • Added parsing for IMU raw data
      • Added parsing for IMU fusion packet

Android/Java library for beacon

  • Here is the Java code and simple Android application
  • Tested on:
    • Samsung S7 (API 25)
    • Huawei P6 (API 22)

Mobile beacon (“hedge”) integrations

Connection of Marvelmind hedgehog to Arduino via UART and SPI

ROS support for PC and single-board computers including Raspberry Pi

Marvelmind ROS package – GitHub link.

Marvelmind ROS package v1.0.11 compatibility and main changes:

  • Supports receiving telemetry, quality and waypoints data
  • hedge_rcv_bin allows to specify serial port baudrate in command line
  • Supported ROS versions:
    • Noetic for Ubuntu 20.04
    • Melodic for Ubuntu 18.04

Please, check the instructions on ROS integration.

Pixhawk support and NMEA interface description

Here is a detailed PixHawk and Marvelmind Integration Manual.

Please, also check the instructions on Pixhawk integration and description of interfacing via NMEA0183 protocol.

Sending path to your robot/copter

  • Here is an explanation how to send path data via mobile beacon to your robot/copter and sample code.
  • Protocol description => 2.3.1. Request of writing the movement path
  • Relevant forum discussion

Modem and dashboard interfaces

Protocol of data exchange with modem via USB interface

The Dashboard software log description

  • Forum link or direct link to the image. First column appeared later, and it is discussed in this topic. It is an additional absolute column – a timestamp – time in milliseconds passed from January,1 of 1970 (UNIX time) – Dashboard SW permanently writes coordinates into log file ‘hedgehogs.log’ that is stored into the Dashboard folder

Data exchange with Dashboard via UDP

  • UDP protocol description
  • UDP SW example
    • Here is the C-written UDP example
    • Supported operating systems:
      • Microsoft Windows
      • GNU/Linux
    • Supported streaming as well as master-slave mode