1) Study Operating Manual

The Operating Manual is your most detailed source of information on deploying and operating the Marvelmind Indoor Positioning System.

2) Study Placement Manual

Learn how to place stationary and mobile beacons properly and meet the essential requirement – the line of sight between the stationary and mobile beacons – with the least amount of equipment.

3) Study other sources of help

There are many other helpful documents and guides, including those made by our users.

We also have a developed YouTube channel for those who prefer watching to reading.

Study in detail and avoid typical mistakes.

4) Install required drivers

Download and install the required STM32 driver.

Optionally, install the DfuSe programmer.

5) Install the latest SW pack

Download and install the latest SW pack. All beacons, modems and the Dashboard must have the software only from the same SW pack.

Remember to press the Default button to default the settings.

6) Integrate with your devices

After achieving perfect tracking in the Dashboard, start integration with your external devices (robots, drones, etc.)

Step 1: Check Operating Manual

The Operating Manual is your primary source of detailed information about the Marvelmind Indoor “GPS” system. Download, study it, and follow the recommendations before deploying any Marvelmind system. If anything is unclear, check the Help page.

Step 2: Check Placement Manual

Another essential manual to start with is the Placement Manual, which explains where and how to place stationary, mobile beacons and the modem for different scenarios: robots, drones, vehicles, people, etc.

Step 3: Check other sources of help

Marvelmind List:

  • Marvelmind Robotics List – a list of companies operating in the fields relevant to autonomous robotics and precise indoor positioning

Manuals and Application Notes:


Placement of beacons, submaps, and maps:

Selection guides:
  • Beacons comparison – a table summarizing key differences between different types of beacons
  • Selection Guide – a slide set aiming at helping you in creating the configuration of Indoor “GPS” suitable for your particular task and requirements

Network planning and implementation:

