Downloads

1) Check Operating Manual for starting up with the system

  1. It is strongly recommended to use only the latest available SW. If not the latest, the SW compatibility between modem, beacon, and Dashboard SW is not guaranteed. To update the SW on your devices:
    • Please, always use SW from the same pack: Dashboard SW + modem SW + beacon SW. Don’t mix SW from different SW packages
    • Download the SW (see the links below: “Latest stable SW to download”) to your hard drive
    • Connect beacon or modem via USB to your computer. Make sure that only one device (either modem or beacon) is connected via USB, while programming!
    • Run the Dashboard => Firmware => Choose the file => Program
    • After programming, which takes a few seconds, press the HW reset button on modem/beacon
    • To be on safe side, please, push the Default button in the Dashboard (bottom-right corner) while the device is still USB connected
    • Write down the beacon’s address, because it will be used for waking up the beacon. Or you can change the beacon’s address for your convenience, like shown here
    • Double-check in the Dashboard that (1) the modem/beacons contains now the expected version of the SW and (2) radio profiles of beacons and modems are the same
    • It is possible to update beacons’ SW over radio interface from the Dashboard. It works pretty much the same way as via USB, but slower and depends on your radio profile settings
  2. Some new SW versions bring very substantial changes to the internal protocols and become incompatible with previous SW version. Thus, always keep the same SW versions on all beacons. Also use only compatible versions of the modem and the Dashboard SW, since they come in a package (beacon SW + modem SW + Dashboard SW) and all shall support the same protocols.Follow the instructions for DFU SW programming: http://www.marvelmind.com/forum/viewtopic.php?f=2&t=294, if DFU programming is needed. In normal mode, you would upload HEX files – not DFU files – to the boards and takes a few seconds per board (via USB) or 0.5-2 min per board via radio
  3. Double-check that the beacon’s address is the same after SW updating and radio settings of modem and beacons match (radio profile, first of all). Major changes in SW versions may lead to the device’s address to be overwritten. If happened, use the Dashboard to assign the required address to the beacon again.

2) Install STM driver

stm32_vcp.zip – required to connect beacons/modems to the Dashboard via USB. It needs to be installed only once on your Windows PC.

3) Download and install the latest stable SW

Updated on 15.Nov.2017

What is new:

  • New: Now the SW for beacons and modem supports 2 main bands (915MHz and 433MHz) and 2 additional bands (868 MHz and 315 MHz) in a single file, i.e. you don’t have to select a separate file per frequency from the SW pack. Though, you still have to choose between SW for modem vs. SW for beacon and you have choose your HW (beacon v4.9 (5 sensors) vs. beacon v4.5 (4 sensors)). Note, that 315MHz additional band is recommended to be used with 433MHz HW boards and 868MHz – with 915MHz HW boards, because they are closer in frequencies. Remember, that the HW is not tuned for the additional bands and radio range can be severely reduced, as compared to the range in the regular main bands the boards are actually designed for. However, still, you may use additional band now, if you wish to do so, for example, to minimize interference with your onboard telemetry or because your country’s regulations don’t allow either 433MHz or 915MHz systems
  • New: Raw distance data streaming supported now
  • New: beacons streams out location data and clearly marks now whether it is its location or another beacon
  • New: flag introduced “Accept new/woken devices”. It is possible now to forbid the modem to automatically take into the map accidentally woken up beacons. Previously, if the beacon woke up for any reason, it would stay active, because it would respond to the modem’s signal and thus the beacon’s battery could be depleted for no purpose
  • New: a watchdog timer introduced in beacons to improve stability. As a drawback, the deep sleep mode that was previously recommended for shelving the product with absolute minimal current consumption is not supported anymore. For shelving, it is recommended to put both DIP switches in OFF position
  • New: mobile beacon protocols are updated (raw distance data added; flag of source of location data). Check them out
  • Improvement: more robust building of bigger maps made of frozen submaps
  • Bug fix: distances in the table of distance could be changing in some settings even, if the map was frozen
  • Bug fix: corrected loading of saved maps with submaps from a file
  • Bug fix: mirroring of a full frozen map consisting of submaps works now properly
  • Bug fix: uploading firmware over radio to a beacon in the frozen map
  • General bug fixes

 

Updated on 29.Oct.2017

What is new:

  • Improved: Power saving features are significantly improved. Note, that power saving is off by default and shall be enabled in modem settings: “Power save functions”
  • General bug fixes

Updated on 28.Sep.2017

