MSR-2

mmWave CO2 Multisensor

Setup

Setup

Getting Started

Please refer to the general getting started article

 

Setup

Sensor Definitions

Once added to Home Assistant you can configure different settings for your sensor. Below is what each setting does.

Controls

Sensors

Configuration

Setup

Bluetooth Tracking with MSR-2

Please refer to the general Bluetooth tracking article
Setup

General Tips

MSR-2
20240514_120755.jpg

20240514_120819.jpg
20240514_121002.jpg
Light Sensor (LTR-390UV)

20240514_123742.jpg

Mounting

LD2410 Zone map.png

LD2410 Gates.png

ld2410_mounting_hor-1.jpeg

Gate and FOV Visualization

ld2410 table.png

MSR-1 radar map.png

Radar gates Colored.png

Increased ESP Temperature

If you are experiencing higher than normal ESP temperatures ~140+ degrees F then changing the wifi power save mode option might help decrease the temperature. Here is the link to the ESPHome WiFi Component Power Save Mode.

Power Save Mode
The WiFi interface of all ESPs offer three power save modes to reduce the amount of power spent on WiFi. While some options can reduce the power usage of the ESP, they generally also decrease the reliability of the WiFi connection, with frequent disconnections from the router in the highest power saving mode.

NONE (least power saving, Default for ESP8266)
LIGHT (Default for ESP32)
HIGH (most power saving)

wifi:
  # ...
  power_save_mode: none

The code above can be added to the devices .yaml through the ESPHome addon edit button.

(Thank you for the suggestion, Brian!)
(Referenced from ESPHome website)

Setup

How To Change The Update Frequency Of Sensors

How To Change The Update Frequency Of Sensors

Calibrating And Updating

Calibrating And Updating

Updating MSR-2 Firmware

Please refer to the general firmware update article
Calibrating And Updating

How To Tune mmWave Using Home Assistant

If you're experiencing false triggers, we recommend using Radar Engineering Mode (REM) to monitor the gate energy and adjust the gate threshold to eliminate them.

Here is a quick introduction video of the ld2410b gates and zones.

Here is a video of how to tune the mmWave sensor using radar engineering mode,

  1. Open Home Assistant
  2. Navigate to Settings>Devices & services>ESPHome>Select the MSR-2
  3. Scroll down to the Configuration section
  4. Turn on Radar Engineering Mode (REM)
    Configuration.png
  5. Scroll down to the Diagnostic section and you will see that REM shows the move and still energy for gates 0-8
    Diagnostic.png
  6. The gates are different distances from the sensor
    ld2410 table.pngMSR-1 radar map.png
  7. Moving the gate still and move threshold slider to the right increases the amount of energy needed to trigger the sensor. Do this if you want the gate to be less sensitive.
    High Threshold.png
  8. Moving the gate still and move threshold slider to the left decreases the amount of energy needed to trigger the sensor. Do this if you want the gate to be more sensitive.
    Low Threshold.png

Alternate Method

Thanks to MakeItWorkTech for this method!

"I ended up maxing out the sliders on all gates and then bringing them down just enough to pick up human presence. Definitely easier than using the LD2410B app."

Example

- You may have an open-concept kitchen and living room, and you want the MSR-1 to activate your under-cabinet lights only when you're in the kitchen.

Here's how:

  1. Stand in the desired trigger locations.
  2. Observe the gate energy.
  3. Adjust the gate threshold slider to the right, increasing the energy required to trigger the mmWave sensor. This ensures that your kitchen lights only come on when you're actually in the kitchen, not just walking by in the living room. Also, you can lower the gate threshold in the kitchen by moving the slider to the left. This makes the mmWave sensor more sensitive, even when standing still. This way, you avoid having the lights go off while reading a recipe or doing the dishes.

- From clarinetJWD, "Engineering mode is what I was missing at first. I did exactly that, and now detection is basically perfect! My under cabinet lights now come on to max brightness whenever someone is in the kitchen, and return to their previous value when they leave. Next up is replacing the really flaky motion switch in my garage so it stops shutting off when I'm doing a project at the workbench! Thanks, these are really good.

