Seeed Studio MR60BHA1 mmWave Breathing and Heartbeat Module User Manual
- June 9, 2024
- seeed studio
Table of Contents
- Overview
- Working Principle
- Hardware Design Considerations
- Antenna and housing layout requirements
- Electrostatic protection
- Detailed explanation of functions
- Protocol Description
- Communication command and parameter definition
- Appendix 1: About the calculation of check digit
- Read User Manual Online (PDF format)
- Download This Manual (PDF format)
MR60BHA1 mmWave Breathing and Heartbeat Module
User Manual
MR60BHA1
60GHz mmWave Module – Respiratory
Heartbeat Detection
Sensor User Manual (V1.9)
Overview
This document focuses on the use of the radar, the issues that need to be paid
attention to in each phase, to minimize the design cost and increase the
stability of the product, and to improve the efficiency of the project
completion. This document focuses on the issues that need to be taken into
account in each phase, in order to minimize the design cost and increase the
stability of the product, and to improve the efficiency of the project
completion.
From hardware circuit reference design, radar antenna and housing layout
requirements, how to distinguish interference and multi-functional standard
UART protocol output. The radar is a self-contained system.
This radar is a self-contained space sensing sensor, which consists of RF
antenna, radar chip and high speed MCU. The radar is a self-contained sensor
with a combination of RF antenna, radar chip and high-speed main frequency
MCU. It can be equipped with a host computer or host computer to flexibly
output detection status and data, and meet the needs of several groups of
GPIOs. It can be equipped with a host computer or a host computer to flexibly
output detection status and data, and meet several groups of GPIOs for user
customization and development.
Working Principle
The radar transmits a 60G band millimeter wave signal, and the target reflects the electromagnetic wave signal, and demodulates it from the transmitted signal. The signal is demodulated, then amplified, filtered, ADC and other processing to obtain the echo demodulation signal data. In the MCU unit, the amplitude, frequency and phase of the echo signal are decoded, and the target signal is finally decoded. The target parameters (sleep quality, respiration, tossing, body movement, etc.) are measured and evaluated in the MCU.
Hardware Design Considerations
The rated supply voltage of the radar needs to meet 4.9 – 6V, and the rated
current needs to be 200mA or more input is required. The power supply is
designed to have a ripple of 100mv.
2.1 Power supply can refer to the following circuit design
2.2 Wiring Diagram
Figure 3 Module and peripheral wiring diagram
Antenna and housing layout requirements
PCBA: Need to keep the radar patch height 1mm higher than other devices
Housing structure: need to keep the radar antenna surface and the housing
surface have 2 – 5mm distance
Housing detection surface: non-metallic housing, need to be straight to avoid
bending surface, affect the performance of the whole sweep surface area
Performance
Electrostatic protection
Radar products with electrostatic sensitive circuitry inside, vulnerable to
electrostatic hazards, so need to be in transport, storage, work and handling
process to do a good job of electrostatic protection, do not touch the grasp
of the radar hands. Therefore, it is necessary to do a good job in the
transportation, storage, work and picking up process of static protection, do
not touch and grab the radar module antenna surface and connector pins, only
touch the corners. Do not touch the surface of the radar module antenna and
connector pins with your hands, only touch the corners.
When handling the radar sensor, please wear anti-static gloves as much as
possible.
Detailed explanation of functions
5.1 Function Description
Function | Status change time/function explanation |
---|---|
DP1: occupied/unoccupied | From unoccupied to occupied, report within 0.5s From |
occupied to unoccupied, report within 40 s
DP2: Some people are stationary / Some people are active| Static dynamic
switching, report within 0.5 seconds
DP3: Heart rate| Outputs data once every 3 seconds, in units of times/minute
DP4: Body movement parameters 0 – 100| Output data once every 5 seconds [Refer
to: Body motion amplitude parameter output instructions].
---|---
DP5: In-bed/out-of-bed| From bed-out to bed-in, 1 minute report in the
presence of someone
From bed-in to bed-out, about 40s output of bed-out status
DP6: Sleep state (awake/light sleep/deep sleep)| In the bed state, 10 minutes
to determine and report sleep status once
DP7: Sleep quality score| At the end of the sleep process, a score of 0 to 100
is reported for the sleep period
DP8: Respiratory/heart rate rate| Outputs data once every 3 seconds, in units
of times/minute
Protocol Description
This protocol is applied to the communication between the 60G millimeter wave
respiratory sleep detection radar and the host computer.
This protocol outlines the radar workflow, briefly introduces the interface
protocol composition architecture, and The interface protocol structure is
briefly introduced, and the related radar work requires control commands and
data.
Interface level: TTL
Baud rate: 115200bps
Stop bit: 1
Data bits: 8
Parity check: None
Communication command and parameter definition
7.1 Frame structure definition and description
7.1.1 Definition of frame structure
Frame header| Control word| Command word| Length
identifier| Data| Checksum| End of frame
---|---|---|---|---|---|---
0x53 0x59| Control| Command| Lenth_H| Lenth_L| Data| Sum| 0x54 0x43
2 Byte| 1 Byte| 1 Byte| 1 Byte| 1 Byte| n Byte| 1 Byte| 2 Byte
7.1.2 Description of the frame structure
a. Frame header: 2 Byte, fixed to 0x53,0x59;
b. Control word: 1 Byte
(0x01 – heartbeat packet identification, 0x02 – product information, 0x03 –
OTA upgrade, 0x05 – operation status, 0x07 – radar detection range
information, 0x80 – human presence, 0x81 – breath detection, 0x84 – sleep
monitoring, 0x85 – heart rate monitoring)
c. Command word: 1 Byte (to identify the current data content)
d. Length identification: 2 Byte, equal to the specific byte length of the
data
e. Data: n Byte, defined according to the actual function
f. Checksum: 1 Byte. (Calculation method of checksum: “frame header + control
word + command word + length identifier + data” summed to the lower eight
bits) g. End of frame: 2Byte, fixed to 0X54,0X43;
7.2 Description of address assignment and data information
Function Category| Function Description| Transfer direction|
Frame header| Control word| Command word| Length
Identification| Data| Checksum field| End of frame|
Note
---|---|---|---|---|---|---|---|---|---|---
System Functions| Heartbeat Pack Report| Report| 0x53 0x59| 0x01| 0x01| 0x00|
0x01| 0F| sum| 0x54 0x43|
Heartbeat Package Inquiry| Send| 0x53 0x59| 0x01| 0x80| 0x00| 0x01| 0F| sum|
0x54 0x43|
Response| 0x53 0x59| 0x01| 0x80| 0x00| 0x01| 0F| sum| 0x54 0x43|
Module Reset
| Send| 0x53 0x59| 0x01| 0x02| 0x00| 0x01| 0F| sum| 0x54 0x43|
Response| 0x53 0x59| 0x01| 0x02| 0x00| 0x01| 0F| sum| 0x54 0x43|
Information Inquiry
Product Information
| Product Model| Send| 0x53 0x59| 0x02| 0xA1| 0x00| 0x01| 0F| sum| 0x54 0x43|
Response| 0x53 0x59| 0x02| 0xA1| 0x00| len| len B Product Info| sum| 0x54
0x43|
Product ID| Send| 0x53 0x59| 0x02| 0xA2| 0x00| 0x01| 0x0F| sum| 0x54 0x43|
Response| 0x53 0x59| 0x02| 0xA2| 0x00| len| len B Product ID| sum| 0x54 0x43|
Hardware Model| Send| 0x53 0x59| 0x02| 0xA3| 0x00| 0x01| 0x0F| sum| 0x54 0x43|
Response| 0x53 0x59| 0x02| 0xA3| 0x00| len| len B Hardware model| sum| 0x54
0x43|
Firmware Version| Send| 0x53 0x59| 0x02| 0xA4| 0x00| 0x01| 0F| sum| 0x54 0x43|
Response| 0x530x59| 0x02| 0xA4| 0x00| len| len B Firmware version| sum| 0x54
0x43|
Working Status
| Initialization completion message| Report| 0x53 0x59| 0x05| 0x01| 0x00|
0x01| 0x0F| sum| 0x54 0x43|
---|---|---|---|---|---|---|---|---|---|---|---
Query if initialization is complete| Send| 0x53 0x59| 0x05| 0x81| 0x00| 0x01|
0x0F| sum| 0x54 0x43|
Response| 0x53 0x59| 0x05| 0x81| 0x00| 0x01| 0x01: Completed 0x02: Incomplete|
sum| 0x54 0x43|
Radar detection range info
| Out-of-bounds status reporting| Report| 0x53 0x59| 0x07| 0x07| 0x00| 0x01|
0x00: Out of range 0x01: Within range| sum| 0x54 0x43| Report when status
changes
Query out-of-bounds status| Send| 0x53 0x59| 0x07| 0x87| 0x00| 0x01| 0x0F|
sum| 0x54 0x43|
Response| 0x53 0x59| 0x07| 0x87| 0x00| 0x01| 0x00: Out of range 0x01: Within
range| sum| 0x54 0x43|
Proactive reporting of human presence information
| Human presence detection function switch| Send| 0x53 0x59| 0x80| 0x00|
0x00| 0x01| 0x01: On
0x00: Off| sum| 0x54 0x43|
| Response| 0x53 0x59| 0x80| 0x00| 0x00| 0x01| 0x01: On
0x00: Off| sum| 0x54 0x43|
Human presence detection function| Human existence information| Report| 0x53
0x59| 0x80| 0x01| 0x00| 0x01| 0x00: Occupied 0x01: Unoccupied| sum| 0x54 0x43|
Report when status changes
Human movement information| Report| 0x53 0x59| 0x80| 0x02| 0x00| 0x01| 0x00:
None
0x01: Stationary 0x02: Active| sum| 0x54 0x43| Report when status changes
Body movement parameters| Report| 0x53 0x59| 0x80| 0x03| 0x00| 0x01| 1B Body
movement parameters| sum| 0x54 0x43| Reported once in 1 second, value range
0-100
Human distance information| Report| 0x53 0x59| 0x80| 0x04| 0x00| 0x02| 2B
Human distance| sum| 0x54 0x43| Reported once in 2 seconds, value range 0-
65535, unit cm
Human orientation information
| Report| 0x53 0x59| 0x80| 0x05| 0x00| 0x06| 2B x 2B y 2B z| sum| 0x54 0x43| Reported once in 2 seconds, in centimeters, with positive and negative
position
| Query human presence monitoring function switch| Send| 0x53 0x59| 0x80|
0x80| 0x00| 0x01| 0x0F| sum| 0x54 0x43|
| Response| 0x53 0x59| 0x85| 0x80| 0x00| 0x01| 0x00: Occupied
0x01: Unoccupied
| sum| 0x54 0x43|
Human Presence Informati on Inquiry|
Human Existence Inquiry
| Send| 0x53 0x59| 0x80| 0x81| 0x00| 0x01| 0x0F| sum| 0x54 0x43|
Response| 0x53 0x59| 0x80| 0x81| 0x00| 0x01| 0x00: Occupied 0x01: Unoccupied|
sum| 0x54 0x43|
Movement Infomation Inquiry
| Send| 0x53 0x59| 0x80| 0x82| 0x00| 0x01| 0x0F| sum| 0x54 0x43|
Response| 0x53 0x59| 0x80| 0x82| 0x00| 0x01| 0x00: None 0x01: Stationary
0x02: Active|
sum
| 0x54 0x43|
Body movement parameter Inquiry
| Send| 0x53 0x59| 0x80| 0x83| 0x00| 0x01| 0x0F| sum| 0x54 0x43|
Response| 0x53 0x59| 0x80| 0x83| 0x00| 0x01| 1B Body movement parameters| sum|
0x54 0x43| Value range 0-100
Human Distance Inquiry| Send| 0x53 0x59| 0x80| 0x84| 0x00| 0x01| 0x0F| sum|
0x54 0x43|
Response| 0x53 0x59| 0x80| 0x84| 0x00| 0x02| 2B Human distance| sum| 0x54
0x43| Value range 0-65535, unit cm
Human orientation Inquiry| Send| 0x53 0x59| 0x80| 0x85| 0x00| 0x01| 0x0F| sum|
0x54 0x43|
Response| 0x53 0x59| 0x80| 0x85| 0x00| 0x06| 2B x 2B y
2B z
|
sum
| 0x54 0x43| In centimeters, with positive and negative position
Respiratory and heart rate monitoring active reporting and setup
Heart rate monitor function|
Heart rate monitoring function switch
| Send| 0x53 0x59| 0x85| 0x00| 0x00| 0x01| 0x01: On
0x00: Off| sum| 0x54 0x43|
Response| 0x53 0x59| 0x85| 0x00| 0x00| 0x01| 0x01: On
0x00: Off| sum| 0x54 0x43|
Heart rate values| Report| 0x53 0x59| 0x85| 0x02| 0x00| 0x01| 1B Heart rate|
sum| 0x54 0x43| Reported once every 3 seconds, value range 0-100
Heart rate waveform| Report| 0x53 0x59| 0x85| 0x05| 0x00| 0x05| 5B Heart rate
waveform| sum| 0x54 0x43| Reported once in 1 second, value range 0-2555 bytes
represent 5 values in 1s in real time, and the waveform is a sine wave with a
median of 128, i.e. when the heart rate intensity is equal to 0, it will
be displayed as 128
Heart rate monitor function| Information Inquiry
---|---
Checking heart rate monitoring switch status| Send| 0x53 0x59| 0x85| 0x80|
0x00| 0x01| 0x0F| sum| 0x54 0x43|
Response| 0x53 0x59| 0x85| 0x80| 0x00| 0x01| 0x01: On
0x00: Off
| sum| 0x54 0x43|
Heart rate query| Send| 0x53 0x59| 0x85| 0x82| 0x00| 0x01| 0x0F| sum| 0x54
0x43|
Response| 0x53 0x59| 0x85| 0x82| 0x00| 0x01| 1B Heart rate| sum| 0x54 0x43|
value range 0-100
Heart rate waveform query| Send| 0x53 0x59| 0x85| 0x85| 0x00| 0x01| 0x0F| sum|
0x54 0x43|
Response| 0x53 0x59| 0x85| 0x85| 0x00| 0x05| 5B Heart rate waveform| sum| 0x54
0x43| value range 0-255
Respiratory monitoring report and setup
Respiratory monitoring function| Respiratory monitoring function switch| Send|
0x53 0x59| 0x81| 0x00| 0x00| 0x01| 0x01: On
0x00: Off
| sum| 0x54
0x43|
Response| 0x53 0x59| 0x81| 0x00| 0x00| 0x01| 0x01: On
0x00: Off| sum| 0x54 0x43|
Breathing Information| Report| 0x53 0x59| 0x81| 0x01| 0x00| 0x01| 0x01: Normal
0x02: Fast breathing
0x03: Slow breathing 0x04: None| sum| 0x54 0x43| Report when status changes
Breathing values| Report| 0x53 0x59| 0x81| 0x01| 0x00| 0x01| 1B Breathing
value| sum| 0x54 0x43| Reported once every 3 seconds, value range 0- 25
Breathing waveform| Report| 0x53 0x59| 0x81| 0x02| 0x00| 0x05| 5B Breathing
waveform| sum| 0x54 0x43| Reported once in 1 second, value range 0- 25 5 bytes
represent 5 values in 1s in real time, and the waveform is a sine wave with a
median of 128, i.e. when the heart rate intensity is equal to 0, it will be
displayed as 128
Information Inquiry
Inquiry respiratory monitoring function switch| Send| 0x53 0x59| 0x81| 0x80|
0x00| 0x01| 0x0F| sum| 0x54 0x43|
Response| 0x53 0x59| 0x81| 0x80| 0x00| 0x01| 0x01: On
0x00: Off
| sum| 0x54 0x43|
Query Breathing Information| Send| 0x53 0x59| 0x81| 0x81| 0x00| 0x01| 0x0F|
sum| 0x54 0x43|
Response| 0x53 0x59| 0x81| 0x81| 0x00| 0x01| 0x01: Normal
0x02: Fast breathing 0x03: Slow breathing 0x04: None|
sum
|
0x54 0x43
|
Query breathing values| Send| 0x53 0x59| 0x81| 0x82| 0x00| 0x01| 0x0F| sum|
0x54
0x43|
Response| 0x53 0x59| 0x81| 0x82| 0x00| 0x01| 1B Breathing value| sum| 0x54
0x43| value range 0-25
Query respiratory waveform| Send| 0x53 0x59| 0x81| 0x85| 0x00| 0x01| 0x0F|
sum| 0x54 0x43|
Response| 0x53 0x59| 0x81| 0x85| 0x00| 0x05| 5B Breathing
waveform| sum| 0x54
0x43| value range 0-255
Sleep monitoring reporting and setup
Sleep monitoring function| Sleep monitoring function switch| Send| 0x53 0x59|
0x84| 0x00| 0x00| 0x01| 0x01: On
0x00: Off| sum| 0x54 0x43|
Response| 0x53 0x59| 0x84| 0x00| 0x00| 0x01| 0x01: On
0x00: Off| sum| 0x54
0x43|
Bed-in/bed-out status| Report| 0x53 0x59| 0x84| 0x01| 0x00| 0x01| 0x00: Bed-
out 0x01: Bed-in
0x02: None (Displayed when real-time data transfer mode is on)| sum| 0x54
0x43| Report when status changes
Sleep status| Report| 0x53 0x59| 0x84| 0x02| 0x00| 0x01| 0x00: Deep sleep
0x01: Light sleep 0x02: Awake
0x03: None (Displayed when out of bed/real time data transfer mode is on)|
sum| 0x54 0x43| Reported once every 10 minutes
Duration of sobriety| Report| 0x53 0x59| 0x84| 0x03| 0x00| 0x02| 2 Byte Awake
time| sum| 0x54 0x43| Into bed state, follow 10 minutes of sleep state output
corresponding to the length of time. Value range: 0-65535, unit: min
| Duration of light sleep| Report| 0x53 0x59| 0x84| 0x04| 0x00| 0x02| 2 Byte
light sleep time| sum| 0x54 0x43| Into bed state, follow 10 minutes of sleep
state output corresponding to the length of time. Value range: 0-65535, unit:
min
---|---|---|---|---|---|---|---|---|---|---|---
| Duration of deep sleep| Report| 0x53 0x59| 0x84| 0x05| 0x00| 0x02| 2 Byte
deep sleep time| sum| 0x54 0x43| Into bed state, follow 10 minutes of sleep
state output corresponding to the length of time. Value range:
0-65535, unit: min
| Sleep quality score| Report| 0x53 0x59| 0x84| 0x06| 0x00| 0x01| 1B sleep
quality score| sum| 0x54 0x43| Reported at the end of sleep, value range
0-100, unit: minutes.
| Sleep integrated state| Report| 0x53 0x59| 0x84| 0x0C|
0x00
| 0x08| 1B Human exists 1B Sleep state 1B Average breathing
1B Average heart rate
1B Number of turning
1B Percentage of significant body movements
1B Percentage of small body movements
1B Number of respiratory pauses
|
sum
|
0x54 0x43
| Reported every 10 minutes Human exists: 0x01 occupied, 0x00 unoccupied Sleep
state: 0x03 out of bed, 0x02 awake, 0x01 light sleep, 0x00 deep sleep Average
heart rate and respiration: average over 10 minutes
Number of turning: The number of rolls in light or deep sleep
Percentage of body movements: value range 0- 100
Number of respiratory pauses: Number of pauses in breathing in 10 minutes
| | | | | | | | 1B Sleep quality score
2B Total hours of sleep
1B Percentage of waking hours
1B Percentage of light sleep1B Percentage of deep sleep
1B Length of time out of bed1B Number of times out of bed
1B Number of turning
1B Averagebreathing
1B Average heart rate1B Number of respiratorypauses (reserved
parameter)| | | Report sleep statistics for the entire night when the sleep
process is judged to be over.
Sleep monitoring function| Analysis of sleep quality| Report| 0x53 0x59| 0x84|
0x0D| 0x00| 0x0C| sum| 0x54 0x43| Sleep quality score: 0-100 Total hours of
sleep: 0- 65535 units: min Percentage of wake/light/deep sleep: 0-100 Length
of time out of bed: 0- 255
Number of times out of bed/turning: 0-255
Average breathing: 0-25 Average heart rate: 0-100 Number of respiratory
pauses: 0-10 (Not available)
| Abnormal sleep conditions| Report| 0x53 0x59| 0x84| 0x0E| 0x00| 0x01| 0x00:
Less than 4 hours of sleep 0x01: More than 12 hours of sleep 0x02: No one
detected for a long time 0x03: None| sum| 0x54 0x43| When the sleep duration
is less than 4 hours or more than 12 hours the abnormal state is reported. If
there is no one in the sleep state for a long time, the abnormal status is
reported.
| Reporting mode selection| Report| 0x53 0x59| 0x84| 0x0F| 0x00| 0x01| 0x00:
Real-time data transfer mode
0x01: Sleep state transmission mode| sum| 0x54 0x43|
Report| 0x53 0x59| 0x84| 0x0F| 0x00| 0x01| 0x00: Real-time data transfermode
0x01: Sleep state transmission mode| sum| 0x54 0x43|
| Information Inquiry
| Query sleep monitoring function switch
status| Send| 0x53 0x59| 0x84| 0x80| 0x00| 0x01| 0x0F| sum| 0x54 0x43|
Response| 0x53 0x59| 0x84| 0x80| 0x00| 0x01| 0x01: On
0x00: Off| sum| 0x54 0x43|
|
Query Bed- in/bed-out status
| Send| 0x53 0x59| 0x84| 0x81| 0x00| 0x01| 0x0F| sum| 0x54 0x43|
Response| 0x53 0x59| 0x84| 0x81| 0x00| 0x01| 0x00: Bed-out0x01: Bed-in| sum|
0x54
0x43|
Sleep monitoring function
| Query Sleep status| Send| 0x53 0x59| 0x84| 0x82| 0x00| 0x01| 0x0F| sum| 0x54
0x43|
---|---|---|---|---|---|---|---|---|---|---|---
Response| 0x53 0x59| 0x84| 0x82| 0x00| 0x01| 0x00: Deep sleep 0x01: Light
sleep 0x02: Awake
0x03: None| sum| 0x54 0x43|
Query duration of sobriety| Send| 0x53 0x59| 0x84| 0x83| 0x00| 0x01| 0x0F|
sum| 0x54 0x43|
Response| 0x53 0x59| 0x84| 0x83| 0x00| 0x02| 2 Byte Awake time| sum| 0x54
0x43|
Query duration of light sleep| Send| 0x53 0x59| 0x84| 0x84| 0x00| 0x01| 0x0F|
sum| 0x54 0x43|
Response| 0x53 0x59| 0x84| 0x84| 0x00| 0x02| 2 Byte light sleep time| sum|
0x54 0x43|
Query duration of deep sleep| Send| 0x53 0x59| 0x84| 0x85| 0x00| 0x01| 0x0F|
sum| 0x54 0x43|
Response| 0x53 0x59| 0x84| 0x85| 0x00| 0x02| 2 Byte deep sleep time| sum| 0x54
0x43|
Query sleep quality score| Send| 0x53 0x59| 0x84| 0x86| 0x00| 0x01| 0x0F| sum|
0x54 0x43|
Response| 0x53 0x59| 0x84| 0x86| 0x00| 0x01| 1B sleep quality score| sum| 0x54
0x43|
Query reporting mode| Send| 0x53 0x59| 0x84| 0x8C| 0x00| 0x01| 0x0F| sum| 0x54
0x43|
Response| 0x53 0x59| 0x84| 0x8C| 0x00| 0x01| 0x00: Real-time data transfer
mode
0x01: Sleep state
transmission mode|
sum
|
0x54 0x43
|
Query sleep integrated state| Send| 0x53 0x59| 0x84| 0x8D| 0x00| 0x01| 0x0F|
sum| 0x54
0x43|
Response| 0x53 0x59| 0x84| 0x8D| 0x00| 0x08| 1B Human exists 1B Sleep state 1B
Average breathing
1B Average heart rate
1B Number of turning
1B Percentage of significant
body movements
1B Percentage of small body movements
1B Number of
respiratory pauses| sum| 0x54 0x43|
Query abnormal sleep conditions
| Send| 0x53 0x59| 0x84| 0x8E| 0x00| 0x01| 0x0F| sum| 0x54 0x43|
Response| 0x53 0x59| 0x84| 0x8E| 0x00| 0x01| 0x00: Less than 4 hours of sleep
0x01: More than 12 hours of sleep 0x02: No one detected for a long time
0x03: None| sum| 0x54 0x43|
Query sleep statistics| Send| 0x53 0x59| 0x84| 0x8F| 0x00| 0x01| 0x0F| sum|
0x54 0x43|
Response| 0x53 0x59| 0x84| 0x8F| 0x00| 0x0C| 1B Sleep quality score
2B Total hours of sleep
1B Percentage of waking hours
1B Percentage of light sleep
1B Percentage of deep sleep
1B Length of time out of bed1B Number of times out of bed1B Number of turning
1B Average breathing
1B Average heart rate
1B Number of respiratory pauses (reserved parameter)
| sum| 0x54 0x43|
OTA| Start OTA upgrade| Send| 0x53 0x59| 0x03| 0x01| 0x00| 0x13| 4B Firmware
package size + 15B Firmware version number| sum| 0x54 0x43|
---|---|---|---|---|---|---|---|---|---|---|---
Response| 0x53 0x59| 0x03| 0x01| 0x00| 0x04| 4B Transfer upgrade package size
per frame| sum| 0x54 0x43| The host computer will follow this the size of the
response at this point to determine how long the how long a firmware packet
needs to be sent information
Upgrade package transmission| Send| 0x53 0x59| 0x03| 0x02| 0x00| len+4| 4B
Package offset address + len B Data Packages| sum| 0x54 0x43|
Response| 0x53 0x59| 0x03| 0x02| 0x00| 0x01| 0x01: Received successfully
0x00: Receive Failure|
sum
|
0x54 0x43
|
Ending the OTA upgrade| Send| 0x53 0x59| 0x03| 0x03| 0x00| 0x01| 0x01:
Firmware packag edelivery completed 0x00: Firmware packag edelivery
not completed| sum| 0x54 0x43|
Response| 0x53 0x59| 0x03| 0x03| 0x00| 0x01| 0x0F| sum| 0x54 0x43|
Appendix 1: About the calculation of check digit
Let’s take the command to send a human presence information query as an
example.
The data construction for the presence information query confirmed by the
protocol table above is
Frame header: 0x53 0x59
Control word: 0x80
Command word: 0x81
Length identifier: 0x00 0x01
Data: 0x0F
Checksum: 1Byte (SUM)
End of frame: 0x54 0x43
Combined into a complete instruction as follows
53 59 80 81 00 01 0F sum 54 43
Check digit sum : 0x53 + 0x59 + 0x80 + 0x81 + 0x01 + 0x0F
(0x53 + 0x59 + 0x80 + 0x81 + 0x00 + 0x01 + 0x0F) = 0x01BD
The lower byte is sum = 0xBD
So the complete existence information query instruction is: 53 59 80 81 00 01
0F BD 54