seeed studio MR60FDA1 60GHz mmWave Fall Detection Pro Module
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.
Power supply can refer to the following circuit design

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
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 30 s |
| DP2: Fall Alarm | Instantly report when fall alarm conditions are met |
| DP3: Stationary residence alarm | Abnormal hold stationary for 5 minutes, alarm |
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
Frame structure definition and description
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 |
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;
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 | 0x0F | sum | 0x54 0x43 | Report per minute |
| Module Reset | Send | 0x53 0x59 | 0x01 | 0x02 | 0x00 | 0x01 | 0x0F | sum | 0x54 0x43 | ||
| Response | 0x53 0x59 | 0x01 | 0x02 | 0x00 | 0x01 | 0x0F | sum | 0x54 0x43 | |||
| Information Inquiry | |||||||||||
| Product Information |
Product Model | Send | 0x53 0x59 | 0x02 | 0xA1 | 0x00 | 0x01 | 0x0F | 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 | 0x0F | sum | 0x54 0x43 | ||
| Response | 0x53 0x59 | 0x02 | 0xA4 | 0x00 | len | len B Firmware version | sum | 0x54 0x43 | |||
| Function Category | Function Description | Transfer direction | Frame header | Control word | Command word | Length Identification | Data | Checksum field | End of frame | Note | |
|
Working Status | Initialization completion message | Report | 0x53 0x59 | 0x05 | 0x01 | 0x00 | 0x01 | 0x0F | sum | 0x54 0x43 | |
| Radar failure report | Report | 0x53 0x59 | 0x05 | 0x02 | 0x00 | 0x01 | 0x01: Radar chip anomaly 0x02: Encryption anomaly | sum | 0x54 0x43 | ||
| Working hours | Report | 0x53 0x59 | 0x05 | 0x03 | 0x00 | 0x04 | 4B working hours | 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 0x00: Incomplete | sum | 0x54 0x43 | |||
|
Radar installation information | Installation height setup | Send | 0x53 0x59 | 0x06 | 0x02 | 0x00 | 0x02 | 2B height information | sum | 0x54 0x43 | Height in centimeters, step length in 1 cm |
| Response | 0x53 0x59 | 0x06 | 0x02 | 0x00 | 0x02 | 2B height information | sum | 0x54 0x43 | |||
| Query installation height | Send | 0x53 0x59 | 0x06 | 0x82 | 0x00 | 0x01 | 0x0F | sum | 0x54 0x43 | ||
| Response | 0x53 0x59 | 0x06 | 0x82 | 0x00 | 0x02 | 2B height information | sum | 0x54 0x43 | |||
| Proactive reporting of human presence information | |||||||||||
| Human presence detection function | 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 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 | |
| Reporting of height percentage | Report | 0x53 0x59 | 0x83 | 0x0E | 0x00 | 0x06 | 1B: High 8 bits of the total number of heights 1B: Low 8 bits of the total number of heights 1B: 0-0.5m height ratio 1B: 0.5-1m height ratio 1B: 1-1.5m height ratio 1B: 1.5-2m height ratio | sum | 0x54 0x43 | The height percentage of the total percentage reaches 100. which height percentage is large, the movement is in which range. | |
| Information Inquiry | |||||||||||
| 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 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 | ||
| Function Category | Function Description | Transfer direction | Frame header | Control word | Command word | Length Identification | Data | Checksum field | End of frame | Note | |
| Fall detection reporting and setting | |||||||||||
|
Fall detection function | Fall monitoring function switch | Send | 0x53 0x59 | 0x83 | 0x00 | 0x00 | 0x01 | 0x01: On 0x00: Off | sum | 0x54 0x43 | |
| Response | 0x53 0x59 | 0x83 | 0x00 | 0x00 | 0x01 | 0x01: On 0x00: Off | sum | 0x54 0x43 | |||
| Fall status | Report | 0x53 0x59 | 0x83 | 0x01 | 0x00 | 0x01 | 0x00: Not fallen 0x01: Fall | sum | 0x54 0x43 | Report when status changes | |
| Fall time setting | Send | 0x53 0x59 | 0x83 | 0x0C | 0x00 | 0x04 | 4B time | sum | 0x54 0x43 | Value range: 5-180 seconds, unit: seconds | |
| Response | 0x53 0x59 | 0x83 | 0x0C | 0x00 | 0x04 | 4B time | sum | 0x54 0x43 | |||
| Stationary residence state | Report | 0x53 0x59 | 0x83 | 0x05 | 0x00 | 0x01 | 0x00: No stationary residency 0x01: There is a stationary residency | sum | 0x54 0x43 | Report when status changes | |
| Residence time setting | Send | 0x53 0x59 | 0x83 | 0x0A | 0x00 | 0x04 | 4B time | sum | 0x54 0x43 | Value range: 60-3600 seconds, unit: seconds | |
| Response | 0x53 0x59 | 0x83 | 0x0A | 0x00 | 0x04 | 4B time | sum | 0x54 0x43 | |||
| Residence switch setting | Send | 0x53 0x59 | 0x83 | 0x0B | 0x00 | 0x01 | 0x01: On 0x00: Off | sum | 0x54 0x43 | ||
| Response | 0x53 0x59 | 0x83 | 0x0B | 0x00 | 0x01 | 0x01: On 0x00: Off | sum | 0x54 0x43 | |||
| Fall sensitivity setting | Send | 0x53 0x59 | 0x83 | 0x0D | 0x00 | 0x01 | 1B Sensitivity | sum | 0x54 0x43 | Value range: 0-3 | |
| Response | 0x53 0x59 | 0x83 | 0x0D | 0x00 | 0x01 | 1B Sensitivity | sum | 0x54 0x43 | |||
| Height accumulation time setting | Send | 0x53 0x59 | 0x83 | 0x0F | 0x00 | 0x04 | 4B time | sum | 0x54 0x43 | Value range: 0-300 seconds, unit: seconds | |
| Response | 0x53 0x59 | 0x83 | 0x0F | 0x00 | 0x04 | 4B time | sum | 0x54 0x43 | |||
| Information Inquiry | |||||||||||
| Query fall monitoring function switch | Send | 0x53 0x59 | 0x83 | 0x80 | 0x00 | 0x01 | 0x0F | sum | 0x54 0x43 | ||
| Response | 0x53 0x59 | 0x83 | 0x80 | 0x00 | 0x01 | 0x01: On 0x00: Off | sum | 0x54 0x43 | |||
| Query fall status | Send | 0x53 0x59 | 0x83 | 0x81 | 0x00 | 0x01 | 0x0F | sum | 0x54 0x43 | ||
| Response | 0x53 0x59 | 0x83 | 0x81 | 0x00 | 0x01 | 0x00: Not fallen 0x01: Fall | sum | 0x54 0x43 | |||
| Query fall time | Send | 0x53 0x59 | 0x83 | 0x8C | 0x00 | 0x01 | 0x0F | sum | 0x54 0x43 | ||
| Response | 0x53 0x59 | 0x83 | 0x8C | 0x00 | 0x04 | 4B time | sum | 0x54 0x43 | |||
| Query stationary residence state | Send | 0x53 0x59 | 0x83 | 0x85 | 0x00 | 0x01 | 0x0F | sum | 0x54 0x43 | ||
| Response | 0x53 0x59 | 0x83 | 0x85 | 0x00 | 0x05 | 0x00: No stationary residency 0x01: There is a stationary residency | sum | 0x54 0x43 | |||
| Query residence time | Send | 0x53 0x59 | 0x83 | 0x8A | 0x00 | 0x01 | 0x0F | sum | 0x54 0x43 | ||
| Response | 0x53 0x59 | 0x83 | 0x8A | 0x00 | 0x04 | 4B time | sum | 0x54 0x43 | |||
| Query residence switch | Send | 0x53 0x59 | 0x83 | 0x8B | 0x00 | 0x01 | 0x0F | sum | 0x54 0x43 | ||
| Response | 0x53 0x59 | 0x83 | 0x8B | 0x00 | 0x01 | 0x01: On 0x00: Off | sum | 0x54 0x43 | |||
| Query fall sensitivity | Send | 0x53 0x59 | 0x83 | 0x8D | 0x00 | 0x01 | 0x0F | sum | 0x54 0x43 | Value range: 0-3 | |
| Response | 0x53 0x59 | 0x83 | 0x8D | 0x00 | 0x01 | 1B Sensitivity | sum | 0x54 0x43 | |||
| Query height percentage | Send | 0x53 0x59 | 0x83 | 0x8E | 0x00 | 0x01 | 0x0F | sum | 0x54 0x43 | ||
| Response | 0x53 0x59 | 0x83 | 0x8E | 0x00 | 0x01 | 1B: High 8 bits of the total number of heights 1B: Low 8 bits of the total number of heights 1B: 0-0.5m height ratio 1B: 0.5-1m height ratio 1B: 1-1.5m height ratio 1B: 1.5-2m height ratio | sum | 0x54 0x43 | The height percentage of the total percentage reaches 100. which height percentage is large, the movement is in which range. | ||
| Query Height accumulation time | Send | 0x53 0x59 | 0x83 | 0x8F | 0x00 | 0x01 | 0x0F | sum | 0x54 0x43 | Value range: 0-300 seconds, unit: seconds | |
| Response | 0x53 0x59 | 0x83 | 0x8F | 0x00 | 0x01 | 4B time | sum | 0x54 0x43 | |||
| Function Category | Function Description | Transfer direction | Frame header | Control word | Command word | Length Identification | Data | Checksum field | End of frame | Note | |
| OTA (Valid for version 102 and above) | |||||||||||
| 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 0x02: Receive Failure | sum | 0x54 0x43 | |||
| Ending the OTA upgrade | Send | 0x53 0x59 | 0x03 | 0x03 | 0x00 | 0x01 | 0x01: Firmware package delivery completed 0x02: Firmware package delivery 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


