References

Calibrating And Updating

How To Tune mmWave Using HLKRadarTool

Auto-Calibration (Average, Maximum, and Intelligent)

1. Download the HLKRadarTool app for either Android or Apple

2. Ensure the mmWave radar you want to tune has Radar Control Bluetooth turned on. Home Assistant > Settings > Devices & services > ESPHome Devices > Select Device > Scroll down and toggle on Radar Control Bluetooth

Radar Control Bluetooth.png

3. Open the app and select your device

Find Device.png

4. Turn on Engineering Mode

EM.png

5. Select More and then select Parameter settings

More and PS.png

6. Select Detect background noise

DBN.png

7. Insert Delay detection and Detection time values. (For iPhone users Delay detection cannot be 0). Then select Start. This will give us our reference values so we can auto-calibrate the mmWave sensor.

DD, DT and Start.png

8. Select Back to navigate to the Parameter settings. Then select one of the auto-calibration buttons.

Average
- Sets the gate sensitivity to the average move and still energy

Average.png

Maximum
- Sets the gate sensitivity to the maximum move and still energy

Max.png

Intelligent
- Sets the gate sensitivity equal to or just above the maximum move and still energy

Intelligent.png

9. Now your mmWave should be tuned to your environment!

Manual Calibration

1. Follow steps 1-5 above

2. Select Motion or Static sensitivity, change it to your desired value, and select Set

Manual.png

3. Now your mmWave should be tuned to your environment!

Calibrating And Updating

MSR-2 Temperature & Humidity Offsets

Simple Offsets for Temperature and Humidity:

Please add these to the bottom of your esphome yaml for your device then click save and install. Once you are finished, you will have two new boxes inside the home assistant esphome integration device page for your device where you can fill in an offset. Give them up to 1minute to take effect!

sensor:
  - id: !extend scd40
    humidity:
      name: "Humidity"
      id: "humidity"
      filters:
        - lambda: return x - id(scd40_humidity_offset).state;
    temperature:
      name: "Temperature"
      id: "temperature"
      filters:
        - lambda: return x - id(scd40_temperature_offset).state;
number:
  - platform: template
    name: SCD40 Humidity Offset
    id: scd40_humidity_offset
    restore_value: true
    initial_value: -18.86
    min_value: -70.0
    max_value: 70.0
    entity_category: "CONFIG"
    unit_of_measurement: "%"
    optimistic: true
    update_interval: never
    step: 0.1
    mode: box
  - platform: template
    name: SCD40 Temperature Offset
    id: scd40_temperature_offset
    initial_value: 14.54
    min_value: -70.0
    max_value: 70.0
    entity_category: "CONFIG"
    unit_of_measurement: "°C"
    optimistic: true
    update_interval: never
    step: 0.1
    mode: box

DPS310 & SCD40 Sensors: Overcoming Temperature & Humidity Reading Challenges

The DPS310 and SCD40 sensors are known for their precision in measuring temperature and humidity. However, like all sensor systems, they can sometimes provide inaccurate readings due to various factors. In the case of the DPS310 and SCD40 sensors, one significant challenge arises from the heat produced by the ESP chip, which can alter the environment inside its enclosure, thereby skewing the readings. 

Adjusting the DPS310 and SCD40 Temperature Offset

For users who want to fine-tune their sensors, the DPS310 and SCD40 Temperature Offset entities can be manually adjusted to match the conditions in their home. The offset values are subtracted from the raw temperature & humidity readings in the firmware to update the sensor readings in the home assistant entity. For example: scd40_temperature entity = raw scd40 temperature reading - scd40_offset. 

By default, these offsets are preset to values based on our NIST certified thermometer, it's important to note that these values are calibrated for our environment. They might not be accurate for all settings. Therefore, by using a reference thermometer, users can adjust the difference between the readings to get a more accurate representation.  

Users will also notice the dps310_temperature_calibratedscd40_humidity_calibrated, and scd40_temperature_calibratedentities. These values utilize the linear filter in the ESPHome firmware to adjust the readings based on our collected data. Again, due to environmental differences, these might not always be precise.

