Eldercare: stay home longer: Part 1

What:
I am interested in making a monitor for my parents. They are elderly and do not want to move out of their home, and are at the stage where if we don't hear from them after a while we get worried. I am at the age (51) where my college friends are also going through similar issues. My goals for this project are:
- Private + secure. No cameras.
- Receive notification of any change in patterns of movement.
- Sleep monitoring
- Notify caretaker of short and long term trends (slowing down, changing gait, sleeping less)
- Easy to install (eventually has its own built in cell phone)
- Speakerphone (this might be a separate product that links to this one)
- Integration into Home Assistant for adding sensors (nice to have)
- Gait tracking (this might be a separate product that links to this one)
Why:
There are only going to be more older people in this world as humans live longer and the 'boomer' generation ages. The number of Americans ages 65 and older is projected to increase from 58 million in 2022 to 82 million by 2050 (a 42% increase), and the 65-and-older age group’s share of the total population is projected to rise from 17% to 23%.
As a child of elderly parents and a father of young kids it is a lot to handle. And in fact my sister texted me the other week that she hadn't heard from our mother, it was afternoon, and should she go and check on her? If only we had a moveOmeter I thought!
I had monitor devices, a basic intercom, for our kids in their first couple of years, so why not have them for my elderly parents? But an intercom would not work, 'real time' monitoring wouldn't work in this case. Nor would cameras.
How:
Today's smart watches cover pretty much everything that I would want to know and more.. however there is no real way that my parents would wear them, nor would they be able to keep them charged, and they would likely take them off to sleep. Smart Watches are amazing devices but require a level of maintenance that simply isn't possible with elderly people of a certain age and dexterity.
I quickly found the DF Robot mmWave motion sensors. They seemed perfect. They reported motion via a uart that I could connect to the microcontroller running this. I tried to find the 'catch'. Unlike a lot of other products DF Robot makes, these didn't seem to use a standard chip, or perhaps they had rubbed off the chip number information. So the magic was what was in the chip. This technology could monitor walking, sitting, hearbeat, breathing rate, sleep quality.. it sounded amazing, and all with privacy as it saw humans as a blob of dots. DF Robot has a lot of good videos and information about them.
There are other pieces of the puzzle, but this is the core one. For testing I am ok with wifi as that is quickest to setup, but the end product will have a cell phone so there is zero networking for setup. I'd also like a vibration sensor for gait detection and analysis, but that is almost a different product, and it would likely connect over the wireless network on it's own. Gas sensors for carbon monoxide (CO), natural gas (CH4/LPG) and general air quality would be good (make sure the stove isn't left on).
The form factor would initially be a picture frame, meant to go on a table in a high traffic area. It would even have a backup battery built into it so it would be 'always on' even with internet or power outages.
For the mmWave sensors it looks like there were 2 companies who could have made that chip: Infineon and Texas Instruments. Texas Instruments mmWave chips have built in ARM processors, built in DSP and a lot of examples. It seems like the obvious choice over Infineon, though I haven't done exhaustive research. The likely chip is IWR6843. The dev board that is the IWR6843ISK-ODS.
The cost for the IWR6843ISK-ODS is $210 and it also needs a programming board called MMWAVEICBOOST which is $298. These are steep costs - it will be $508 to get started with getting into the details of these chips. I'll buy the DF Robot sensors for now and see how that functionality works to get to understand the mmWave technology more, and then see if I want to make a commitment to the dev board.
Project Kickoff:
At the beginning of every project I create a google sheet. I make a tab called "BOM" for the final Bill Of Materials, and tabs for the categories I am interested in where the is going to be some research going on. I came up with a dumb name late at night: moveOmeter. Because it is late and I am "in the zone" I believe it to be a decent enough name to purchase the domain, which was surprisingly available, though that might be a clue it's just a great name for me, not for other people. When we come up with a better name we can change it. DF Robot has some different models of their mmWave motion sensors. They seem perfect for remote elderly monitoring, and it seems like the technology is already being used by other products. It's a bit of a course interface and is not to the level of detail that I want, but it is also a functional sensor that I can buy for a fair amount compared to the cost of the individual chips.
Microcontroller
For a processor it seems like the ESP32 makes sense initially as it's wifi integration is tight. I normally like to use teensy, but the cost of that is high, and likely I won't need all that processing power. As I choose parts I am keeping in mind of the ability to manufacture this in small quantities.
I also like inherent compatibility, and the ADAFRUIT ESP32-C6 FEATHER is part of the Adafruit Feather standard, ESP32-C6 processor and wifi, and also has 802.15.4 (Thread, Zigbee®) for integration into Home Assistant (likely via matter? this is a new space for me). Boards released by Adafruit usually have a good deal of support, though I program in classic Arduino, and a lot of their tutorials are moving towards micro-python.
I often use platform.io for the IDE instead of the Arduino environment, though there is sometimes a lot of setup, so I'll start with the Arduino IDE. This board does not support UF2, which is new for me, and I'm hoping there aren't any repercussions from that. The number one rule is not to jump too far technically and get mired down in technical issues with a project like this. I want to get a prototype working as soon as possible so I can begin testing this - I do not have time to get stuck with a bootloader issue. Hopefully this is mitigated by going with the Adafruit board as they generally have really good support for their products.
There is another catch: "Another thing to be aware of, is the ESP32-C6 does not have as many GPIO as the ESP32-S2 or ESP32-S3, so A2 is the same GPIO pin as IO6 and A3 is the same pin as IO5. However, this gives it the most compatibility with our existing FeatherWings."
Adafruit has, as always, a really good hookup guide for the Adafruit ESP32-C6 Feather. Here are the pinouts.
Power
I will likely just be powering the board via USB C. For a simple prototype it would be great if I could just siphon power off the ESP board. Initially I don't care about a battery, but later on when we have a cell modem it would be interesting to have a battery backup to withstand power outages, or at least have it as an option. Just using Wifi for communicating means if power goes out then wifi goes out, so a battery backup is moot.
There is a 3.3v LDO regulator on the board that supplies power to the neopixel and the i2c and has power available on the 3.3v pins.
The power requirements for the C1001 are 5V and it consumes under 100mA, plenty for the onboard LDO except that is 3.3V. The DFRobot website has a really nice integration guide for the C1001, though it looks like it is connecting to a 5v controller. The ESP32-C6 is a 3.3v chip, as is the ESP32-S3 which is used in their wiring diagram. I found information about the UART voltage level on this site: UART Interface: 3.3 V TTL @ 115 200 bps.
There seems to be plenty of information about this DF Robot sensor so far, building this is hardly a novel product. I feel like my interest will be more in the firmware that runs on the chip after this initial prototype is working.

One limitation with the Adafruit board is it has only 1 uart. It is possible to do a bit banging pretend uart but I never liked those. I am ok this time using it, but I have the ESP32-S3 in my sights for when I want multiple of these, though it does not have 802.15.4, which could be added easily via uart, which then takes up a uart... I'm sticking with Adafruit because it is simple and should be well established and I can toss on another feather (potentially a display?) if I need to.
I am ordering an air pressure sensor as well.. I'm hoping that by monitoring air pressure in real time I can detect when doors or windows are opened/closed. Just to have a bit of data in the background. The sensitivity of the DPS310 is around 0.002 hPa or 0.2 Pa resolution and it can do about 32hz sampling rate with a ~±0.5 Pa precision. (8 hz for higher precision)
Parts are ordered, waiting for them to arrive. In the meanwhile I'll focus on firmware + software. For firmware I might create an emulator to emulate the C1001, helpful for creating test cases as well.