White papers and training:


    Use cases:

    How to:


    Other helpful photos, PDFs, 3D models, CAD files, STLs, STEPs, and archives:

    Step 4: Install drivers

    Download STM32 driver

    Download and install STM32 driver on your computer once

    The driver is required on your computer for the processors used in beacons and modems to be visible in Windows.
    Linux already has it. Thus, you don't have to install it.

    Download DfuSe programmer

    Download and install the DfuSe programmer on your computer once

    The DfuSe programmer is required if you decide to upload the DFU SW.

    DFU SW is the lowest lever SW and can be uploaded even to an empty processor. But use it with caution because there is no HW vs. SW control, i.e., you can upload any SW to any HW, and in case mistakes are made, the wrong SW can some cases, damage the hardware.

    – DfuSe v3.0.6:

    – DfuSe v3.0.5:

    – DfuSe v3.0.4:


    Try different versions, depending on your Windows vs. DfuSe combination. Try different computers. Try clean installations

    Installing DfuSe can be an issue in some Windows configurations. See comments from one of the customers:

    “I discovered a solution in an online forum. Unzipping the driver file and running the executable isn’t enough to get the device to register in DFSuE mode. I had to dig deeper into that folder and install a separate windows 10 driver. There was no record of this information in any set of MarvelMind directions. I am including the link to the forum for your company’s further use in expanding any explanations or instructions. “

    Step 5: Install the latest SW and API

    Download SW/API pack

    Download the latest SW pack

    This is the latest SW pack (v7.306) required for any Marvelmind hardware. It contains the SW for all Marvelmind beacons and modems except for the Super-Modem. The pack also includes the API.
    For the Super-Modems SD card, use a separate SW file.


    API is included in the same SW pack as the main SW. Just download and use it.

    Protocols are described in the Marvelmind protocols and interfaces document.

    SW updates:

    Some time ago, we introduced a system of constant updates. Thus, we don’t wait for major or minor updates. We will update the pack as soon as there is an update in the following manner:

    • We made a new feature => increased the SW version number => uploaded the new SW
    • We identified a bug => fixed the bug => increased the SW version number => uploaded the new SW

    Thus, the best and latest SW is always available on the site without delay. Thus, the SW release changes below are just the latest changes. Not between the SW versions, not version-to-version, but just the latest changes introduced to the SW pack in the constantly evolving SW pack.

    The higher the record is in the list – the newer feature or bug fix is.

    SW release v7.306 (19.Nov.2022):

    • New feature: IMU+Ultrasound post-processing sensor fusion for location is introduced. Read more
    • New feature: Support for a new SW feature: MMSW0007: Submap islands
    • New feature: Support for a new SW feature: MMSW0008: All hedgehogs’ location update in every cycle
    • New feature: the timestamp between all devices is now fully synchronized and linked to the time of the modem. If the modem is connected to the Dashboard, the modem’s time is synchronized with the time of the computer that runs the Dashboard. The new streaming format is not backward compatible. But there is a tick that can return the compatibility, but it will lose the new feature: Dashboard => Interface => “Stream real-time timestamps”
    • New feature: it is possible to set a static address of the Super-Modem now
    • Linux x86 is also supported in Ubuntu 20.04 now
    • Bug fix: Precise Z rotation of the vertical submap affected the position and the horizontal submap as well
    • Bug fix: Default settings also erased ultrasound frequency settings. They must have remained untouched
    • Bug fix: Overlapping 3D submaps
    • Bug fix: Paired beacons were losing the fixed distance between the pair
    • Bug fix: Axes in the Dashboard
    • Changes: protocol has been updated. Check and use the revised protocol, if you already have integration with your devices
    Changes in the naming of SW versions and licenses:
    • Optional SW features brought by MMSW0005 are now marked with L at the end of the release name. For example, v7.200 – only base SW features are enabled – by default. Purchasing the MMSW0005 license activates optional features and the SW version changes to v7.200L
    • Naming example IA vs. NIA: v7.200 and v7.200L – SW for NIA and MF NIA, v7.200i and v7.200Li – SW for IA
    • If some beacons/modems don’t have the MMSW0005 license, their addresses are listed in the upper part of the Dashboard – information window
    Changes in files in the Marvelmind SW pack:
    • The SW files for beacons/modems that don’t require an update with the new release won’t be replaced with the new files in the new SW pack. However, the Dashboard will assign the new version number to them based on the newly introduced SW version compatibility table. Thus, the files physically remain the same, but if they are compatible with the latest SW pack, the Dashboard will automatically substitute their older SW version number with the latest SW version number
    • It is done to detect and avoid the most common mistake by the users – an attempt to run incompatible SW versions of beacons, modem, or Dashboard obtained from different SW packs, i.e., not updating the beacons/modems to the latest SW version from the same SW pack upon getting the equipment from Marvelmind Robotics

    Always update the SW from the same SW pack upon getting the equipment. Update the SW to all beacons, modem, and the Dashboard. Always from the same SW pack only. And remember to press the Default button to have the default settings for each piece of equipment.

    • API can be found inside the Marvelmind SW pack as a subfolder. Download API
    Download SW for Super-Modem

    Download Super-Modem SW

    Required for Super-Modem only - the latest stable SD-card image and HEX file for Super-Modem. It is separate from the main SW pack because of its large size - the SD card image (1Gb)

    Download Robot v100 SW

    Download SW for Robot v100

    The latest SW pack for Robot v100 (1.8Gb)

    Download SW for robot Marvelmind Boxie

    Download SW for robot Boxie

    The latest SW pack for robot Boxie. It consists of two parts

    1. Marvelmind Boxie SW – unzip files and save them to a USB stick. Enter the USB stick into the Boxie’s rear USB ports and press the reset button on Boxie. The Boxie SW will be updated automatically. The archive contains Odo board SW, modem SW, Dashboard, and SW for internal mobile beacons (“hedges”) – separate versions for left and right. Left – from the robot’s point of view. For the first time, Marvelmind Boxie SD card SW update is required
    2. Marvelmind Boxie SD card SW – use only when the SD card update is needed. The update process requires a screwdriver and opening of the top plastic cover around the display
    3. Marvelmind Boxie API

    For more information, check and follow Marvelmind Boxie Operating Manual.

    The most basic requirements

    • Always use SW from the same pack only: 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, the Beacons, and the Dashboard SW is not guaranteed
    • Always press the Default button in the Dashboard, when uploading the SW
    • Start with default settings only => remember to press the Default button in the Dashboard, after updating the SW

    SW releases archive

    Minor SW release v7.080 (14.Jun.2022):

    • New feature: Support of 8 ultrasound frequencies in MF NIA – particularly important for multiple drones and other systems with multiple
      mobile beacons, when IA is not feasible, for example, because of excessive noise near the mobile beacons
    • New feature: Geofencing zone violation. Instead of reading the stream of location data in the protocol, it is now possible to have just a pin from the 4X4 pins be automatically switched to “0” or “1” every time reset when the geofencing zone rules are violated. Thus, it simplifies the interfacing. This is an option SW feature under license: MMSW0006
    • New feature: It is now possible to have 3D geofencing zones. XY – based on the shape of the zone. Z – heights range – a layer thickness
    • New feature: An option for highly-resilient industrial applications – an automatic self-reset of beacons in case of the absence of the modem’s radio signal, when the radio from the modem is supposed to be available, but the beacon doesn’t get it for some reason. It shall help the beacons to re-assign themselves to the radio traffic from the modem
    • New feature: Support of new hardware: Industrial Super-Beacons-3 (Industrial-RX-3, Industrial-TX-3)
    • Improved: New default radio profile 100kbps instead of the former 38kbps and 153kbps. 100kbps allows us to have a common radio profile for the most extensive variety or radio chips and different batches of beacons/modems we supply, thus simplifying the settings in complex maps consisting of multiple hardware variants. Supported by all devices except for Beacons HW v4.9-433MHz and Modem HW v4.9-433MHz
    • Improved: PPS (timing) signal from Super-Beacons in NIA
    • Improved:  M1/M2 mode (“oranges”) – to easy building handover zones and to matching localization from neighboring submaps
    • Improved: internal control of maps in IA based on multiple parameters – not only based on the number of beacons and submaps as before
    • Improved: Optimized DSP filters in IA. The update rate is enhanced by 10-20% as compared with the previous SW release
    • Improved: Greatly improved timings in IA and NIA. Stricter control over timings in complex maps
    • Improved: In NIA, the mobile beacons that are not tracked are disappearing from the map, like it was earlier already implemented in IA, i.e., in order not to give false information about the current location, when location is not determined anymore
    • Improved: Beacons and Modems with default settings are displayed with the “-d” suffix now – to highlight the importance of default settings for beginners and simplify debugging when wrong settings are used in the system. Applied to all beacons except for mature Beacons HW v4.9
    • Improved: If the location of a mobile beacon is not determined, there still will be a stream of data, but the fields will carry a “not measured” mark with each time reset
    • Improved: Measurements of battery voltages in beacons
    • Improved: Temperature settings now affect on calculations in IA as well. Previously – only in NIA
    • Improved: Dashboard interface improvements, particularly, related to working robots: path settings, manual control, robot selection, etc.
    • Improved: The paired beacons in NIA are shown in the Dashboard based on IMU – not based on ultrasound. It gives for more stable angle of direction
    • Bug fix: Fixed handovers in NIA. With larger number of submaps there could be handover issues
    • Improved: Beacons and Modems with default settings are displayed with “-d” suffix now – to highlight important of default settings for the beginners and to simplify debugging, when wrong settings are used in the system. Applied to all beacons except for mature Beacons HW v4.9
    • Bug fix: Fixed issues with submaps in NIA with Beacons HW v4.9 and Modem v5.1
    • Bug fix: Fixed issues with the embedded Oscilloscope with Beacons HW v4.9 in IA
    – The main change in the release is an introduction of support of 8 ultrasound frequencies: 19kHz, 22kHz, 25kHz, 28kHz, 31kHz, 34kHz, 37kHz, 45kHz. Previously, the system could have up to 5 ultrasound frequencies: 19kHz, 25kHz, 31kHz, 37kHz, 45kHz
    – Introduction of new frequencies greatly simplifies deployment and greatly improves the performance of complex indoor positioning systems with complex maps of stationary beacons, where ultrasound frequency reuse could quickly become a major headache for network planning. The lack of available ultrasonic frequencies in neighboring submaps would lead to a need for TDMA between the timeslots of the submaps. In its turn, the need for TDMA would lead to the location update rate reduction
    – Additional frequencies also help with avoidance of potential interference with other ultrasound devices in your robot, for example, with sonars. Usually, they work on 40kHz, i.e. no problems, but there could be some variants. Thus, more frequencies – more freedom and more options
    – Super-Beacons with frequencies are fully available too
    – Super-MP set came previously with 5 frequencies and no variation. Now, the set will come with 5 frequencies out of 8 frequencies available. If you want a particular set of frequencies for your Super-MP, let us know during the order
    – 8 frequencies are fully supported in IA and NIA. MF NIA has a limited support now: only 5 frequencies of 8 available, but new frequencies from the list of 8 frequencies are already supported. Support of all 8 frequencies in MF NIA will come in the coming releases
    Changes and improvements:
    – Several minor improvements and bug fixes
    – Introduces support for the very latest hardware batch Super-Beacons-3, Mini-RX-3 and Modem v5.1-3
    – Backward radio connectivity compatibility has been tested on 38kbps only. Thus, for the time being, it is a default radio profile. Remember to press the Default button in the Dashboard after updating the SW on beacons and modem
    – Other radio profiles shall work, but not thoroughly tested yet. If you experience any difficulties, just fall back to the default 38kbps for now
    – Always remember to press the Default button in the Dashboard’s bottom-right corner to upload default settings. Without pressing the Default button, the modem, most likely, won’t see beacons over radio
    Changes and improvements:
    – Minor improvements in submap/map building routine:
    – Deleted beacons are not attempting to return to a submap
    – Chosen in the Dashboard submap automatically rebuilds itself with a higher priority than other – not selected – submaps. It makes the submap building faster
    – Fixed issues with heights of beacons in overlapping submaps
    – User payload now is supported in NIA for Modem v5.1 also. Previously supported only for IA
    – Modem v5.1 now automatically self-reboots after some time of not being connected with a Dashboard
    – New and special mode of splitted microphones for Badge
    – IMU data via Modem v5.1 fixed
    – Fixed robot path transmission via UART from a mobile beacon on the robot
    – New advanced feature for tracking relying on “relatives” – neighboring beacons not belonging to a serving submap. Improves tracking in complex and noisy industrial environment
      • New features:

        • New hardware (HW) for Super-Beacons is supported. We have two types of Super-Beacons: Super-Beacon (produced until Dec.2020) and Super-Beacon-2 (starting from Jan.2021).
          • Super-Beacon-2 has MIC/TELEC certification for Japan. Super-Beacon didn’t have it and won’t have it. From the SW point of view and the main functionality point of view the Super-Beacons are equal. There are additional improvements with optional external microphones and some differences in 4×4 pinout. See more in the Operating Manual
          • Both types of Super-Beacon HW are tested and supported now and in the foreseeable future
        • Similarly to Super-Beacons, new hardware (HW) for Super-Modems is supported. We have two types of Super-Modems: Super-Modem (produced until Nov.2020) and Super-Modem-2 (starting from Dec.2020).
          • The Super-Modem SW is the same for both versions and the HW is detected automatically. You can see the type of your HW in the Dashboard, when the modem is USB connected
          • Both types of Super-Modem HW are supported now and in the foreseeable future. Only the latest Super-Modem-2 HW has been thoroughly tested in this release. The older HW will be tested in the coming weeks. The probability that is already well supported is very high
        • Supported option CAN interface for Industrial Super-Beacon, Industrial-RX and Industrial-TX. CAN interface with other interfaces are described in detail
        •  Dashboard:
          • Possibility to assign own icons instead of hedgehog’s default icon
          • Enhanced and enriched interface of Robot v100
          • Possibility to draw a floorplan directly in the Dashboard
      • Improvements:

        • Dashboard
          • Realtime Player in NIA mode with low location update rate improved
      • Known issues (to be confirmed soon in this release):

        • Verification tests of the SW release with Super-Modem HW are still to be done
      • New major SW release: Marvelmind SW pack v6.240
      • Please, notice that Super-Modem SW is still being prepared. Thus, if your system is using Super-Modem, use the previous SW pack
      • New features:

        • New Modem v5.1 is supported
        • MF NIA is supported and fully commercially available. MF NIA is particularly great for multiple drones and multiple noisy mobile objects when location update per mobile beacons is important. MF NIA allows to have up to 5 times higher update rate than NIA in the configurations with 5 or more mobile objects. See more:
        • MMSW0002: Heading packet GPHDT for NMEA0183 introduced
        • MMSW0003: UBX (u-blox) protocol for PX4
          • Great feature for fully autonomous flight with PixHawk & PX4
          • Supports the Paired Beacons instead of u-blox thus resolving one of the most critical issue for the indoor flight – direction, when compass doesn’t work
          • Check out the Drones page
        • It is not necessarily now to make a filter selection for Super-Beacons, Mini-RXs, and Industrial-RX/Industrial Super-Beacons. The system is handling this information automatically
        • A new parameter in IA: “Max. hedges readout per cycle”. Update rate per mobile beacon/hedgehog doesn’t directly depend on the number of mobile beacons, because they calculate their location independently from the modem and at the same time. However, if you want to track all those hedges in the Dashboard and there are many hedges at once, the radio bandwidth may be become a bottleneck. Thus, this parameter helps to define the optimal number of hedges that share their location with the modem at once. For example, if you have 60 mobile beacons, you can choose all 60 to be sending their location to the modem with each location update. Even though, they could have 8-10Hz location update per mobile beacon, 60 messages per location update create high radio traffic load and lead to the reduction of the update rate to every beacon. Thus, the real location update rate may reduce to 1-3Hz instead of 8-10Hz – depending on the chosen radio profile. However, if you choose, 10 hedges to be updated at once, then you will still have your 8-10Hz per beacon, but on the modem side, you will see your hedge with 8Hz/60*10 location update, i.e. 1/6 of the real location update on the hedges’ side.
        • Stereo microphone support enabled. External stereo microphones are very useful and very powerful when it is needed to provide the highest performance for larger maps consisting of many submaps (warehouses, for example), or the stationary beacons are close to the horizon and the embedded microphone in Super-Beacon or Mini-RX don’t perform too well anymore. Stereo microphones are used, for example, in Marvelmind Autonomous Delivery Robot v100
        • In the paired beacon configuration, it is now possible to send data between the hedges via UART or via radio and to choose it from the Dashboard
        • Option to never sleep. Before, the beacons would automatically sleep after 1 min, when the connection with the modem lost
        • There is a new flag in IA indicating incorrect positioning detected by the system. Previously – in NIA only
        • New and richer coloring of beacons and buttons in the Dashboard in different modes (sleep, no radio, no ultrasound, etc.)
        • Several new modes in the Dashboard for beacons: with coordinates, without coordinates, small dots
        • New button: Freeze zones. It blocks changes in all kinds of zones (service zones, no-driving zones, etc.) and in the robot path. It is done it prevent accidental changes of the zones after they are created. Use Save map button to create backups for the maps and service zones. Use Save path button to store paths
      • Improvements:

        • In NIA, when the service is selected, there is no anymore an automatic submap size limitation. Previously, it was calculated based on a fixed formula and the size of the submap depended on the distance between stationary beacons. For shorter distances between the beacons, the submap could have been smaller than wanted. Now, there is no such a dependency and the size of the submap is defined by the Limitation of Distance, if a service zone is not defined, or the service zone for the submap, if it is defined. By default – the service zone. But, again, if the service zone is defined. If it is defined, it possible still possible to manually switch to higher limitation of distance and, for example, for 10-m submap, the limitation of distance will be 30m. It will lead to slower update rate, because the system will wait longer for an ultrasound to arrive. But in same cases, it may be interesting and required by the user. So, such an option exist
        • In IA, there is an internal check now that the map and the timing of “hedgehogs” and “owls” are loaded to hedges correctly
        • New warnings and messages in the Dashboard for the end users:
          • When the user tries to activate more than 4 stationary beacons per submap – only up to 4 stationary beacon per submap is supported. For more – build more submaps
          • When the user tries to introduce in a submap in IA stationary beacons with the same ultrasonic frequencies. It is not allowed, because IA submaps must have beacons with different ultrasonic frequencies
          • When only one hedge per cycle is selected in the Paired Beacons configuration – at least, two are required
        • In radio profile, FEC is not disabled for 38kbps and 153kbps. The radio becomes incompatible with the previous SW versions, but we ask to update the SW for all beacons and modem to the latest from the same SW pack anyway. So, the change is unnoticed to a regular user, but brings higher update rate due to shorter radio pulses
        • Updated 500kbps profile to achieve compatibility between Modem v4.9 and Modem v5.1
        • Improved ultrasonic trigger (distance measurement) for Super-Beacons, Mini-RXs, Industrial-RXs, Industrial Super-Beacons
        • Dashboard now shows a message when there is no lock between gyroscope angle and the ultrasonic angle in the Paired Beacons configuration. Used, for example, in the following cases: and
        • Improved tracking in IA in 2D
        • Log-files of the Dashboard now have extension .CSV instead of previous .log
        • Several robots driving simultaneously are supported in the Dashboard now
        • Default height of the service zone is 10m
      • Bug fixes:

        • When one of the hedges were lost over radio in NIA, another were lost too – fixed
        • RX485 if power save mode with Industrial Super-Beacons didn’t work properly – fixed
        • IMU fusion of angle with power saved enabled didn’t work properly – fixed
        • Simultaneous positioning in two submaps (M2 button in the Dashboard or “oranges”) for defining handover zones in didn’t work well in IA – fixed
      • Known issues (to be fixed in the next releases):

        • The button in the Dashboard defining the axis and the starting beacon – – works well only, when the submap is frozen. If it is not, the behavior of the submap/map can be unstable
      • 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

    Step 6: Integrate with your devices

    Download Marvelmind Interface Protocols

    Download PDF with all Marvelmind interfaces and protocols

    All external Marvelmind protocols and interfaces are described in a detailed PDF. The location data can be received from the mobile beacon, the modem, or both simultaneously, allowing tracking, remote control, or using the location directly on the spot by autonomous robots or drones.

    Before you start integrating anything, see and follow our recommendations:

    – 8 basic steps from unpacking to autonomous drive/flight
    Typical mistakes with Precise Indoor “GPS”

    In short:

    • Always do step by step from the most straightforward 2D configuration with two stationary beacons and only one mobile beacon and everything in NIA, even if your final design is far more complex, something completely different and in another architecture
    • You will be there, but reach that stage small single step at a time
    • Don’t try to build the final configuration right away before confirming that the more straightforward design already gives you the perfect tracking
    • This is the fastest and most guaranteed way to achieve perfect tracking for any possible configuration
    Example 1 – building a system for an autonomous flight with more than one drone:
    • Reach basic NIA tracking in 2D – not even on a drone – 2 stationary beacons, one mobile beacon, one modem
    • Reach basic NIA tracking in 3D – not yet on a drone – add two more stationary beacons – nothing else
    • Reach the same on a drone, but the drone is not yet flying – only remotely controlled – but the mobile beacon is powered from a drone – – the drone may interfere in one way or another – has to be checked: radio/telemetry, motors, power supply drops/noise, etc.
    • Try to revolve propellers, but not to the full power. Monitor tracking. Use embedded into the Dashboard oscilloscope to see the
      signal and the trigger, if needed – checking that noise from propellers doesn’t affect the tracking
    • Try to fly remotely, control the drone, and track. You must see something like this: – if you have it, then you are ready to move to try an autonomous flight
    • Get the 3D lock-in Mission Planned or ArduPilot
    • Try to fly autonomously with one beacon and not yet with the paired beacons
    • Try the Paired Beacons with directions. Return a bit and repeat the same steps with the Paired Beacons as you have done for a single beacon and achieve the perfect tracking and direction on a static and remotely controlled drone before trying the autonomous flight
    • Fly autonomously with the Paired Beacons
    • Repeat the same for each drone separately. Other drones are off completely – kick them out from the network and switch off
    • And only at this stage try to fly more than one drone autonomously

    Virtual UART over USB

    This is the easiest way to connect Marvelmind devices (beacons and modem) since no soldering is required:

    Supported devices:


    It can be connected via the available pins. See Marvelmind Interfaces document

    Supported devices:


    Supported devices:


    Supported only optionally and on request

    Supported devices on request:


    • 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 a master-slave mode

    It is possible to get the UDP stream from:

    Python library for beacon

    The Python library provides the quick and easy ability to integrate ultrasound navigation systems 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 webpage).
    • Here is the Python code for Linux-based devices integration via virtual UART via USB
    • The library is easy to use. Also, here is a detailed description and example

    The code is pretty universal. It is 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.

    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, here is a link to the GitHub repository.

    Android/Java library for beacon

    • Here is the Java code and simple Android application
    • A simple Android app for testing (old by now. Performance not guaranteed)
    • Tested on:
      • Samsung S7 (API 25)
      • Huawei P6 (API 22)
    Marvelmind Android sample code and Java sample code

    PixHawk, PX4, ArduPilot, NMEA0183, and uBlox supported

    ROS2 and ROS supported




    Marvelmind ROS package v1.0.11 compatibility and main changes:

    • Supports receiving telemetry, quality, and waypoints data
    • hedge_rcv_bin allows specifying serial port baud rate in the command line

    Supported ROS versions:

      • Noetic for Ubuntu 20.04
      • Melodic for Ubuntu 18.04
    Additional hints:

    Sending path to your robot/copter

    • Here is an explanation of sending path data via mobile beacon to your robot/copter and sample code.
    • Check a corresponding chapter in the protocol description. The request of writing the movement path
    • Relevant forum discussion

    The Dashboard software log description

    If anything is unclear, contact us via