Modeling the Relationship Between Sensors

Another approach to getting accurate readings is to model the relationship between the ESP temperature and the other sensors compared against a reference temperature. This can be achieved by creating a template sensor in Home Assistant that employs a decision tree or our regression coefficients.

Here's an example that can be added to a configuration YAML:

sensor:
  - platform: template
    sensors:
      estimated_reference_temperature:
        friendly_name: "Estimated Temperature"
        unit_of_measurement: '°C'
        value_template: >
          {{
            0.3228 * states('sensor.apollo_msr_1_a79e24_esp_temperature') | float +
            0.8702 * states('sensor.apollo_msr_1_a79e24_scd40_temperature') | float +
            -0.1285 * states('sensor.apollo_msr_1_a79e24_dps310_temperature') | float +
            -0.0491 * states('sensor.apollo_msr_1_a79e24_scd40_humidity') | float +
            0.0851
          }}


      estimated_reference_humidity:
        friendly_name: "Estimated Humidity"
        unit_of_measurement: '%'
        value_template: >
          {{
            -1.2468 * states('sensor.apollo_msr_1_a79e24_esp_temperature') | float +
            -2.1959 * states('sensor.apollo_msr_1_a79e24_scd40_temperature') | float +
            2.9604 * states('sensor.apollo_msr_1_a79e24_dps310_temperature') | float +
            0.2380 * states('sensor.apollo_msr_1_a79e24_scd40_humidity') | float +
            1.8283
          }}

For users who want to gather their own data with a reference sensor and MSR-2 within their home, we recommend logging data to a CSV using the following YAML entries:

#Configuration.yaml
notify:
  - platform: file
    name: sensor_csv_log
    filename: /config/sensor_log.csv
    timestamp: False

#Automations.yaml
  - id: log_sensor_data_to_csv
    alias: "Log Sensor Data to CSV"
    trigger:
      platform: time_pattern
      minutes: "/1"  # Log data every minute to match reference sensor
    action:
      - service: notify.sensor_csv_log
        data_template:
          message: >
            {{ now().strftime('%Y-%m-%d %H:%M:%S') }},
            {{ states('sensor.apollo_msr_1_a79e24_esp_temperature') | default('NA') }},
            {{ states('sensor.apollo_msr_1_a79e24_scd40_temperature') | default('NA') }},
            {{ states('sensor.apollo_msr_1_a79e24_dps310_temperature') | default('NA') }},
            {{ states('sensor.apollo_msr_1_a79e24_scd40_humidity') | default('NA') }},
            {{ states('number.apollo_msr_1_a79e24_dps310_temperature_offset') | default('NA') }},
            {{ states('number.apollo_msr_1_a79e24_scd40_humidity_offset') | default('NA') }},
            {{ states('number.apollo_msr_1_a79e24_scd40_temperature_offset') | default('NA') }},
            {{ states('sensor.apollo_msr_1_a79e24_uptime') | default('NA') }}

The Interrelation of Temperature and Humidity

It's important to understand that temperature and humidity share an interdependent relationship. When the air temperature rises, its capacity to hold moisture increases, which can decrease relative humidity levels. Conversely, when the temperature falls, the air's capacity to hold moisture decreases, leading to increased humidity. This relationship plays a significant role in how sensors detect and interpret readings, making it even more crucial to ensure accuracy.

Advanced Accuracy with GPIO

For those seeking the highest accuracy, an advanced solution is available. The exposed mezzanine connector on the back of our Apollo boards can be utilized to connect a temperature/humidity sensor. This modification can dramatically improve both temperature and humidity readings, providing data that's as accurate as possible.


Calibrating And Updating

CO2 Calibration For MSR-2

Please refer to the General CO2 Calibration article

Examples

Examples

MSR-2 Home Assistant Dashboard Examples

Radar Scatter Plot With Apex Charts For MSR-2


JPE Apex Charts 3.png

type: custom:apexcharts-card
header:
  show: true
  title: MSR-1 Radar Distance
  show_states: true
  colorize_states: true
apex_config:
  legend:
    position: top
    horizontalAlign: center
    offsetX: -80
    offsetY: 0