What is new:

  • New feature: Two mobile beacons (‘hedgehogs”) can be paired and work together as a single beacon without update rate reduction. Moreover, each beacon streams out in this mode not only its own location, but direction where the pair is facing. This feature hugely simplifies autonomous driving and flight. Here is updated protocol with the changes
  • New feature: Save Map/Load Map feature and buttons are active now. You can build a very complex map with submaps and save all settings for the map, submaps, and all beacons including their ultrasonic gain, triggers, etc.
  • New feature: streaming user payload from mobile beacon to modem. See the table with speed vs. payload
  • New Arduino sample file: sending user payload from mobile beacon to modem
  • Improved: Until beacons are really awake, they are not shown as alive in the Dashboard anymore. Previously, they could be shown as green and alive before disappearing on timeout after a minute or so and that could confuse
  • General bug fixes

Updated on 13.Aug.2017

What is new:

    • New feature: path sending to copters
    • New feature: now each hedgehog streams out coordinates of all other hedgehogs – not only its own coordinates, i.e. now all robots/copters may know location of all other robots/copters
    • New feature: support of extended memory for Modem_256 (modem supporting up to 256 beacons. Current modem HW v4.9 supports up to 30 beacons)
    • New feature: extended update rate options to 0.1Hz and 0.2Hz
    • Improved service zones with 8 points
    • Improved sleep modes
  • Bug fix in modem: modem, sometimes, was not recognized by PC after PC reboot
  • Bug fix in sabmaps: after one of the beacons in submap of 3 beacons lost, system remained in 3D mode with insufficient number of beacons. Now it turns to 2D mode automatically
  • Bug fix of submaps with 2 beacons: they might lose tracking of hedge after modem reboot
  • Bug fix in embedded oscilloscope for distances between beacons >30m
  • Bug fix: occasionally, beacons sent previous location measurement, when no ultrasonic signal received. Now send a flag, that no signal received
  • Bug fix: improved operations with IMU

 

Updated on 05.Jun.2017

What is new:

  • Please, make sure that you are using right SW version for your HW – v4.5 vs. v4.9
  • Improved radio synchronization in challenging conditions
  • Increased channel spacing for 915MHz band
  • Improved oscilloscope scaling
  • Significantly improved trigger mode
  • Quality of ultrasonic signal assessment enchanced
  • Repetitive waking up of sleeping beacons
  • Timed out beacons are not removed from the map now, but marked as unused
  • As a customized feature, it is possible to have now 2 additional external buttons connected to 4×4 pins. They perform now 2 actions: (1) manual log of coordinates, (2) remote clearing the map of traces. Customized functionality may be assigned to those 2 external buttons
  • Improved waking up command
  • Improved performance for complex maps with multiple submaps
  • Multiple and various bug-fixing and error corrections

 

Updated on 27.Mar.2017

What is new:

  • Please, make sure that you are using right SW version for your HW – v4.5 vs. v4.9
  • Full support of HW v4.9 – both 433MHz and 915MHz boards
  • Major change in ultrasonic signal triggering mode and AGC – completely new technique is employed now. It shall bring better results in noisy environment as well as when the ultrasonic signal is either too strong or too weak
  • Improved scanning of radio frequencies for better searching of beacons
  • Increased precision of geo-referencing from ~11cm to ~1.1cm
  • Added a new mode of raw data streaming from the modem’s UART – real-time raw distances and RSSI data
  • Usual bug-fixing and error corrections

 

Updated on 16.Feb.2017

What is new:

  • It is possible now to build a fully functional map/submap for 3D navigation using only 3 stationary beacons. Before, one would need at least 4 stationary beacons per map/submap for 3D navigation or 2 stationary beacons for 2D navigation
  • It is possible now to enter values in the table of distance between stationary beacons manually. Before it was fully automatic only
  • It is possible now to remove restriction on the minimal distance between stationary beacons or stationary beacons and mobile beacons. Before it was 0.35m at minimum. Now, it can be set to 0mm. As before, the distance between beacons is not limited anyhow. So, mobile beacons can as close to each other as one wishes
  • Enriched features of embedded oscilloscope designed for making possible a deeper analysis of implications of higher location update rate settings on the system performance
  • C and Python and UDP sample codes support now mm-output format, i.e. fully compatible with the main SW pack. To switch back to cm-resolution format
  • Usual bug-fixing and error corrections

 

Updated on 12.Jan.2017

