Protocols via USB (virtual UART)

This chapter as a clean, readable HTML page.

The “Protocols via USB (virtual UART)” chapter of the Interfaces and Protocols, reproduced as a real HTML page. Anything unclear? Open the original PDF of just this chapter (pages 56-85) (also pinned top-left). Hub: all chapters.

‘Marvelmind’ protocol for streaming

All packets described in corresponding section for UART are also available via USB (virtual UART).

Note these data are also available for mini-TX and for mini-RX without ‘UART Cable for Mini-Rx’.

Streaming is terminated for 5 seconds if Marvelmind device receives any request according to this protocol.

Protocol of reading/writing data from/to user device

All packets described in corresponding section for UART are also available via USB (virtual UART).

Note these data are also available for mini-TX and for mini-RX without ‘UART Cable for Mini-Rx’.

NMEA0183 communication protocol

All packets described in corresponding section for UART are also available via USB (virtual UART).

Note these data are also available for mini-TX and for mini-RX without ‘UART Cable for Mini-Rx’.

Streaming is terminated for 5 seconds if Marvelmind device receives any request according to this protocol.

Protocol of data exchange with modem via USB interface

This protocol is used by Dashboard software and Marvelmind API described in next chapter.

Modem connects to USB-host as USB device of CDC class (virtual COM port in Windows, ttyUSB or ttyACM in Linux).

Because real RS-232 is not used in this interface, parameters of serial port set on the host (baudrate, number of bits, parity, etc.) may be any

Data is in binary format

«Network address» of device connected via USB is 0xff

Multibyte numbers are transmitted starting from low byte (little endian format)

Reading the latest coordinates pack (firmware V5.13+)

Supported hardware:

Super-Beacon: not supported

Industrial Super-Beacon: not supported

Modem HW5.1: supported

Super-Modem: supported

Mini-RX (Badge, Helmet, etc.): not supported

Mini-TX: not supported

Mini-TX-2: not supported

Modem HW4.9: supported

Beacon HW4.9: not supported

Beacon HW4.5: not supported

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x03

2

2

uint16_t

Code of data in packet

0x4110

4

2

uint16_t

Access mode

0x0000

6

2

uint16_t

CRC-16 (see appendix 1)

0xc004

Format of answer frame (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x03

2

1

uint8_t

Number of bytes of data transmitting

0x64

3

100 (0x64)

100 bytes

Data structure (see lower)

103

2

uint16_t

CRC-16 (see appendix 1)

Format of error reply is described in Appendix 2.

Format of data field (100 bytes)

Offset

Size (bytes)

Description

0

96 (6*16)

Six last coordinates structures received by modem (see lower)

96

1

Byte of flags:

Bit 0…1: reserved

Bit 2: 1 = user data available (see section 12)

Bit 3…7: reserved

97

3

Reserved

Format of coordinates structure (16 bytes)

Offset

Size (bytes)

Description

0

1

Address of device

1

4

Coordinate X, mm (int32_t)

5

4

Coordinate Y, mm (int32_t)

9

4

Coordinate Z, mm (int32_t)

13

1

Byte of flags:

Bit 0: 1 – no relevant coordinates (red mode in dashboard)

Bit 1: 1 – temporary mobile beacon on frozen map (blue mode)

Bit 2: 1 – beacon is used for hedgehog positioning

14

2

Reserved (0)

Reading/writing modem configuration Reading modem configuration (firmware V5.30+)

Supported hardware:

Super-Beacon: not supported

Industrial Super-Beacon: not supported

Modem HW5.1: supported

Super-Modem: supported

Mini-RX (Badge, Helmet, etc.): not supported

Mini-TX: not supported

Mini-TX-2: not supported

Modem HW4.9: supported

Beacon HW4.9: not supported

Beacon HW4.5: not supported

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x03

2

2

uint16_t

Code of data in packet

0x5000

4

2

uint16_t

Access mode

0x0000

6

2

uint16_t

CRC-16 (see appendix 1)

0x0550

Format of answer frame (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x03

2

1

uint8_t

Number of bytes of data transmission

0x30

3

0x30

structure

Data structure (see below)

0x33

2

uint16_t

CRC-16 (see appendix 1)

Format of error reply is described in Appendix 2.

Writing modem configuration

Warning! To write modem configuration you must read configuration, setup the data fields described in following section, and then write it. Do not change any other bytes in structure, this may degrade the work of modem

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x10

2

2

uint16_t

Code of data in packet

0x5000

4

2

uint16_t

Access mode

0x0000

6

1

uint8_t

Number of bytes of data transmission

0x30

7

0x30

structure

Data structure (see below)

0x37

2

uint16_t

CRC-16 (see appendix 1)

Format of answer frame (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x10

2

2

uint16_t

Code of data

0x5000

4

2

uint16_t

reserved

6

2

uint16_t

CRC-16 (see appendix 1)

Format of error reply is described in Appendix 2.

Structure of modem configuration data

Many fields of data structure are not explained. Do not change the fields! They are used for adjustment system from the Dashboard program; unauthorized changing may degrade the work of modem

Offset

Size (bytes)

Type

Description

0

20

20 bytes

Not explained

20

1

int8_t

Temperature of air setting Vt (signed).

Temperature is (Vt+23) °С

21

1

uint8_t

Address of the beacon that should have map coordinates X=0, Y=0

22

4

4 bytes

Not explained

26

1

uint8_t

Address of the beacon that should have map coordinates X>0,Y=0

27

1

uint8_t

Address of the beacon that should have map coordinates with Y>0

28

1

uint8_t

Control flags:

Bit 0: not explained

Bit 1: 1 – enabled filtering of mobile beacons movement

Bit 2: not explained

Bit 3: 1 – high resolution mode (output coordinates in mm instead cm)

Bit 4: not explained

Bit 5: 1 = mirroring of all map

Bit 6: 1= power save mode (power save works only when all of the submaps are frozen)

Bit 7: not explained

29

2

2 bytes

Not explained

31

1

uint8_t

N, determines maximum frequency of retrieving hedgehog coordinates

F(N)= 2^(N-1) Hz, N= 0…4,

F(5)= 12 Hz, F(6)= 16 Hz, F(7)= 16+ (maximum)

32

16

16 bytes

Not explained

Reading/writing submap configuration

Supported hardware:

Super-Beacon: not supported

Industrial Super-Beacon: not supported

Modem HW5.1: supported

Super-Modem: supported

Mini-RX (Badge, Helmet, etc.): not supported

Mini-TX: not supported

Mini-TX-2: not supported

Modem HW4.9: supported

Beacon HW4.9: not supported

Beacon HW4.5: not supported

Reading submap configuration (firmware V5.30+)

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x03

2

2

uint16_t

Code of data in packet

0x60XX where XX is number of submap

4

2

uint16_t

Access mode

0x0000

6

2

uint16_t

CRC-16 (see appendix 1)

Format of answer frame (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x03

2

1

uint8_t

Number of bytes of data transmission

0x50 (80)

3

80

structure

Data structure (see below)

83

2

uint16_t

CRC-16 (see appendix 1)

Format of error reply is described in Appendix 2.

Writing submap configuration (firmware V5.30+)

Warning! To write submap configuration you must read configuration, setup the data fields described in following section, and then write it. Do not change any other bytes in structure, this may degrade the work of modem

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x10

2

2

uint16_t

Code of data in packet

0x60XX where XX is number of submap

4

2

uint16_t

Access mode

0x0000

6

1

uint8_t

Number of bytes of data transmission

0x50 (80)

7

80

structure

Data structure (see below)

87

2

uint16_t

CRC-16 (see appendix 1)

Format of answer frame (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x10

2

2

uint16_t

Code of data

0x5000

4

2

uint16_t

reserved

6

2

uint16_t

CRC-16 (see appendix 1)

Format of error reply is described in Appendix 2.

Structure of submap configuration data

Many fields of data structure are not explained. Do not change the fields! They are used for adjustment system from the Dashboard program; unauthorized changing may degrade the work of modem

Offset

Size (bytes)

Type

Description

0

1

uint8_t

Address of starting beacon for building submap

1

1

uint8_t

Control word:

Bit 0: 1 – submap is frozen (freeze submap)

Bit 1: 1 – beacons are higher than hedgehogs

Bit 2…4: not explained

Bit 5: 1 – mirroring submap

Bit 6…7: not explained

2

1

uint8_t

Limitation of distances:

Bit 0…6: manual limitation distances (if bit 7 = 1)

Bit 7: 0 – automatic limitation, 1 = manual

3

13

13 bytes

Not explained

16

2

int16_t

X shift of submap, cm

18

2

int16_t

Y shift of submap, cm

20

2

uint16_t

Rotation of submap, centidegrees

22

58

58 bytes

Not explained

Sleeping/waking up devices

Supported hardware:

Super-Beacon: not supported

Industrial Super-Beacon: not supported

Modem HW5.1: supported

Super-Modem: supported

Mini-RX (Badge, Helmet, etc.): not supported

Mini-TX: not supported

Mini-TX-2: not supported

Modem HW4.9: supported

Beacon HW4.9: not supported

Beacon HW4.5: not supported

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of device

0x01…0xfe

1

1

uint8_t

Type of packet

0x10

2

2

uint16_t

Code of data in packet

0xb006

4

2

uint16_t

Access mode

For wake: 0x0002

Others: 0x0001

6

1

uint8_t

Number of bytes of data transmission

0x08

7

1

uint8_t

Password, byte 0

0x2d

8

1

uint8_t

Password, byte 1

0x94

9

1

uint8_t

Password, byte 2

0x5e

10

1

uint8_t

Password, byte 3

0x81

11

1

uint8_t

Command:

0 – standard sleep

1 – deep sleep (wake only on HW reset)

2 – wake up from standard sleep

3…255 – reserved

0…2

12

3

3 bytes

reserved

15

2

uint16_t

CRC-16 (see appendix 1)

Format of answer frame for waking command (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of device

0x01…0xfe

1

1

uint8_t

Type of packet

0x10

2

2

uint16_t

Code of data

0xb006

4

2

uint16_t

reserved

6

2

uint16_t

CRC-16 (see appendix)

Format of answer frame for sleeping commands (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of device

0x01…0xfe

1

1

uint8_t

Type of packet (modem reply)

0x7f

2

2

uint16_t

Code of data

0xb006

4

2

uint16_t

reserved

6

2

uint16_t

CRC-16 of bytes 0…5 (see appendix 1)

8

1

uint8_t

Address of device

0x01…0xfe

9

1

uint8_t

Type of packet

0x10

10

2

uint16_t

Code of data

0xb006

12

2

uint16_t

reserved

14

2

uint16_t

CRC-16 for bytes 8…13(see appendix)

Format of error reply is described in Appendix 2.

Setting address of device

Supported hardware:

Super-Beacon: not supported

Industrial Super-Beacon: not supported

Modem HW5.1: supported

Super-Modem: supported

Mini-RX (Badge, Helmet, etc.): not supported

Mini-TX: not supported

Mini-TX-2: not supported

Modem HW4.9: supported

Beacon HW4.9: not supported

Beacon HW4.5: not supported

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of device

0x01…0xfe

1

1

uint8_t

Type of packet

0x10

2

2

uint16_t

Code of data in packet

0x0101

4

2

uint16_t

Access mode

0x0000

6

1

uint8_t

Number of bytes of data transmission

0x02

7

1

uint8_t

Code of data item (address)

0x00

8

1

uint8_t

New address of device

9

2

uint16_t

CRC-16 (see appendix 1)

Reading measured raw distances

Supported hardware:

Super-Beacon: not supported

Industrial Super-Beacon: not supported

Modem HW5.1: supported

Super-Modem: supported

Mini-RX (Badge, Helmet, etc.): not supported

Mini-TX: not supported

Mini-TX-2: not supported

Modem HW4.9: supported

Beacon HW4.9: not supported

Beacon HW4.5: not supported

This command is accessible in two modes:

  • With code of data 0x4000 – reading last eight distances. Answer frame contains last 8 measured distances from the moment of request
  • With code of data 0x4001 – reading all distances frame by frame. Answer frame for every next request contains next 8 saved measured distances. When all table of distances is transmitted, it starts from the beginning

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x03

2

2

uint16_t

Code of data in packet

0x4000 or

0x4001

4

2

uint16_t

Access mode

0x0000

6

2

uint16_t

CRC-16 (see appendix 1)

Format of answer frame (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x03

2

1

uint8_t

Number of bytes of data transmitting

0x28

3

40 (0x28)

40 bytes

Data structure (see lower)

43

2

uint16_t

CRC-16 (see appendix 1)

Format of error reply is described in Appendix 2.

Format of data field (40 bytes)

Offset

Size (bytes)

Description

0

32 (8*4)

Eight raw distances structures (see lower)

32

8

Reserved

Format of distance structure (4 bytes)

Offset

Size (bytes)

Description

0

1

Address of ultrasonic receiver

1

1

Address of ultrasonic transmitter

2

2

Measured distance between devices, mm (uint16_t)

Reading beacons’ state (firmware V5.33+)

Supported hardware:

Super-Beacon: not supported

Industrial Super-Beacon: not supported

Modem HW5.1: supported

Super-Modem: supported

Mini-RX (Badge, Helmet, etc.): not supported

Mini-TX: not supported

Mini-TX-2: not supported

Modem HW4.9: supported

Beacon HW4.9: not supported

Beacon HW4.5: not supported

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of device

0x01…0xfe

1

1

uint8_t

Type of packet

0x03

2

2

uint16_t

Code of data in packet

0x0003

4

2

uint16_t

Access mode

0x0002

6

2

uint16_t

CRC-16 (see appendix 1)

Format of answer frame (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of device

0x01…0xfe

1

1

uint8_t

Type of packet

0x03

2

1

uint8_t

Number of bytes of data transmission

0x20

3

32

32 bytes

Data structure (see lower)

35

2

uint16_t

CRC-16 (see appendix 1)

Format of error reply is described in Appendix 2.

Format of data field:

Offset

Size (bytes)

Type

Description

0

4

uint32_t

Time of work from reset or wake-up (seconds)

4

1

uint8_t

R, radio RSSI register value (received signal strength indicator).

If R>128, RSSI (dBm) = ( (R-256)/2) – 74

If R<=128) RSSI (dBm) = (R/2) – 74

5

1

uint8_t

Not explained

6

1

int8_t

Measured temperature Vt (signed). Temperature is (Vt+23) °С

7

2

uint16_t

Bit 0…11: power supply voltage, mV

Bit 12…13: not explained

Bit 14: 1: low power, device will enter sleep after short time

Bit 15: 1: very low power, device will enter deep sleep after short time

9

23

23 bytes

Not explained

Marvelmind robots control commands

Supported hardware:

Super-Beacon: not supported

Industrial Super-Beacon: not supported

Modem HW5.1: supported

Super-Modem: supported

Mini-RX (Badge, Helmet, etc.): not supported

Mini-TX: not supported

Mini-TX-2: not supported

Modem HW4.9: supported

Beacon HW4.9: not supported

Beacon HW4.5: not supported

Robot control command

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of robot

0x01…0xfe

1

1

uint8_t

Type of packet

0x10

2

2

uint16_t

Code of data in packet

0x1000

4

2

uint16_t

Access mode

0x0001

6

1

uint8_t

Number of bytes of data transmission

0x10

7

16 (0x10) bytes

uint8_t

Robot control data (see lower)

23

2

uint16_t

CRC-16 (see appendix 1)

Format of answer frame (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet (modem reply)

0x7f

2

2

uint16_t

Code of data

0x1000

4

2

uint16_t

reserved

6

2

uint16_t

CRC-16 of bytes 0…5(see appendix 1)

8

1

uint8_t

Address of robot

0x01…0xfe

9

1

uint8_t

Type of packet (robot reply)

0x10

10

2

uint16_t

Code of data

0x1000

12

2

uint16_t

reserved

14

2

uint16_t

CRC-16 of bytes 8…13(see appendix 1)

Format of error reply is described in Appendix 2.

Format of robot control data:

Offset

Size (bytes)

Type

Description

0

1

uint8_t

Mode of control:

0 – no control (wait mode)

1 – motors power control

2 – speed control

3 – writing movement program

4 – pause movement program

5 – continue movement after pause

1

1

uint8_t

Code of operation:

0 – move forward

1 – move backward

2 – rotate clockwise

3 – rotate counterclockwise

4 – pause for given time (for mode 3)

5 – repeat movement program from start (for mode 3)

6 – move to given point by coordinates (for mode 3)

7 – setup movement speed (for mode 3)

2

1

uint8_t

Control byte 1:

For mode 1: power on motors, %

For mode 2: speed of movement, %

For mode 3: number of the program step (starting from zero)

3

2

Int16_t

Data for program (mode 3):

Code of operation 0 or 1: distance of movement, cm

Code of operation 2 or 3: angle of rotation, degrees

Code of operation 4: time of pause, ms

Code of operation 6: X coordinate of movement target, cm

Code of operation 7: speed of movement, %

5

1

uint8_t

For mode 3: total number of steps in program.

6

2

int16_t

Additional data for program (mode 3):

Code of operation 6: Y coordinate of movement target, cm

8

2

int16_t

Code of operation 6: Z coordinate of movement target, cm

10

6

6 bytes

Reserved (0)

Some comments for this complicated command.

There are three main modes of robot control specified in byte 0 of robot control structure:

  • power control (mode 1)
  • speed control (mode 2)
  • move by program (mode 3)

Mode 1 and mode 2 are generally used for test purposes. In mode 1 robot moves forward, backward, rotates left or right with selected power on motors. In mode 2 robot makes the same but adjusting power to keep selected speed. The power or speed is set in byte 2 of structure, type of movement – in byte 1.

Mode 4 and mode 5 are special commands for pausing movement during program execution and continuing movement after pause.

The main mode for moving on complex trajectories is mode 3.

It allows to program to robot the sequence of primitive actions, which combination builds the trajectory. Each item of the sequence should be sent by one command of this type. Each command should contain the number of the current step in the byte 2 of robot control structure, and total number of steps in the byte 5.

In the byte 1 of robot control structure the type of primitive movement is specified. Parameters of the primitive movement are specified in fields "data for program" (bytes 3…4) and "additional data for program" (bytes 6…7).

So, the following primitives are available:

  • move forward by given distance;
  • move backward by given distance;
  • rotate clockwise by given angle;
  • rotate counterclockwise by given angle;
  • pause by given time;
  • restart the movement program from first item (for looping movements);
  • move to given point (X, Y) in Marvelmind navigation system coordinates;
  • change movement speed.

Robot begins execution of the program after receiving the sequence of primitives. After program execution, robot stops. But if the program contains item with code of operation 5 (repeat from start), the program repeats loop which will be executed forever, until receiving stop command or uploading new program.

Stop robot

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of robot

0x01…0xfe

1

1

uint8_t

Type of packet

0x10

2

2

uint16_t

Code of data in packet

0x403

4

2

uint16_t

Access mode

0x0001

6

1

uint8_t

Number of bytes of data transmission

0x04

7

4 bytes

4 bytes

Reserved (0)

0

11

2

uint16_t

CRC-16 (see appendix 1)

Format of answer frame (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet (modem reply)

0x7f

2

2

uint16_t

Code of data

0x403

4

2

uint16_t

reserved

6

2

uint16_t

CRC-16 of bytes 0…5 (see appendix 1)

8

1

uint8_t

Address of robot

0x01…0xfe

9

1

uint8_t

Type of packet (robot reply)

0x10

10

2

uint16_t

Code of data

0x403

12

2

uint16_t

reserved

14

2

uint16_t

CRC-16 of bytes 8…13 (see appendix 1)

Format of error reply is described in Appendix 2.

This command simply terminates execution of any robot movement or program of movements. The robot stops and waits for new commands.

Reading/writing device control settings (firmware V6.01+)

Supported hardware:

Super-Beacon: not supported

Industrial Super-Beacon: not supported

Modem HW5.1: supported

Super-Modem: supported

Mini-RX (Badge, Helmet, etc.): not supported

Mini-TX: not supported

Mini-TX-2: not supported

Modem HW4.9: supported

Beacon HW4.9: not supported

Beacon HW4.5: not supported

Reading device control settings

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of device (beacon/modem)

0x01…0xfe or 0xff

1

1

uint8_t

Type of packet

0x03

2

2

uint16_t

Code of data in packet

0x1201

4

2

uint16_t

Access mode

0x0001

6

2

uint16_t

CRC-16 (see appendix 1)

Format of answer frame (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x03 if request was sent to modem

0x7f if request was sent to beacon

2

1

uint8_t

Number of bytes of data transmission

0x10

3

16

structure

Data structure (see section 9.3).

Relevant only if request was sent to modem (0xff)

11

2

uint16_t

CRC-16 of bytes 0…10 (see appendix 1)

following data will be received of the request was sent to beacon

13

1

uint8_t

Address of device

0x01…0xfe

14

1

uint8_t

Type of packet

0x03

15

1

uint8_t

Number of bytes of data transmission

0x08/0x10

16

16

structure

Data structure (see below).

32

2

uint16_t

CRC-16 of bytes 12…22 (see appendix 1)

Format of error reply is described in Appendix 2.

Write device control settings

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of device (beacon/modem)

0x01…0xfe or 0xff

1

1

uint8_t

Type of packet

0x10

2

2

uint16_t

Code of data in packet

0x1201

4

2

uint16_t

Access mode

0x0001

6

1

uint8_t

Number of bytes of data transmission

0x10

7

16

structure

Data structure (see below)

23

2

uint16_t

CRC-16 (see appendix 1)

Format of answer frame (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x03 if request was sent to modem

0x7f if request was sent to beacon

2

2

uint16_t

Code of data

0x1201

4

2

uint16_t

reserved

6

2

uint16_t

CRC-16 of bytes 0…5 (see appendix 1)

following data will be received of the request was sent to beacon (with address 0x01…0xfe)

8

1

uint8_t

Address of device

0x01…0xfe

9

1

uint8_t

Type of packet

0x10

10

2

uint16_t

Code of data

0x1201

12

2

uint16_t

reserved

14

2

uint16_t

CRC-16 of bytes 8…13 (see appendix 1)

Format of error reply is described in Appendix 2.

Format of control settings payload data

Offset

Size (bytes)

Type

Description

0

1

uint8_t

Flags:

Bit 0…5: not explained, should be always zero!

Bit 6: 0 – stationary beacon mode, 1 – hedgehog mode

Bit 7: reserved (0)

1

1

uint8_t

UART baudrate setting:

0: 500000 bps (default value)

1: 4800 bps

2: 9600 bps

3: 19200 bps

4: 38400 bps

5: 57600 bps

6: 115200 bps

7…255: reserved

2

1

uint8_t

Reserved (0)

3

1

uint8_t

Bit 0…3: radio profile:

0: 38.4 kbps

1: 150 kbps

2: 500 kbps

3…7: reserved

Bit 4…6: radio band:

0: 433 MHz

1: 868 MHz

2: 915 MHz

3: 315 MHz

4…7: reserved

Bit 7: reserved

4

1

uint8_t

Type of UART/USB output:

0: Marvelmind protocol

1: NMEA0183

5

1

uint8_t

Mask of NMEA frames to send in NMEA0183 mode:

Bit 0: 1 – send $GPRMC frame

Bit 1: 1 – send $GPGGA frame

Bit 2: 1 – send $GPVTG frame

Bit 3: 1 – send $GPZDA frame

Bit 4…7: reserved (0)

6

1

uint8_t

Number of bytes of user payload data for sending from this hedgehog to modem (0…32)

7

1

uint8_t

Mask of IMU data for sending to modem in ‘IMU via modem’ mode:

Bit 0: IMU fusion location

Bit 1: quaternion

Bit 2: speed

Bit 3: acceleration

Bit 4: raw accelerometer

Bit 5: raw gyro

Bit 6: raw compass

Bit 7: 0 = send IMU fusion, 1 = send raw IMU

8

1

uint8_t

Bit 0…6: interval of streaming telemetry (0 = no stream)

Bit 7: reserved (0)

9

1

uint8_t

Bit 0: use IMU for speed calculation

Bit 1…7 – reserved (0)

10

6

6 bytes

Reserved (0)

Warning! If you change radio profile on beacon connected by radio, the radio connection will be lost. If you need to switch the profile, switch the radio profile for all beacons one after another, and then switch radio profile for modem. All beacons should be available on new radio profile after few seconds.

Reading list of devices in network (firmware V6.01+)

Supported hardware:

Super-Beacon: not supported

Industrial Super-Beacon: not supported

Modem HW5.1: supported

Super-Modem: supported

Mini-RX (Badge, Helmet, etc.): not supported

Mini-TX: not supported

Mini-TX-2: not supported

Modem HW4.9: supported

Beacon HW4.9: not supported

Beacon HW4.5: not supported

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x03

2

2

uint16_t

Code of data in packet

0x31xx where xx is number of devices group

4

2

uint16_t

Access mode

0x0000

6

2

uint16_t

CRC-16 (see appendix 1)

Format of answer frame (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x03

2

1

uint8_t

Number of bytes of data transmitting

0x72

3

1

uint8_t

Total number of devices in network (K)

4

112

112 bytes

0…16 structures of information about device in network, see description lower

116

1

uint8_t

Reserved

0x00

117

2

uint16_t

CRC-16 (see appendix 1)

Format of error reply is described in Appendix 2.

Format of data about device in network (7 bytes)

Offset

Size (bytes)

Description

0

1

Address of device (0x01…0xfe)

1

1

Major version of firmware

2

1

Minor version of firmware

3

1

Bit 0…5: Type of device:

10: Wheel robot

12: Crawler robot

22: Beacon HW V4.5

23: Beacon HW V4.5 (hedgehog mode)

24: Modem (HW V4.5/4.9)

30: Beacon HW V4.9

31: Beacon HW V4.9 (hedgehog mode)

32: Mini-RX beacon

36: Mini TX beacon (HW V5.07)

37: Industrial-TX beacon

41: Industrial-RX beacon

42: Super-Beacon

43: Super-Beacon (hedgehog mode)

44: Industrial Super-Beacon

45: Industrial Super-Beacon (hedgehog mode)

Bit 6: 1 -more than one device with this address exist

Bit 7: 1 – sleeping mode

4

1

Second minor version of firmware

Reading version of firmware

Supported hardware:

Super-Beacon: supported

Industrial Super-Beacon: supported

Modem HW5.1: supported

Super-Modem: supported

Mini-RX (Badge, Helmet, etc.): supported

Mini-TX: supported

Mini-TX-2: supported

Modem HW4.9: supported

Beacon HW4.9: supported

Beacon HW4.5: supported

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of device

0xff

1

1

uint8_t

Type of packet

0x03

2

2

uint16_t

Code of data in packet

0xfe00

4

2

uint16_t

Access mode

0x0000

6

2

uint16_t

CRC-16 (see appendix 1)

Format of answer frame (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x03

2

1

uint8_t

Number of bytes of data transmitting

0x08

3

1

uint8_t

Minor version of firmware

4

1

uint8_t

Major version of firmware

5

3

3 bytes

Reserved

8

1

uint8_t

Device type ID

9

2

uint16_t

Reserved

11

2

uint16_t

CRC-16 (see appendix 1)

Format of error reply is described in Appendix 2.

Reading user data

Supported hardware:

Super-Beacon: not supported

Industrial Super-Beacon: not supported

Modem HW5.1: supported

Super-Modem: supported

Mini-RX (Badge, Helmet, etc.): not supported

Mini-TX: not supported

Mini-TX-2: not supported

Modem HW4.9: supported

Beacon HW4.9: not supported

Beacon HW4.5: not supported

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x03

2

2

uint16_t

Code of data in packet

0x0004

4

2

uint16_t

Access mode

0x0000

6

2

uint16_t

CRC-16 (see appendix 1)

Format of answer frame (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x03

2

1

uint8_t

Number of bytes of data transmitting

0x84

3

1

uint8_t

Total user data size

4

3

3 bytes

Reserved (0)

7

128

uint8_t

User data from hedgehogs

135

2

uint16_t

CRC-16 (see appendix 1)

Format of error reply is described in Appendix 2.

User data from hedgehogs is the sequence of records with following structure:

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of hedgehog

H

1

1

uint8_t

Number of bytes of user data from hedgehog

M

2

M

uint8_t

M bytes of data from hedgehog H

Writing manual device location

Supported hardware:

Super-Beacon: not supported

Industrial Super-Beacon: not supported

Modem HW5.1: supported

Super-Modem: supported

Mini-RX (Badge, Helmet, etc.): not supported

Mini-TX: not supported

Mini-TX-2: not supported

Modem HW4.9: supported

Beacon HW4.9: not supported

Beacon HW4.5: not supported

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of beacon

0x01…0xfe

1

1

uint8_t

Type of packet

0x10

2

2

uint16_t

Code of data in packet

0x5003

4

2

uint16_t

Access mode

0x0002

6

1

uint8_t

Number of bytes of data transmission

0x20

7

32

structure

Data structure (see below)

39

2

uint16_t

CRC-16 (see appendix 1)

Format of answer frame (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x10

2

2

uint16_t

Code of data

0x5003

4

2

uint16_t

reserved

6

2

uint16_t

CRC-16 (see appendix 1)

Format of error reply is described in Appendix 2.

Format of data structure:

Offset

Size (bytes)

Type

Description

Value

0

4

int32_t

X coordinate, mm

4

4

int32_t

Y coordinate, mm

8

4

int32_t

Z coordinate, mm

12

1

uint8_t

Not explained

0xff

13

4

int32_t

Not explained

0

17

4

int32_t

Not explained

0

21

4

int32_t

Not explained

0

25

1

uint8_t

Not explained

0x02

26

6

6 bytes

Reserved

0

Writing manual distance between beacons

Supported hardware:

Super-Beacon: not supported

Industrial Super-Beacon: not supported

Modem HW5.1: supported

Super-Modem: supported

Mini-RX (Badge, Helmet, etc.): not supported

Mini-TX: not supported

Mini-TX-2: not supported

Modem HW4.9: supported

Beacon HW4.9: not supported

Beacon HW4.5: not supported

Format of request frame (from host to modem)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x10

2

2

uint16_t

Code of data in packet

0x4003

4

2

uint16_t

Access mode

0x0000

6

1

uint8_t

Number of bytes of data transmission

0x10

7

16

structure

Data structure (see below)

23

2

uint16_t

CRC-16 (see appendix 1)

Format of answer frame (from modem to host)

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of modem

0xff

1

1

uint8_t

Type of packet

0x10

2

2

uint16_t

Code of data

0x4003

4

2

uint16_t

reserved

6

2

uint16_t

CRC-16 (see appendix 1)

Format of error reply is described in Appendix 2.

Format of data structure:

Offset

Size (bytes)

Type

Description

Value

0

1

uint8_t

Address of first beacon

1

1

uint8_t

Address of second beacon

2

4

uint32_t

Distance between beacons, mm

6

10

10 bytes

Reserved

0

Scroll to Top