experimental:
  brush: true
brush:
  selection_span: 4h
graph_span: 24hr
chart_type: scatter
series:
  - entity: sensor.apollo_msr_1_a79e14_radar_detection_distance
    name: Detection
    stroke_width: 1
    color: green
    show:
      in_brush: true
      extremas: true
  - entity: sensor.apollo_msr_1_a79e14_radar_moving_distance
    name: Moving
    stroke_width: 1
  - entity: sensor.apollo_msr_1_a79e14_radar_still_distance
    name: Still
    stroke_width: 1

CO2 Charts

Home Assistant Sensor

CO 2 Graph.png

graph: line
type: sensor
entity: sensor.apollo_msr_1_a79e38_co2
detail: 2
name: Bedroom CO2
hours_to_show: 24

Custom: Plotly Graph Card

Plotly CO2 Graph.png

type: custom:plotly-graph
entities:
  - entity: sensor.apollo_msr_1_a79e38_co2
hours_to_show: 24
refresh_interval: 10
title: Bedroom CO2

Home Assistant Guage

CO2 Guage.png

type: gauge
entity: sensor.apollo_msr_1_a79e38_co2
needle: true
unit: ppm
min: 0
max: 3000
severity:
  green: 0
  yellow: 1000
  red: 2000
Examples

Using MSR-2 Buzzer

This guide will walk you through using the buzzer on your MSR-2. You can also use the "action" in an automation in Home Assistant.

  1. Open Home Assistant and navigate to developer tools in the bottom left

Screenshot 2023-11-01 at 10.52.38 PM.png

2. Click on services

3. Choose your MSR-2's buzzer (You can type in buzzer to find it easier)

4. Put a rtttl tone into the the string box

5. Click on the ACTIONS button in bottom right

image.png

Examples

How To Use The Apollo GPIO Header To Control An LED Strip

This tutorial will guide you through setting up one of our MSR-2 devices (works with any mezzanine port on any Apollo Device) with the optional $4.99 GPIO Header which adds pins for you to easily add functionality to your device! In this tutorial, however, we will be focusing on adding an LED strip to your Apollo device.

Materials Needed for tutorial:

You are limited to 300mA of power output from the 5v port. You can either attach an external power supply and power the MSR-2 via 5v and gnd pins or work with the limited power output of the port

GPIO Pinout

Above is an image of the GPIO Header and its pinouts. We can use ports 2,4,6,7 for our data channel to an LED strip or multiple LED strips. We will also use the top two ports which are ground and 5v for power.

Did you know you can power the esp32 from the 5v and gnd pin? That means you can connect an external power supply and power it without the side USB port being used! This also allows for more power to be given to your LEDs!

We cannot use the IO ports 0,1,18, or 19 for LEDs but you can use ports 0 and 1 for i2c sensors.

Connecting the GPIO Header to the MSR-2

The first thing we will do is remove our MSR-2 back plate and connect our GPIO Header to our MSR-2 and then put the new GPIO back plate on (blue).

Step 1. Remove the backplate of the MSR-2

 

Step 2. Line up the Xs shown on the msr-2 and the GPIO Header. They should both be facing in the same direction as shown below.

Step 3. Gently push down onto the GPIO Header as shown below:

Step 4. Confirm the GPIO Header is seated properly as shown below.

Step 5. Slide the GPIO Header back plate for the MSR-2 over your sensor and gently push down until it clicks into place.

If the back plate does not gently go onto the sensor please investigate and confirm it is in the right orientation.

Connecting DuPont pins to proper GPIO ports

Now we need to reference the GPIO pinout we looked at above and then connect three wires. You will need three male-to-male DuPont wires included in your kit. I suggest using red for power aka 5v, White for ground aka GND, and green for data aka port IO7. Most LED strips will also have this same color scheme and it's easier to match like colors together.









You can add a bit of hot glue to the Dupont wires to hold them together. DO NOT put hot glue into the GPIO Header's female pins that will ruin the addon. I am only suggesting that you can hot-glue the Dupont pins outer shell themselves together to stiffen them up.