What is new:

  • Fixed bug that affected on proper writing of settings into the beacon in some circumstances
  • Faster beacon wake up time
  • Ultrasonic gain self-calibration introduced in beacons: Dashboard > View
  • Optimized displaying of beacon’s parameters, while beacon wakes up
  • Notice that C and Python and UDP sample codes are written for cm-output – not mm-output, i.e. not directly compatible. You can turn on compatibility mode to switch back to cm-resolution format

 

Updated on 20.Dec.2016

What is new:

  • Fixed bug with SPI of mobile beacon
  • Significantly improved resolution of embedded oscilloscope
  • Now the Dashboard has an install file
  • Distances and coordinates are given now in millimeters
  • Notice that C and Python and UDP sample codes are written for cm-output – not mm-output, i.e. not directly compatible. You can turn on compatibility mode to switch back to cm-resolution format

 

Updated on 11.Dec.2016

What is new:

  • Distances and coordinates are given now in millimeters
  • Key protocols are updated. Please, see them inside the SW package archive
  • Notice that C and Python and UDP sample codes are written for cm-output – not mm-output, i.e. not directly compatible. You can turn on compatibility mode to switch back to cm-resolution format

 

Updated on 08.Dec.2016

What is new:

  • Some beacon addresses bug fix
  • Modem streaming bug fix

 

Updated on 26.Nov.2016

What is new:

  • Interface with modem is done now in exactly the same format as with the beacon (UART/virtual UART, SPI)
  • NMEA support fixed: mm vs. cm output
  • Other various bug fixes

 

Updated on 10.Nov.2016

What is new:

  • Tested support of at least 30 beacons per modem (29 stationary beacons + 1 mobile beacon or 26 mobile beacons + 4 stationary beacons or anything in the middle)
  • Various bug fixes, particularly, in submaps

 

Updated on 29.Oct.2016

What is new:

  • UDP location streaming from modem is supported now. Previously, location data had to be requested each time – point by point
  • Bug fix in multimaps

 

Updated on 25.Oct.2016

What is new:

  • Minor update

 

Updated on 13.Oct.2016

Important! The SW introduced rather major changes, so some settings are affected too. After programming do the following:

  • While a beacon/modem is USB connected, press “Default” button (botton-right corner) to upload default settings to the beacon
  • Check radio profile settings on the beacon and on the modem. Choose the same. Otherwise, the modem won’t see beacons over the radio interface

What is new:

  • Some bug fixes and improvements

 

Updated on 12.Sep.2016

Important! The SW introduced rather major changes, so some settings are affected too. After programming do the following:

  • While a beacon/modem is USB connected, press “Default” button (botton-right corner) to upload default settings to the beacon
  • Check radio profile settings on the beacon and on the modem. Choose the same. Otherwise, the modem won’t see beacons over the radio interface

What is new:

  • A bug in oscilloscope timing was fixed
  • Modifified protocolNow timestamp is milliseconds instead of alpha-cycles => our Python and C examples are not yet corrected accordingly
  • Addresses in devices will be now preserved even with major SW changes
  • It is now possible to disable additional location filtering in hedgehog by turning it off in the Dashboard. It is especially useful for small update rates of 0.5-2Hz
  • Improved timing with sending location data at update rates of 16Hz and below
  • Other minor bug fixes and improvements

 

Updated on 01.Sep.2016

What is new:

  • Major new feature: NMEA support
    • Here is the NMEA protocol implementation description
  • Advanced energy saving features
    • Tested running time by beacon with 16Hz update rate and fully-charged embedded 1000mAh battery is up to 72h
    • Expected/calculated running time by beacon with 1Hz update is nearly 16 times longer => 48 days
    • External 10,000mAh power bank & 1Hz update rate on beacon shall give >1y running time from the same battery
  • Accellerated embedded oscilloscope
  • Optimized map creation for complex multi-beacon multi-submap maps with scanning ultrasonic sensor pairs feature
  • Other bug fixes and improvements

 

Updated on 23.July.2016

Important! The SW introduced rather major changes, so some settings are affected too. After programming do the following:

  • Connect each beacon via USB cable and assign addresses from the Dashboard again (2, 3, 4, etc.), since the SW resets addresses to all beacons to 1
  • While a beacon is USB connected, press “Default” button (botton-right corner) to upload default settings to the beacon
  • Check radio profile settings on the beacon and on the modem. Choose the same. Otherwise, the modem won’t see beacons over the radio interface

What is new:

  • Major new feature: Submaps
    • You can create several independent submaps, for example, for separate rooms with 2-6 beacons in each submap or even a few submaps in one big hall and merge them into a single solid map
  • Major new feature: Dashboard => Substrate
    • You can upload your real floor layout in .png or .tiff or .jpg or .bmp format on the map with beacons and put beacons in the right position on the layout
  • Other multiple bug fixes and improvements
  • If updating from SW v4.62 and fresher, just follow basic SW routing update: Run the Dashboard => Advanced view => Firmware => Choose the file => Program

 

