Downloads
The Operating Manual is your most detailed source of information.
Get a basic understanding of the system architectures.
Study the high-level presentation of Marvelmind RTLS.
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.
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.
Download and install the required STM32 driver.
Optionally, install the DfuSe programmer.
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.
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
- Avoid typical mistakes
- FAQ forum – see already answered questions and ask yours
- Marvelmind YouTube channel – plenty of demo videos and help videos, for example, the Marvelmind Starter Set unpacking video
Contributions by our customers
It is offered as it is without verification by Marvelmind Robotics. Contact the contributors directly in case you needed.
- Tutorial – an alternative Manual/Help/Tutorial by one of our customers (methylDragon) – Thanks! 🙂
- Sensor fusion tutorial and video demo ROS Sensor Fusion with Marvelmind Indoor ‘GPS’ Beacons by methylDragon. It is offered as it is without verification by Marvelmind Robotics, and it is pretty old already, and some information may be outdated. For example, Linux is fully supported as Windows. Mac OS is in better testing and may be already available, too, when you read this. Nevertheless, it is an useful document and maybe helpful to some users. Contact the author directly in case you needed
- Help page on Marvelmind system by CloudMesh
- C# sample code written by Andrej Kičina. It is offered as it is without verification by Marvelmind Robotics. Contact Andrej directly in case you needed
Marvelmind List:
- Marvelmind Robotics List – a list of companies operating in the fields relevant to autonomous robotics and precise indoor positioning
Manual and Applications Notes
Architectures:
- Architectures comparison – basic explanation of Non-Inverse (NIA), Inverse (IA), and Multi-Frequency NIA (MF NIA) architectures
- NIA vs. MF NIA vs. IA – video on how to choose your most suitable architecture
Placement of beacons, submaps, and maps:
- Placement Manual – practical advice and examples of how to mount the Marvelmind Indoor “GPS” system to achieve the best performance
- Basics about submaps, service zones, and handover zones – video intro to building large maps consisting of many submaps
- Building submaps (PDF, Video Part 1, Video Part 2) – detailed practical guidance on building large maps consisting of multiple submaps
- Step-by-step guide on building complex maps – start with a simple 2D NIA with one mobile beacon and increase complexity one step at a time
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
- Precise indoor positioning – planning phase – a basic questionnaire we share with potential customers before the project starts
- Precise indoor positioning – implementation phase – steps we do together with customers from the start till the full implementation
- Typical cost examples from a small PoC project to a larger warehouse
White papers and training:
- Indoor navigation & positioning (PDF) – review and comparison of industrial indoor positioning technologies and methods
- Indoor navigation & positioning (YouTube video) – video based on the PDF above with additional insights
Product photos, 3D models; CAD, STL, STEP files and archieves
- Marvelmind products photos – many photos of different Marvelmind Robotics’ products in high resolution – ZIP archive
- Marvelmind products documentation – Marvelmind products’ dimensions, mounting holes in several formats (PDF, STEP, STL, PNG) – ZIP archive
Logs for integration without the system
If you are in a hurry and want to start integration between our indoor positioning system and your system even before you get our system in your hands, you can do the following:
- Download the logs
- Check the open protocol to know what fields inside the logs are
- Use our ready-to-use code samples to jump-start the integration: Python, C, Android, Arduino, PixHawk. ROS
- See the videos of what each movement was about
The logs were collected for internal development and they are in 2D. But if you integrate them with your system, you will automatically integrate for 3D tracking as well.
Solutions
Use cases
- Autonomous robots and AGVs indoor and outdoor
- Swarm robotics
- Autonomous drones and drone tracking indoor and outdoor
- Precise tracking of drones indoor
- Precise tracking of drones outdoor
- Accurate tracking of micro-drones indoor
- Tracking of vehicles/forklifts indoor and outdoor
- Precise people in warehouses, factories, plants, construction sites
- Accurate people tracking in museums, exhibitions
- Precise tracking of racing boats
- Autonomous boats without GPS
- Indoor positioning system for archaeology
- Docking of ships to the automatic charging station
- Autonomous docking of small boats to the main ship
- Precise tracking of crane hooks
- Precise tracking of the cranes for residential construction site
- Accurate tracking of the bucket of the excavator
- Patients’ rehabilitation after operations
How to:
- A long list of mistakes and how to avoid them
- How indoor positioning systems work
- How to create indoor navigation maps
- How to increase the location update rate and reduce latency?
- How to increase the accuracy of the RTLS
- Does accuracy depend on the location update rate?
- Why tracking in indoor positioning system is unstable
- How to get direction/orientation
- How to build maps larger than 30x30m
- How to make sizeable indoor positioning systems
- How to fly a DJI drone autonomously indoors?
- How to choose ultrasound frequency for beacons
- Line of sight is a must for precise indoor positioning systems
- Eight essential steps from unpacking to autonomous drive/flight
- Radio connectivity – essential hints
- Coordinate systems and absolute vs. relative accuracy
- Power supply options for beacons
- How to integrate with Marvelmind indoor positioning system
Step 4: Install drivers
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.
The DfuSe programmer is required if you decide to upload the SW via DFU. <br><br>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 in some cases, damage the hardware.
- Try different Windows vs. DfuSe combinations
- Try different USB ports.
- Try different computers
- Try clean DfySe installations
- DfuSe v3.0.6: https://marvelmind.com/pics/en.stsw-stm32080_v3.0.6.zip
- DfuSe v3.0.5: https://marvelmind.com/pics/DfuSe_Demo_V3.0.5_Setup.zip
- DfuSe v3.0.4: https://marvelmind.com/pics/stsw-stm32080_3.0.4.zip
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.
“https://community.st.com/s/
Step 5: Install the latest SW and API
This is the latest software (SW release v7.910 (05.Sep.2024)) pack required for any Marvelmind hardware (HW). It contains the SW for all Marvelmind beacons and modems except for the Super-Modem. The pack also includes the API.
From now on, with this SW update, the default settings will be uploaded along with the SW unless you deselect the tick in the Dashboard.
It is done to help our new users who keep not defaulting the settings and thus experiencing difficulties with in the initial setup. Thank you for understanding.
It is enough to deselect the tick in one place only.
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. If anything is missing or you want even a deeper access, let us know. We often produce special customized versions tuned for your specific needs.
Protocols are described in the Marvelmind protocols and interfaces document.
The SW for robots as well as for the Super-Modem is included in their respective separate packs. The are separate because that SW includes the image of the higher-level Linux/Raspbean computer.
Find those packs in the corresponding chapters below.
Watch the unpacking and setting up video for Starter Set Super-MP as an example to have your experience with the Marvelmind system smooth.
Some releases ago, we introduced a system of constant updates. Thus, we don’t wait for major or minor updates. We update the pack as soon as there is an update in the following manner:
- We make a new feature => increase the SW version number => upload the new SW
- We identify a bug => fix the bug => increase the SW version number => upload the new SW
Thus, the best and latest SW is always available on the site without delay. 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.
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.
SW release v7.910 (05.Sep.2024):
- It is a minor SW release that brings new SW features, improvements, and bug fixes
- Supporting compass emulation for PX4 of newer versions. Checked with PX4 v1.14.0
- Compass emulation works now independently from support of uBlox feature that requires an optional license. Compass with NMEA doesn’t require a license
- It is possible to change an address for beacons with duplicated addresses based on their CPU ID. It is particularly useful, when you have many beacons and don’t know where some of them are but can hear them over radio and they ruin your setup. You can change the address of the disturbing one and switch it off, even if you can’t find it physically
- If there is UART set in the paired beacons but there are no physical UART connection, the system checks and warns the user
Improvements:
- If there is UART set in the paired beacons but there are no physical UART connection, the system checks and warns the users
Bug fixes:
- Improved setting of height of stationary beacons in overlapping submaps. Before it was possible to set conflicting heights in different submaps and the submaps became stuck
- Bug with searching of beacons by Modem v5.1-3 is fixed
SW release v7.900 (03.Apr.2024):
- It is a major new SW release that brings many new SW features, improvements, and bug fixes
- New radio profile 200kbps for beacons and modems ending with -2 and -3 in their names. It is a default radio profile now. It allows higher update rate with the same size of submaps. More about location update rate: How to increase the location update rate and reduce latency?. More about radio in general: Radio connectivity – essential hints
- Possibility for mobile beacons (hedges or hedgehogs) to do handovers based on the reduced number of frequencies in IA. It allows increasing location update rate with the same other parameters of the map and submaps
- A new feature “absolute calibration” for better linking with the “real meters” and customer’s real coordinate system as compared with “ultrasound meters”. It is particularly useful for cases when end-user indoor positioning system’s coordinates are tightly linked with other external coordinate systems
- Now, it is possible to enter the angle of the shift of the paired mobile beacons on the robot against the robot’s axis in both IA and NIA. Previously, it was supported only in NIA. It allows to place the mobile beacons as convenient – not only exactly along or exactly across the axes of the robot
- It is now possible to set a shift of the center of the paired beacons against the center of the robot or AGV or forklift. In this way, the indoor positioning system will report the center of the mobile object (robot, forklift, drone, AGV) – not the center of the paired beacon
- Massively new feature in the Realtime Player – forecasting location if forward=0. It allows very low latency and 100Hz update rate for fast objects, for example, go karts. Of course, such a low-latency data is available from the mobile beacon only. To get it on the modem side, it requires a split-modem architecture
- Three types of handovers are supported now: Type I (the mobile beacons stays in the old submap until the end of the handover zone. This is an optimal handover, if there is a high chance that the mobile beacon may change mind and starts moving back. Thus, until it is absolutely required and no possibility to wait any longer, the mobile beacon doesn’t make the handover, thus, theoretically, reducing the total number of handovers, and, as a result, potential location drop during the unsuccessful handover); Type II (the mobile beacon makes the handover as soon as it enters the service zone of a new submap. This handover is good when mobile beacons are moving predictably and forward – rarely or new make sudden changes in the direction); Type III (the default overall the best and optimal handover – “real handover” – because Type I and Type II are kind of semi-hard handovers: they switch from one submap to another by a jump. Jump is always potentially risky because you leave the old service zones and only hopes the new service zone will accept you and the tracking there will be good. It is typically the case because the service and handover zones are built so. But it is not guaranteed and there could be a drop in theory. Type III handover minimizes or even eliminates that because in the handover zone the location is done as a weighted opinion of the new and old service zones. If either of them is making a wrong tracking, only one will be used. Typically, the closer the mobile beacon is to the center of the service zone, the better is tracking. Thus, handover Type III has potentially the highest quality of handovers. Moreover, since the handover Type III show the locations in the handover zones as weighted opinions of the old and new service zones, there are no jumps in during the handover if the submaps aligned imperfectly. The track is always smooth. Of course, it doesn’t mean that the submaps must not be properly aligned but it makes the mistakes less visible and tracking visually smoother in general
- There is a new product – Industrial-RX with Omni – supported in the SW as a separated product – not Industrial-RX with special Omni-Microphone settings. It makes handling the beacon easier
- A new and special mode to show RSSI and power supply right under the beacons. This mode is useful during the deployment or debugging, particularly, larger maps, since it helps to easily detect beacons with problems with antennas or radio coverage or the power supply
- Super-Modem streams in UDP packets/strings of NMEA0183, if this protocol is selected. Before, Marvelmind protocol was streamed out
- There is a new UDP setting in the Dashboard: “Stream the same as from modem” and the Dashboard will stream in UDP the same that the modem streams in USB, UART and records into the log. For example, if NMEA is chosen to be streamed out from the modem, then with this setting ticked, the Dashboard will stream out NMEA via UDP
Improvements:
- Improved support for Multi-Modem Architecture
- Improved handovers in large IA maps consisting of multiple submaps, for example, for large warehouses and forklift tracking
- A new and better trigger for the ultrasound distance measurements
- The maximum base between mobile beacons increased now to 32 meters – based on a case with a very large AGV
- Geofencing zone is now depicted by a triple line – to reduce chances of confusion with service zone lines
Bug fixes:
- Super-Modem with the paired beacons fixed. Before, it returned all kind of strange things
- It is a minor bug-fixing release
Bug fixes:
- USA radio profile in Linux returned a garbage. Fixed
SW release v7.700 (05.Sep.2023):
- It is a major new SW release that brings many new SW features, improvements, and bug fixes
- Multi-Modem Architecture is commercially available and is being implemented on one of our customers (450x450m T-shaped warehouse with 120+ simultaneously running forklifts. Multi-Modem Architecture allows virtually unlimited coverage and capacity at the same time: thousands of mobile beacons (hedges) and hundreds of thousands of square meters of area
- New, improved, and more advanced version of IMU post-processing architecture without needing a Radio Head Remote (RHR). In the new version, the mobile beacon works with the main modem on one radio frequency and offloads the fast IMU data to the IMU modem (RHU) on another radio frequency, thus eliminating the need for the RHR
- The modem can now search and find over the radio the lost beacons over multiple potential radio channels and radio profiles. For example, you changed some radio settings to a beacon and applied the changes, but you lost or forgot those changes. Now, it is easier to find the beacon over the radio. You can always find and change the settings back to default over the USB, of course, but often, the beacons are not physically easily accessible
- The Dashboard can also wake up beacons on the current radio profiles and those from 2-3 years back. As well the automatic waking up of these beacons when the system is turned on for the first time
- A new and simple variant for geofencing zones – just a radius around a mobile beacon. Regular geofencing zones assume drawing a real zone with a shape and coordinates of the corners – similar to serving zones
- Calibration submaps are now supported in 3D also (SW feature MMSW0015). Choosing which of the distances is used for the calibration is possible as well. Previously, it was supported in 2D only with a single distance
- In the embedded oscilloscope, it is possible to choose how many location updates are skipped between the measurements. It helps to debug complex IA or MF NIA cases where multiple ultrasound frequencies with high distance ratio between beacons can affect each other (“overflows”)
- Handover type 3 is now supported in NIA. Type 3 is when the measured coordinate is weighted in the service zone based on the coordinate from Service Zone 1 and Service Zone 2. Handover type 3 is the most smooth type of the handovers
- API can now work via UART as well – not only via USB
- Now, there is an option to set which frequencies in the IA the hedge will be listening to: all available (up to 8 frequencies) or only those that belong to the serving submaps (for example, 2 or 3 frequencies). It increases the update rate because less filtering is required, but it can decrease the stability of the system and increase the hard handover time
- Detailed and deep settings of the ultrasound distance trigger can be configured in a config file
- It is possible to use the Oscilloscope in the constant mode as an ultrasound microphone – not triggered by the time resets. New tick in the Oscilloscope window – the bottom part of the window
- GPGGA packet of NMEA now has the option to send the hedge address along with the coordinates instead of the “differential reference station ID”. Without this, a basic NMEA protocol cannot distinguish coordinates streamed from different mobile beacons
- A new feature allows to warn when the stationary Super-Beacons are not placed on the wall with the USB facing down. The feature allows to identify which direction the transducers TX1-TX5 are facing, thus helping significantly with deploying the maps when required to use non-default settings with only some of the transducers enabled
- A new separate command for a 90-degree turn
- Improved GUI with a large number of waypoints
- Significantly improved the PID performance for even more stable driving
- Fixed the Pause command
Improvements:
- Improved algorithm and quality of the IMU post-processing tracking
- By default, the height of 2D submaps is not 10 meters as it used to be, but it is equal to the height of the stationary beacons (if they are above the floor as assumed in the default settings), and the floor is assumed to be 0 meters. Also, not the thickness of the layer is set, but the bottom level’s height and the top level’s height
- Improved the Realtime Player (RTP). Its settings moved to the right menu. A new option for RTP-2 – when more data is available, it fixes errors done with the RTP-1 – when not enough data was available to choose between different location candidates correctly
- Separate SW for Industrial-RX. Previously, Industrial-RX and Industrial Super-Beacon shared the SW, and it could lead to confusion
- Fixed the log of raw distance data from the modem (some data was missing) and the log of coordinates (some data was duplicated)
- The angle in the Paired Beacons configuration with Ultrasound+IMU angular sensor fusion is fixed. Previously, there could be issues when the angle is close to 90 degrees, or the hedge is turned upside down
New licensed optional feature MMSW0016 for UDP streaming from the Dashboard and the Super-Modem. The license is per modem. So, for example, if you have the Modem v5.1, you get the license, and the Dashboard will do the UDP stream of location data to your fixed IP address anywhere in the world. If you have the Super-Modem, you don’t need the Dashboard. The Super-Modem will do it with the help of the embedded computer
- MMSW0005 is now called the “Advanced SW pack”. Earlier, it was called “SW v7.1xx pack”, but it changed the name because it is also valid for new releases – not only for v7.1xx. To identify beacons or modems with the pack enabled, there is an L at the end of the version, for example, v7.700 vs. v7.700L. If the license is available to all network elements, then the Dashboard’s version changes to v7.700L as well. Otherwise, it remains v7.700, thus indicating that some licenses may be missing
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)
The latest SW pack for robot Boxie. It consists of three parts:
- 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 (master) and right (slave). Left – from the robot’s point of view. For the first time, Marvelmind Boxie SD card SW update is required
- 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
- Marvelmind Boxie API
For more information, check and follow the 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
- See how to update the SW in the Operating Manual
- Start with default settings only => remember to press the Default button in the Dashboard, after updating the SW
- Check the video about Typical user mistakes and avoid them
SW releases archive
Earlier important changes in the naming of SW versions and licenses:
- Advanced SW feature pack 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 the pack of advanced SW features, and the SW version name 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
- 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
- It is a major new SW release that brings many new SW features, improvements, and bug fixes
- Sending user payload from your central system (computer) via the modem via the mobile beacon to your mobile device (robot, drone, etc.) with each location update. Also, sending the user payload from your mobile device (robot, drone, etc.) via the mobile beacon via the modem to your central system (computer)
- “Location update rate boost”: the feature increases the location update rate by 25-100% by freeing time slots that are generally allocated to advanced telemetry, data transfers, commands. Enabled by the optional SW license MMSW0012
- “Virtual pen” – an optional SW feature that allows using a mobile beacon as a virtual pen and drawing/not drawing/wiping in real-time on the virtual screen, for example, a projector. The functionality can be used for presentations, exhibitions, and shows. Enabled by the optional SW license MMSW0013. The future development of the feature will allow using the mobile beacon as a computer mouse
- Now, the default settings, for example, radio profiles, are not stored in the firmware but in separate files that can be edited. This offers great flexibility to meet the certification requirements of different countries and the requirements of specific projects. It is possible to edit the files manually and set your own default settings for nearly any important parameter, for example, radio or ultrasound settings
- Control of the Super-Modem via API over UDP over WiFi instead of USB. Enabled by the optional SW license MMSW0014
- Snap to grid feature when drag and drop stationary beacons on the map
- Set beacon to (0,0,0) feature – choose by the right mouse click on the beacon – in the beacon’s context menu and the map’s context menu
- Specially dedicated buttons to Mirror Submap and Mirror Service Zone
- Option not to stream out location data in the streaming if the data quality is below a set threshold. Also, an option not to show location update dots in the Dashboard, if the quality of the location measurement is below another threshold
- Sending a submap to sleep by double-clicking on the submap’s button – the same way as sending a beacon to sleep
- A new feature that returns the distance from beacon to beacon based on the API request. It is designed for cases when distances are measured – not coordinates. Enabled by the optional SW license MMSW0011: API for manual distance measurement
- Using RS485 instead of radio for data exchange and telemetry between Super-Modem and stationary Industrial Super-Beacons. Enabled by the optional SW license MMSW0010: RS485 instead of radio
- Possibility to turn off streaming of coordinates if only raw distances are required
- A new mode of depicting the track: when the quality of tracking is lower, the dots become larger but less condensed, and the track – fuzzier
- A new filter to improve the quality of tracking in IA based on “hysteresis of quality”
- New hardware variant supported: Mini-TX-2 with a special 6-pin connector for easy UART interface, for example, towards PixHawk, Arduino
- The SW pack includes the SW for Marvelmind UWB
- Special calibration methods and manual adjustments for particularly accurate absolute distance measurements
Improvements:
- Faster modem firmware update
- When a beacon is manually kicked out from the map and then later re-introduced, the system first attempts to place it in the previous coordinates, if possible
- Improved coloration and segmentation of buttons on the left side of the Dashboard map
- The Dashboard warns when the Dashboard version doesn’t match the API version. Particularly important for Linux
- New mode of operation of the Oscilloscope that allows better debugging complex cases with potential ultrasound reflections. Particularly important for debugging map with high update rates – >8Hz
- Improved distance measurement trigger
- M2 mode: aligning two neighboring submaps for handover. Previously: a) one of the “oranges” couldn’t be dragged and dropped, b) when a submap was dragged and dropped, the “oranges” could be mixed up
- Oscilloscope: a) new oscilloscope graph is not shown unless all data on the bottom of the oscilloscope was received and shown correctly; b) when switching between beacons, all data is now erased to make sure that the correct data from the correct beacon is shown
- UART/USB streaming and in the log: the coordinates in the location updates were shifted (delayed) by 1 location update – an incorrect timestamp
- Angle in the NMEA GPHDT string: the angle was not according to the format of the NMEA string
- Waking up of a beacon when attached to the USB: previously, fast (<10 sec) connecting and disconnecting to the USB could be missed, and the beacon would remain in the sleep mode
- Dropping mature Beacons v4.9 and Modem v4.9: previously, they could sporadically lose radio every 20…200 minutes
- Changes: protocol has been updated. Check and use the revised protocol, if you already have integration with your devices
- 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
- 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
- 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
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
- Minor SW release v7.040 (20.Feb.2022):
– Super-Beacons with frequencies are fully available too
It is a major SW release: Marvelmind SW pack v7.000/v7.100.
Super-Modem only: SD-card image and HEX file for Super-Modem
Release notes: https://marvelmind.com/pics/marvelmind_SW_v7.000_v7.100_release_notes.pdf
- Improvement and update SW release: Marvelmind SW pack v6.240a
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
- 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).
Improvements:
- Dashboard
- Realtime Player in NIA mode with low location update rate improved
- Dashboard
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:
- Architectures comparison – basic explanation of Non-Inverse and Inverse architectures, their use cases and differences between them
- https://youtu.be/5DGJeRrO3r4
- MMSW0004: MF NIA support
- 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: https://youtu.be/TWWg_8JHYzo and https://youtu.be/E8i_ZE8JXnc.
- 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 – https://youtu.be/MQDg9TmsDA0 – works well only, when the submap is frozen. If it is not, the behavior of the submap/map can be unstable
- New major SW release: Marvelmind SW pack v6.210 + SD-card image for Super-Modem
- From now on, the Marvelmind SW will consist of two major parts: 1) Marvelmind SW pack that will include the SW for all beacons and modems; 2) Marvelmind SW for the single-board computer inside the Super-Modem (SD-card image for Super-Modem)
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 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
- 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: https://youtu.be/2Rn0On9aEKg – 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:
- Marvelmind Protocol Description – the same virtual UART over USB protocol is used in modems and beacons
- The same for Windows and Linux
Supported devices:
- Super-Beacon (indoor and outdoor)
- Industrial Super-Beacon (plastic and metal)
- Industrial-RX
- Industrial-RX with Omni
- Mini-RX (indoor and outdoor)
- Mini-TX
- Modem v5.1 (indoor and outdoor)
- Super-Modem
SPI
It can be connected via the available pins. See Marvelmind Interfaces document
Supported devices:
- Super-Beacon (indoor and outdoor)
- Modem v5.1 (indoor and outdoor), Modem v4.9
Marvelmind Protocol Description – see the corresponding RS485 chapter.
Supported devices:
- Industrial Super-Beacon (plastic and metal)
- Industrial-RX
- Industrial-RX with Omni
- Super-Modem
Supported only optionally and on request
Marvelmind Protocol Description – see the corresponding CAN chapter
Supported devices on request:
- Industrial Super-Beacon (plastic and metal)
- Industrial-RX
- Industrial-RX with Omni
- Super-Modem
- 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
- Additionally, here is a link to GitHub with UDP example written in C
It is possible to get the UDP stream:
- From the Dashboard when Modem v5.1 or Super-Modem are connected
- Directly from the Super-Modem via UDP over WiFi
Python library
- 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.
The library can be used with beacons and modems.
C library
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.
The library can be used with beacons and modems.
Android/Java library
- A Java code and simple Android application on GitHub
- A simple Android app for testing (local on our website)
- Connection from Marvelmind devices (modems, beacons) to an Android device via USB OTG
- Tested on:
- ZTE Blade V10 Vita, Android 9
Minimal requirements: API level 23 (Android 6).
Arduino
A detailed description of the connection to the Arduino shield:
- Arduino sample code – UART interface
- Arduino sample code – SPI interface
- Arduino sample code – sending path to robot
- Arduino sample code – get distances to beacons
- Arduino sample code – RAW IMU
- Arduino sample code – IMU fusion
PixHawk, PX4, ArduPilot, NMEA0183, and uBlox
- A dedicated Drones page
- Marvelmind + ArduCopter settings – use these verified settings to have a smooth integration (version 2024.Dec.20)
- Follow the step-by-step approach to succeed with the autonomous flight
- Integration with PixHawk on ArduPilot – a step-by-step guide for PixHawk on ArduPilot and Marvelmind integration for drones (outdated in details/versions but valid in steps)
- Integration with PixHawk on PX4 (outdated in details/versions but valid in steps)
- Autonomous copter settings manual – practical recommendations for setting up an Indoor “GPS” system for autonomous copters/drones (outdated in details but valid in approach)
- Basic hints on Holybro X500 drone + PixHawk 6c + PX4 + Marvelmind integration
ROS2 and ROS:
ROS2:
- marvelmind_ros2 and marvelmind_ros2_msgs are already included in the ROS2 distributive. It is also possible to install them manually
- https://github.com/MarvelmindRobotics/marvelmind_ros2_upstream
- https://github.com/MarvelmindRobotics/marvelmind_ros2_msgs_upstream
- Marvelmind ROS2 installation guide
ROS:
- Marvelmind ROS package – GitHub link
- Instructions on ROS integration
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
- By default, UART is not accessible. Use command: sudo chmod 0777 /dev/ttyAMA0 to enable it
- Or a more elegant way: Set permissions for the serial port by this instruction: http://raspberrypi.stackexchange.com/questions/48211/set-permission-for-dev-ttyama0-on-boot
- Set correct UART speed on mobile beacon: Dashboard => Interfaces shall be set to the same speed as hedge_rcv_bin in ROS
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 log description
- Marvelmind Protocol Description – see the corresponding chapter about the log description