5QMWMycqBmvOz_mlKdoTbZwkC-4__REi8A.jpg

Connecting DuPont pins to LED Strip

Next, we need to connect the other side of the Dupont pins to the LED strip. Most likely your LED strip will have a JST-SM connector which is a 3amp max connector with three wires connected: red for 5v, green for data, and white for gnd. We will be matching up our red, green, and white wires already attached to the GPIO add-on pins in the MSR-2 (using IO7 as the data pin for this tutorial)

 

Make sure to connect to the correct side of the LED strip. The led strip will have an arrow going down the led strip showing one direction for the data line. you want the data channel going FROM the msr-2 TO the led strip going in a "forward" direction as shown below.

 

Edit the YAML of your MSR-2 to let it know about your new LED strip

Finally, we need to tell the MSR-2 that we connected an LED strip. We need to tell it how many LEDs we have and we need to tell it that it's our second LED since the built-in LED is the first. This tutorial assumes you are comfortable with the ESPHome dashboard.

Step 1. Open ESPhome Dashboard and click edit to bring up the yaml your sensor is currently using.

You will see some YAML code here and you do NOT want to touch anything above line 20. If you need to, click your cursor at the end of wifi_password and hit enter to create a new line then make sure you backspace until you are "flush" with the line numbers like how wifi: is.

Step 2. Copy the code below and paste it to line 20 in your ESPHome yaml for this device.

light:
  - platform: esp32_rmt_led_strip
    id: bed_led
    name: "Bed LED"
    pin: GPIO7
    rmt_channel: 1
    default_transition_length: 0s
    chipset: WS2812
    num_leds: 60
    rgb_order: grb
    effects:
      - pulse:
          name: "Slow Pulse"
          transition_length: 1000ms
          update_interval: 1000ms
          min_brightness: 50%
          max_brightness: 100%
      - pulse:
          name: "Fast Pulse"
          transition_length: 100ms
          update_interval: 100ms
          min_brightness: 50%
          max_brightness: 100%
      - addressable_rainbow:

This is where you can change your number of LEDs as well as the GPIO pin used for the LED data!
Make sure to check out https://esphome.io/components/light/index.html#light-effects for all the effects supported such as addressable scan effect!
Step 3. Confirm you do not have any red lines showing errors in your code

You change the rmt_channel to 1 because 0 is being used by the built-in LED of the MSR-2.

Step 4. Hit save and then install in the top right. It should have a popup where you select "wirelessly" then it will begin compiling the firmware and finally installing the compiled firmware to your MSR-2.

Step 5. Go into home assistant and confirm you now have a new light entity called Bed LED

Step 6. Click on the name "Bed LED" circled and it will pop up a color picker. You can then choose the color wheel option to pick any color of the rainbow, or select "effect" and choose an effect.

   

That's all folks! Thanks to Smart Home Sellout for putting this tutorial together!

Examples

MSR-2 Automation Guide

Examples

MSR-2 Examples From GitHub

MSR-2 Examples from GitHub

Examples

MSR-2 + Alarmo Home Security Install

My grandmother wanted a security system that would alert her when there was movement in her home after she had gone to bed. So, I set up three of our Apollo Automation mmWave sensors. These devices, plus the Alarmo add-on, quickly and easily allowed me to install a fully local, private, cloud-free, and no monthly subscription security system. She can arm/disarm it with one button on her Home Assistant dashboard, and it makes her feel much safer. This guide assumes you already have a motion/presence sensor installed on HA.

1. Install HACS
2. Install Alarmo and the Alarmo Card (Pretty Arm and Disarm card for your HA dashboard)

Alarmo 7.png

Alarmo 1.png

3. Find Alarmo on the left, select the Sensors tab, and toggle on the sensor entities that you would like to use for your alarm system.

Alarmo 2.png

4. Now select the Actions tab and under Condition > Event > Select "Alarm is triggered". You can also select the device you would like to receive a notification on under Task > Target > Select Device (Phone, tablet, etc.)

Alarmo 3.png

5. You can change the Title, Message, and Name of the alarm notification.

Alarmo 4.png