Updated on 17.May.2016

What is new:

  • Bug fix: when powered by external power supply, the beacons didn’t wake up
  • Bug fix: data on heights of beacons were lost at some point of time
  • Other smaller bug fixes and improvements
  • If updating from SW v4.62 and fresher, just follow basic SW routing update: Run the Dashboard => Advanced view => Firmware => Choose the file => Program

 

Updated on 10.Mar.2016

What is new:

The key new features:

  • Support for Indoor “GPS” mini – system with two stationary beacons
  • Support of Z-coordinate in UDP protocol with the Dashboard
  • Various pther improvements and bug fixings

 

Updated on 02.Feb.2016

What is new:

Several major improvements:

  • Support for external flash memory for additional capacity in modem
  • Support for the 5th ultrasonic sensor providing even wider coverage in ultrasonic
  • Multiple other new features

 

Updated on 17.Nov.2015

What is new:

  • Various bug fixing
  • Further usability improvements

 

Updated on 02.Oct.2015

What is new:

  • Advanced power saving modes
  • Various bug fixing
  • General usability improvements

Important! Some earlier HW versions do not support all power saving modes. Use “Analog power in sleep” enabled first. It will increase power consumption by 5-8mA in active mode. If you happen to have a newer HW version, disable analog power in sleep. If system continues working normally – use it. It saves battery.

Default mode – “disabled”, i.e. if your HW does not support it, the system won’t work stable.

Updated on 20.Aug.2015

Important! Please, use addresses for beacons in the range of 2..63. There were reports that addresses 64..99 don’t always work well with SW v3.73. This bug has been fixed in the later versions.

INTERFACES

Mobile beacon (“hedge”) interfacing protocol to robots

  1. Via virtual UART via USB: Supported interfaces

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

  2. Via SPI:

    SPI & UART interface pins on beacon board.

  3. Python library for beacon:

    • Here is the Python code for Linux-based devices integration via virtual UART via USB
    • Library is easy to use. Also, here is detailed description and example
    • Code is fairly universal; Tested on:
      • Ubuntu 16.04
      • Raspbian Jessie
      • Mac (OS X 10.10)
      • Python v2.7
    • CRC calculation is done in “pythonic way”, i.e. library crcmod is used
    • There are handlers of different exceptions, for example, non-standard states of COM/USB

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

  4. C library for beacon:

    • Here is the C code + guiding document
    • Supported operating systems:
      • Microsoft Windows
      • GNU/Linux (including Raspberry Pi)
      • Mac OS X
    • Additionally, link to Bitbacket repository
  5. Android/Java library for beacon:

    • Here is the C code and simple Android application
    • Tested on:
      • Samsung S7 (API 25)
      • Huawei P6 (API 22)
  6. Connection of Marvelmind hedgehog to Arduino via UART and SPI:

  7. ROS support on Raspberry 2 and Raspberry 3:

    Marvelmind ROS package – bitbucket link.

    Marvelmind ROS package v1.0.6 compatibility and main changes:

    • Supports both millimeters and cantimeters (obsolete) formats of data
    • Supports hedgehog address in data stream. Can receive positions of multiple hedgehogs from modem
    • Supports receiving positions of stationary beacons
    • Supported ROS versions:
      • Kinetic for Ubuntu 16.04
      • Indigo for Ubuntu 14.04
      • Hydro for Ubuntu 12.04

    Please, check the instructions on ROS integration.

    ROS repository status.

  8. Pixhawk support and NMEA interface description:

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

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

Modem and dashboard interfaces

It is possibly to get location data not only from the mobile beacon, but directly from the modem or the Dashboard:

  1. Protocol of data exchange with modem via USB interface: link
  2. The Dashboard software log description: forum link or direct link to the image. First column appeared later, and it is discussed in this topic. It is an additional absolute column – a timestamp – time in milliseconds passed from january,1 of 1970 (UNIX time) – Dashboard SW permanently writes coordinates into log file ‘hedgehogs.log’ that is stored into the Dashboard folder
  3. Protocol of data exchange with Dashboard via UDP: link
  4. UDP SW example:
    • Here is the C-written UDP example
    • Supported operating systems:
      • Microsoft Windows
      • GNU/Linux
    • Supported streaming as well as master-slave mode
  5. Marvelmind modem C library and sample code: