HaoruTech ULM 3 Positioning Module User Manual
- June 8, 2024
- HaoruTech
Table of Contents
HaoruTech ULM 3 Positioning Module
Introduction
Figure 1-1 ULM3 UWB Module
ULM3 is a UWB module, based on the latest DW3000 series chip. Core UWB module of ULM3 is official Decawave DWM3000, and MCU is STM32F103CBT6 (or GD32F103CBT6 which based on the price fluctuation and batches difference). ULM3 can be used for precise ranging, indoor positioning and other high-speed data communication applications. ULM3 also integrates the OLED display. All the features make ULM3 easy to use, with high precision and small size.
For positioning applications, ULM3 module can be used as an anchor or tag, and the combination of multiple ULM3 modules can form a complete positioning system development kit.
DW3000 features
-
Ultra-low power consumption
Through comprehensive optimization, DW3000 series can make power consumption 5 times lower than DW1000 by reducing peak current, frame duration and startup time.
The power consumption of DW3000 is lower than BLE, and more friendly to low power standby duration. -
Excellent security
DW3000 supports for the new IEEE802.15.4z standards, and preamble encryption. -
High compatibility
DW3000 is compatible with the latest IEEE802.15.4z. After developing of FiRa compatible code, it supports main commercial mobile phones available in the market. -
High-integrated
By integrating baluns, capacitors and other components inside the chip, DW3000 reduced its size by reducing the number of external components from 30+ to 10. -
PDOA with single chip
DW1000 series requires two DW1000 chips to realize PDOA with the same clock source. But DW3x20 supports external double antennas, which can measure the arrival phase difference. The cost, size and power can be reduced by one single chip.
Module selection
Table 3-1 Comparison of Module Features
No. | Type | Main features |
---|---|---|
1 | ULM3 | Official DWM3000 module, display integrated, 40m |
2 | ULM3-SH | Wristband, battery inside, motion detection, 40m |
3 | ULM3-PDOA | PDOA anchor, angle detection, single base positioning, car- |
following, 40m
Above are the related module based on DW3000 core chip, which can be combined used.
Product parameters
Table 4-1 ULM3 Module Parameters
Category | Parameter |
---|---|
Power | DC3.7V~5V external power supply |
(power bank or li-ion battery)
Maximum Detection Range| 40m (open area) @6.8Mbps
MCU| STM32F103CBT6 (GD32F103CBT6)
Display Onboard| 0.6inch OLED
Module Size| 27*70mm (include antenna and base)
Ranging Accuracy| ±5cm
Working Temperature| -20~70℃
Communication Mode| USB to serial port / TTL serial
Data Update Frequency| 100Hz (MAX, adjustable)
Frequency Domain| 6250-8250MHz (CH5/CH9)
Bandwidth| 500MHz
Type of Antenna| Onboard ceramic antenna
Emission power spectral density
(Programmable)
| ****
-41dBm/MHz
Communication Rate| 6.8Mbps
Module interfaces
Figure 5-1 5-Module Interfaces
USB port (power supply & data transmission)
The port can be connected to a standard 5VDC module such as a charging bank or other 5V power adapters. It can also be connected to the USB port of a computer for power supply and data transmission and data display at the computer end.
Program downloading port
The port is the SWD debugging interface of STM32 microcontroller, which can be used for program downloading, simulation debugging, etc. It is mainly used for embedded program development and firmware update, and it can be used with the ST-LINK burning tool.
UART serial port
ULM3 module can connect to PC or Raspberry PI and other systems through USB port for data transmission, but also has UART serial port (TTL) on board, which can connect to other microcontrollers, Arduino and other devices for data transmission and secondary development. While Connecting, the TX pin of ULM3 should be connected to the RX pin of the target module, and the GND of the two modules should be connected directly.
Figure 5-2 ULM3 UART Connection Diagram
LED indicator
On board RGB indicator indicates the current system status.
Table 5-1 Indicator Status Description
Working | Start ranging and successfully get | GREEN LED BLINK |
---|
Status:
Tag
| response from 1 or more anchors, and establish ranging communication.|
| Start ranging but get no response from anchors.| RED LED BLINK
Working Status: Anchor
| Successfully establish a ranging connection with any tag.| LIGHT BLUE LED
BLINK
| No tag connected.| LIGHT BLUE LED NOT BLINK (ON or OFF)
Parameter configuration interface
ULM3 module integrated the 8-bit DIP switch. The following figure 5-3 lists the switch configuration attributes. Users can easily configure the communication frequency, role, ID, and built-in Kalman filter switch of the module.
During using and onsite debugging, users can quickly change the module configuration without any other devices to adapt more environments.
Before modifying parameters, users should disconnect the power supply first, then switch the DIP switch to the corresponding configuration position, and finally re-power the module to load the new configuration.
Table 5-2 ULM3 Module DIP Switch Configuration
| ****
S1
| S2* (Maximum number of tags and communication
period)
| S3* (Increase the external
current)
| ****
S4(Role)
| ****
S5-S7
(Device address)
| ****
S8
(Kalman filter)
---|---|---|---|---|---|---
| | Maximum number of| | | |
ON| Reserved| tags: 1
Total communication
period: 10ms
| ON| Anchor| ****
Device address
| ON
| | Maximum number of| | | 000-111|
OFF| Reserved| tags: 10
Total communication
period: 100ms
| OFF| Tag| | OFF
The default configuration of the system:
- Maximum number of tags:10tags
- Update period:100ms (10Hz)
- External current increase:open
- Kalman filter:open.
-
S2 Note: At the communication rate of 6.8Mbps, the ranging period of 1 ULM3 tag and 4 ULM3 anchors system is 10ms. Because multiple Tags positioning is in the form of TDMA, the total communication period =10ms numbers of tag.
For example, if the system has 10 tags, the ranging period is 1010ms=100ms. Within this period, the ranging data of tags will be outputted every 10ms according to the sequence of tag ID. If one of the tags is offline, the output is empty during its 10ms period. The maximum number of tags can also be modified to other numbers through embedded code. -
S3 Note: Due to the low power consumption of DW3000 series modules, most of the power banks will actively turn off the external power supply when the load current is low. This will make the module reboot again and again. S3 increases the external current to actively increase the current of the module, which helps the power bank to maintain continuous output.
On Board OLED Display
Figure 5-3 Display Example
Table 5-3 Display Information Description
Example | Description |
---|---|
V48 | Firmware Version |
4A10T | Maximum 4 anchors and 10 tags (current mode) |
100ms | Current data update period |
6.8M | Current UWB air rate is 6.8Mbps |
CH5 | Current UWB channel is CH5 |
Anc:0 | Current module is anchor, ID=0 |
(Alternative option: Tag)
K| Kalman filtering is enabled (no display: disabled)
P| Increase the external is enabled (no display: disabled)
System deployment
There are two system deployment modes: navigation mode and monitoring mode.
During the navigation mode, the tag needs to be connected to the PC while other anchors only need to power on. The position data and real-time track of the currently connected tag can be displayed on the PC software. In the monitoring mode, one of the anchors is connected to the PC, while the other anchors and labels are powered on. The position data and real-time track of all labels in the coverage area of the current anchor can be displayed in the PC software.
Figure 6-1 Module Connects to PC
For the initial utilization, CH340 driver should be installed at first. After identifying the serial port on the PC, please open the PC software, select the serial port, and click “Connect” button to complete module connection and data communication.
Figure 6-2 Serial Port Connection
After successfully connecting, users can complete the equipment deployment by configuring the position coordinates of the anchors based on the relative position of the anchors, and then the tags can be located and displayed.
Figure 6-3 Configure the Coordinates of Anchors
For more details about the utilization of system deployment, please download
the
Download HR-RTLS1 UserManual:
http://rtls1.haorutech.com/download/HR-RTLS1_UserManual-EN.pdf
Communication protocol
Uplink data protocol
The uplink data protocol is the data uploaded actively by the UWB module
through the serial port.
Serial communication baud rate: 115200bps-8-n-1
Serial communication data example:
mc 0f 00000663 000005a3 00000512 000004cb ffffffff ffffffff ffffffff ffffffff
095f c1 00146fb7 a0:0 22be
Table 7-1 Serial Communication Protocol Description
Content | Example | Description |
---|---|---|
HEAD | mc | Head of the data packet,fixed:”mc” |
MASK | 0f | If ranging results are valid. For example: mask=0x07(0000 0111) |
means RANGE 0,1,2 are valid.
RANGE0| 00000663| Distance from tag to anchor A0,hexadecimal notation, unit:
mm, result of the example is 1.635m.
RANGE1| 000005a3| Distance from tag to anchor A1
RANGE2| 00000512| Distance from tag to anchor A2
RANGE3| 000004cb| Distance from tag to anchor A3
RANGE4| ffffffff| Distance from tag to anchor A4(Invalid ranging or no
anchor)
RANGE5| ffffffff| Distance from tag to anchor A5(Invalid ranging or no
anchor)
RANGE6| ffffffff| Distance from tag to anchor A6(Invalid ranging or no
anchor)
RANGE7| ffffffff| Distance from tag to anchor A7(Invalid ranging or no
anchor)
NRANGES| 095f| message flow, accumulated,0x0-0xffff
RSEQ| c1| Range number, accumulated,0x0-0xff
RANGTIME| 00146fb7| Ranging timestamp ,timestamp of MCU ,unit: ms
rIDt:IDa| a0:0| r means the role: a-anchor ,t-tag; IDt-tag address IDa-anchor
address
DIAGNOSIS| 22be| Only existing when the role is anchor, and default is
RX_POWER(current anchor and last communicated tag)=-88.94dBm
END| \r\n| End of the data packet
*Tips: Users can only get data from RANGE4/ RANGE5/ RANGE6/ RANGE7 when the firmware program works as 8 anchors, and nothing will output when it is a 4 anchors firmware program.
If the current device is a tag, the ranging and positioning information will closely follow “mc…”;
Example: $KT0, 1.69, 2.93, 4.98, NULL, LO = [-2.45, 5.44, 1.43]
Description:
- Current role-T0;
- K- Kalman filtering is enabled;
- NK- Kalman filtering is not enabled;
- Distance to anchor A0 is 1.69m;
- Distance to anchor A1 is 2.93m;
- Distance to anchor A2 is 4.98m;
Distance to anchor A3 fails to range, or A3 does not exist or A3 is not turned on.
The real-time positioning coordinates of the tag locates in the brackets after LO, and the coordinates is calculated within the tag. Users should note that the calculation can be completed only after the anchor coordinates are configured to the tag successfully.
Downlink data protocol
The downlink data protocol is the serial port command sent by the host to the UWB module, which is mainly used for parameter configuration. The length of the command is variable. The command begins with “$” as the data header and end with “\r\n”.
Table 7-2 Downlink Data Command
$rboot| Module reboots, and inputs the startup
information.
---|---
$reset| Restore system parameters to defaults.
$santdly,16375| Setting the antenna delay parameter (decimal) for ranging
calibration:
- if ranging result is smaller than the actual distance, the number needs to be reduced to increase the ranging distance.
- if ranging result is bigger than the actual distance, the number needs to be increased to reduce the ranging distance.
$stxpwr,1f1f1f1f| Setting Transmit gain parameter (hexadecimal)
$sanccd,0,0,2,0,3.1,2,3.1,0,2,3.
1,3.1,2
| Setting anchors coordinates (only valid for tags setting)
| A0X,A0Y,A0Z,A1X,A1Y,A1Z,A2X,A2Y,A2Z,A3
| X,A3Y,A3Z
Coordinates unit:m,float
$saddr,9| Setting tag ID. The device ID will not be controlled by the DIP
switch after the setting (only valid for tags Settings).
Shipping list
Shipping list of single ULM3 module: (Highly recommendation: purchasing more
than 4 modules to get a whole positioning system.)
Table 8-1 Shipping List
No. | Category | Number | Notes |
---|---|---|---|
1 | ULM3 module | 1 | |
2 | Micro-USB data cable | 1 |
Development and learning files
List of development and learning materials we provide after purchasing:
Table 9-1 Development Code
No. | Category | Language |
---|---|---|
1 | STM32 embedded code (KEIL MDK project) and STM32cube project | C |
2 | PC software code | C++ QT |
3 | Trilateral positioning algorithm code | C |
4 | DW3000 embedded API | C |
Table 9-2 Hardware Documents
No. | Category | File type |
---|---|---|
1 | ULM3 module hardware schematic diagram | |
2 | Chip DATASHEET |
Table 9-3 UserManual
No. | Category | File type |
---|---|---|
1 | ULM3_UserManual | |
2 | RTLS1_UserManual | |
3 | DW3000 UserManual by Qorvo | ZIP |
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>