6. After saving that action we can add another one that will turn on our sensor lights and/or make the onboard piezo buzzers play an alarm sound. Uner Entity select your sensors RGB light.

Alarmo 5.png

7. Under Action select Turn On and now your sensors RGB lights will turn on when the alarm is triggered.

Alarmo 6.png

8. And that's it, seriously... Now you can enjoy a free and local security system.

We hope this was helpful and please let us know if there are any questions!

Additional Info

Additional Info

mmWave Presence Sensor Comparison

Column1 Apollo MSR-1 Apollo MSR-2 Everything Presence One Kit Everything Presence Lite Kit Screek Human Sensor 1U Screek Human Sensor 2A Aqara FP1 Aqara FP2 Apollo MTR-1
Price (USD) $ 34.99 $ 34.99 $ 78.00 $ 37.00 $ 25.99 $ 29.99 $ 49.99 $ 82.99 $ 36.99
Motion Detection                  
mmWave LD2410B LD2410B SEN0395 LD2450 LD2410C LD2450 BGT60TR13C IWR6843 LD2450
Detection Distance (m) 6 6 9 6 6 6 5 6 to 8 6
Detection Zones 3 zones and 9 gates (adjustable and distance based) 3 zones and 9 gates (adjustable and distance based)   3 zones   3 zones x 30 zones 3 zones
Target Tracking 1 1 1 2-3 (3 not great) 1 2-3 (3 not great) x 3-5 (not great above 3) 2-3 (3 not great)
PIR     Panasonic            
Connection Method                  
Wi-Fi ESP32-C3-MINI ESP32-C3-MINI ESP32-WROOM-32 ESP32-WROOM-32 ESP32-S2 ESP32-C3   ESP32-WROOM-32U ESP32-C3-MINI
Zwave             x    
Zigbee             x    
Bluetooth ESP32-C3-MINI ESP32-C3-MINI ESP32-WROOM-32 ESP32-WROOM-32 ESP32-S2 ESP32-C3   ESP32-WROOM-32U ESP32-C3-MINI
ESPHome ESP32-C3-MINI ESP32-C3-MINI ESP32-WROOM-32 ESP32-WROOM-32 ESP32-S2 ESP32-C3     ESP32-C3-MINI
Case / Stand                  
Case Included x x $ 8.00 x x x x x x
Cable       x x x x x
Stand $4.99 (Optional) $4.99 (Optional) Included with case purchase x     x x  
Outlet Mount $6.99 (Optional) $6.99 (Optional)             $6.99 (Optional)
Outlet Mount w/ Wall Plug $12.98 (Optional) $12.98 (Optional)             $12.98 (Optional)
Size (mm) 40x32x13 40x24x15     36.7x30x13.8 56.9x56.9x14.3 52x45x36 64x64x29.5  
Additional Features                  
LED x x x x         x
RGB LED x x             x
Temp/Humidity x x (Humidity optional with SCD40) x           x (Humidity optional with SCD40)
Light/LUX x x x x         x
UV/UV Index x x             x
GPIO x
$ 4.99 (Optional with GPIO Header) x           $ 4.99 (Optional with GPIO Header)
Piezo Buzzer x x             x
CO2 SCD40 $20 (Optional) SCD40 $20 (Optional)             SCD40 $20 (Optional)
Works with multiple mmWave       x        
                   
Country USA USA EU EU China China China China USA
Product Link Apollo MSR-1 Apollo MSR-2 Everything Presence One Kit Everything Presence Lite Kit Screek Human Sensor 1U Screek Human Sensor 2A Aqara FP1 Aqara FP2 Apollo MTR-1
mmWave LD2410B LD2410B SEN0395 LD2450 LD2410C LD2450 BGT60TR13C IWR6843 LD2450
ESP ESP32-C3-MINI ESP32-C3-MINI ESP32-WROOM-32 ESP32-WROOM-32 ESP32-S2 ESP32-C3   ESP32-WROOM-32U ESP32-C3-MINI

Additional Info

Adding CO2 To MSR-2

This is for the MSR-1 but it is very similar to the MSR-2.


1. Unplug your MSR-2 from power and remove the back

IMG_3784.jpeg

2. Remove the board from the case and orientate it like the below image. In the bottom right there is a black connector. There is an x in the lower right corner of the connector

IMG_3788.jpeg

3. Orientate the CO2 module so the white x on the module is also in the lower right and the gold dot is in the upper left as seen below

IMG_3787.jpeg

4. Align the connector on the back of the CO2 module with the connector on the MSR-2. Once aligned, push down so the CO2 module fully seats itself

IMG_3789.jpeg

5. Put your MSR-2 back in the case and slide the back cover on. Please refer to our CO2 calibration guide to calibrate the CO2 module.

Additional Info

Reducing LD2410 Log Entries In Home Assistant

  1. Open your Home Assistant configuration.yaml
  2. Add this code to the very bottom but use the entity name of your MSR-2
    logbook:
      exclude:
        entities:
          - binary_sensor.hallway_motion_home_security_motion_detection
  3. Check Configuration in Home Assistant developer tools tab to confirm your yaml code is correct.
  4. Restart Home Assistant

Troubleshooting

Troubleshooting

Manually Uploading Code Through ESPHome

If your device becomes unresponsive and you've exhausted the other troubleshooting methods you can upload a fresh set of firmware by following the below guide. The utility does need to be run from Chrome or Edge.

If your device has already been connected to Home Assistant previously please refer to Removing Device From Home Assistant first before proceeding
  1. Plug your MSR-2 into your computer with a quality USBC cable that supports data transfer

  2. Navigate to our installer page and click connect ** Install Page **

  3. Select your Apollo device, it will show with a similar name to the one below, and click connect. If you aren't sure which device it is, you can unplug the MSR-2 and see which disappears.

ComSelection.png

If no device shows, click cancel and then install the recommended driver that shows on the popup. If you have installed the driver, tried different cables, and it still won't work refer here for putting the MSR-2 in bootloader mode and then retry step 3. Putting MSR-2 In Boot Mode Document

  1. Choose to install the new firmware

  1. Wait for the installer to finish

  1. After finishing, check for the Apollo hotspot and connect. This might not show if you previously had the MSR-2 connected to your wifi

  2. Log into Home Assistant and go to the ESPHome addon check to see if you can adopt the device.

If you encounter the below error, please complete the Putting MSR-2 In Boot Mode Document and go back to step 3.

Troubleshooting

Putting The MSR-2 In Boot Mode

This will cover how to put the MSR-2 into boot mode. Sometimes, this is needed to upload new firmware if the device is struggling.

Boot Button Only

  1. Plug in the device
  2. See the photo below to help access the boot button through the top of the case
  3. Use a pin to press and hold the boot button, while holding the boot button plug it back into your computer/power and then release the boot button

20240514_123742.jpg
    4. Continue with uploading the firmware document

Boot and Reset Buttons

  1. Unplug the device
  2. Slide the back of the case off
  3. Remove the device from the case
  4. Plug it back into your computer
  5. Press and hold the boot button, while holding it press and release the reset button, then release the boot button
  6. Continue with uploading the firmware document

20240514_120819.jpg

Troubleshooting

Teardown and Reassembly of the MSR-2

This will cover how to take apart and reassemble the MSR-2 device. This is useful if you are replacing components or to inspect if the mmwave sensor (LD2410B) is seated properly. Sometimes during shipping, this can become loose and cause issues with the accuracy of the sensor.

https://www.youtube.com/watch?v=hkNrhJuMmxI

MSR-2 Reviews


MSR-2 Reviews

Simon Says Home Assistant MSR-2 Review

MSR-2 Reviews

Smart Home Scene MSR-2 Review

Apollo MSR-2 Review: The Smallest Presence Sensor Ever Made

MSR-2 Reviews

Home Tech Innovations MSR-2 Review

MSR-2 Reviews

MostlyChris MSR-2 Review

MSR-2 Reviews

Smart Home Australia MSR-2 Review

Apollo MSR2 Radar Motion Sensor - Small just got tiny !!

MSR-2 Reviews

Michael Leen MSR-2 Review