Show HN: Tommy – Turn ESP32 devices into through-wall motion sensors
54 comments
·October 23, 2025shekhar101
Seems to be based on See through walls by MIT (2013)? Good job porting it to esp32. I was just looking a week ago to do the same thing - basically reproducing this work. I'll definitely try this. https://www.media.mit.edu/projects/seeing-through-walls-comp...
transpute
"ESP32 CSI Toolkit", papers+code, Virginia Commonwealth University, USA https://stevenmhernandez.github.io/ESP32-CSI-Tool/
"Wi-ESP", papers+code, KITS WRL, South Korea, https://wrlab.github.io/Wi-ESP/
"Espressif CSI sample applications", Shanghai, China, https://github.com/espressif/esp-csi
"CSI-MURDER", paper+code, WiFi Sensing countermeasures, EU, https://ans.unibs.it/projects/csi-murder/
mike2872
I believe that was the initial paper which really started the Wi-Fi sensing research. Although a lot of research has come after that. It's a really fascinating technology with a whole range of possibilities beyond just motion and presence sensing.
michaelmior
> No hub required - TOMMY runs as a Home Assistant add-on or on a Linux host (Docker) and uses supporting devices to create a sensing network.
I don't see how either the HA instance or the Linux host can't be viewed as a hub. No hub required feels untrue to me. I assume this question is intended to clarify that some additional device is not necessary, but I think this could be reworded.
victorbjorklund
You are of course correct but in the HA community "no hub required" often should be read as "no addiditonal hub required because HA can communicate directly with it"
teekert
OTOH, when you buy any Bosch, IKEA, Hue, Aqara device, it says on the box: Hub required (and they do mean get our hub and place next to all other hubs. Even though Home Assistant will usually work fine-ok).
So I see where he’s coming from, and I interpreted it as intended.
HnUser12
Don’t the matter compatible ones work with any hub?
mike2872
You're absolutely right. Thanks for the feedback! "No hub required" is misleading. What I meant was "no additional proprietary hub". Meaning, if you're already running Home Assistant or have a Linux machine, you don't need to own a separate device like Zigbee/Z-Wave hub. But yes, the HA instance or Linux host is effectively acting as the hub. I'll update that wording on the site.
michaelmior
I figured that's what you meant and I think it's totally reasonable! I just think the wording could be updated a little. I have a couple ESP32s lying around not doing anything, so I'm looking forward to trying out TOMMY with HA :)
mike2872
I agree. I'm going to find something more suitable :-) Sounds good. Looking forward to hearing about your results!
Moosdijk
I'm hoping you'll open the API some time in the future. This would be great for diy installations with a esp32 hub.
kentt
Fair criticism. I think the generous interpretation of "no hub" means you don't have to buy a specialized hub eg a Smartthings hub.
throitallaway
This is impressive and some of the "coming soon" features are ambitious. So, these devices mesh with each other. Are they like "idle" WiFi connections, or are they chatty? I'm wondering how much spectrum clashing there will be. WiFi can be finicky enough as-is.
mike2872
They send packets to and from each other in a mesh network. It's quite small packets and not a large amount of packets a second. For a standard use case (3-4 zones) the interference is quite low on 2.4Ghz, and almost negligible on either 2.4Ghz (Wi-Fi 6, like the ESP32-C6) or 5Ghz (ESP32-C5).
victorbjorklund
Cool. Going to try it out. I think I sent an "application" to Discord (not a discord pro and never encountered having to apply before so hope I did it correctly)
mike2872
Sounds good. Your application should be approved now. Otherwise let me know.
renshijian
In an age of digital torrents, you choose to lend warmth to ephemeral moments While the world chases faster algorithms and sharper models, you turn quietly to gather what data often forgets—the depth of a gaze, the unspoken story behind a touch You are not building another tool to record time, but crafting a corridor for the human spirit, outside of time. Here, memory is no longer a cold coordinate, but a poem with a pulse Technology will always iterate, but what you guard—those subtle tremors that turn moments into eternities—is precisely the human essence we need to be reminded of in this age of intelligence (A profoundly conceived site. The above is a literary reflection inspired by its aesthetic and its theme of "sense." Hoping it resonates.)
regularfry
Without having the time right now to dig too deep, I have a few questions:
1. Does it have any idea of the range at which motion is happening, relative to the distance between nodes or otherwise?
2. Can it correlate motion with that of another WiFi or Bluetooth device? So if I'm carrying my phone and it can see me moving, can it tell that it's me?
3. What's the movement -> signal latency?
mike2872
Thanks for the questions.
1. As of now it only knows whether there is motion in the zone or not. Actual (x,y) coordinates within the zone are theoretically possible and something I have on the roadmap for 2026.
2. No, it doesn't correlate with other devices currently. But Wi-Fi sensing can theoretically identify who is moving by analyzing how you disrupt the signal. We all have unique movement patterns. I actually have a working proof of concept that can differentiate between me and my girlfriend, but it's very experimental and not stable enough for release yet. Definitely on the future roadmap though.
3. Pretty much instant (around 50ms). The detection happens in real-time as the signal disruption is analyzed.
regularfry
1 and 3: intriguing.
With 2, I'm trying to think how effectively it could replace something like ESPresense. With that you've got a BLE tag with an ID that you can just associate with a person, so there's no learning of moving patterns needed, but getting it to be accurate to a room is a nightmare. It also works when there's no movement, which is convenient, and you can put the tag down if you don't want to be tracked. The ergonomics are just a bit nicer, it's just the resolution that sucks.
stavros
This seems really cool, but unfortunately I can't get it to work. The flasher says it can't open the serial port for most of my ESP32s, and the one that does work goes into a bootloop after I enter the wifi credentials.
mike2872
Could you open a support thread in the Discord channel? Some boards have some quicks to them. But it's all been solved by other users before. I'm sure there's a solution to your board too.
stavros
I did, even though I really hate Discord forums (they have the worst of both worlds between forums and chat, they aren't real-time and they aren't discoverable on the web, but that's a different conversation).
Hopefully someone will be able to help, thanks!
mike2872
I'm glad you made an exception, though. I'll help you get the board flashed.
gingerlime
Very cool. How does it work in an apartment building? both practically not detecting my neighbors movement. But also from a privacy standpoint, can someone spy on me with this technology?
mike2872
Great questions.
Neighbor detection: I haven't had issues with neighbor movement affecting detection in my testing. The devices form a mesh within your defined zone, so they're primarily sensing disruptions between your own nodes. If you do experience false positives, there's a sensitivity adjustment in the dashboard.
Privacy/spying: In TOMMY, I've explicitly disabled the ability to use devices outside your own network - it only works with ESP32s you've flashed and added to your system. Someone would need physical access to place their own devices in your space.
That said, Wi-Fi sensing as a broader technology could theoretically be used for surveillance if someone controlled devices on both sides of your walls. It's similar to other wireless technologies in that regard. The key is controlling your own hardware.
doodlebugging
>Wi-Fi sensing as a broader technology could theoretically be used for surveillance if someone controlled devices on both sides of your walls. It's similar to other wireless technologies in that regard. The key is controlling your own hardware.
Does this mean that a nosy neighbor or someone else who wanted to surveil your residence could accomplish this by placing multiple devices around but not necessarily on your property so that a mesh is created that effectively covers your residence? Sounds like a stalker tool or a tool for burglars to use to determine when a building is unoccupied so that they can get in and out without being interrupted. Wealthy homeowners, like professional sports players, have already become targets of burglars who use team schedules to understand when a place will be unoccupied. The NFL's Joe Burrow I think is the most recent victim.
I guess the effective range of each device factors into this if you were determining mesh coverage.
How would one protect their residence from similar surveillance?
EDIT: I like this concept and see that this could help me here in managing deer traffic across my property. I would like to give them a reason to take another path so knowing exactly when they are on the property is useful data. Game cameras and ordinary security cameras set up as game cameras have a noticeable lag and so they don't send the alert until they finalize a video and by that time the animal has absconded, but not before chewing my fruit trees.
mike2872
While theoretically possible, this would be a very involved surveillance method compared to simpler alternatives that already exist (cameras with telephoto lenses, thermal imaging, simply watching schedules, etc.). Wi-Fi sensing isn't easier or more covert than existing methods. At the current state of the technology, other methods are far more suitable for people who want to spy on others.
The effective range of each device factors into the sensing area. The closer together the sensors are the higher sensing sensitivity it has. In my 90 square meter apartment I can create a sensing area with a sensor in each end of the apartment.
Additionally, TOMMY is designed to only work with devices you've explicitly flashed and added to your system. It won't interact with random ESP32s that might be nearby.
The deer management is actually a very interesting use case. I am interested in hearing your results if you decide to set it up for that.
tetris11
Really cool idea, and scratches an itch I have with current motion detection sensors (looking at you LD2410...)
What's the configuration/calibration like? Do I need to set any proximity baselines?
mike2872
No calibration is needed for the motion sensing. You can adjust sensitivity in the dashboard if you get false positives though.
In the future, when I add stationary presence detection, there is a good chance a small calibration will be needed.
gitmagic
Looks cool! Does it work outdoors too? And can it be battery-powered?
mike2872
Yes it works outdoor too. Although experimenting with device placement is crucial for good results. I think there are different battery powered ESP32 you can buy. I have some of mine set up with small power banks.
rixrax
Any reason it couldn't run on Raspberry Pi? Also, I have some ZHA sensors that I believe are also on 2.4GHz band - will this interfere with them?
mike2872
The Raspberry Pi isn't supported as a sensor right now, but it should be able to act as the device running TOMMY. As long as it has Docker.
The interference from running TOMMY is quite low. And if ESP32-C6 (2.4Ghz Wi-Fi 6) or ESP32-C5 (5Ghz) is used as sensors, the interference is negligible.
Hi HN! I would like to present my project called TOMMY, which turns ESP32 devices into motion sensors that work through walls and obstacles using Wi-Fi sensing.
TOMMY started as a project for my own use. I was frustrated with motion sensors that didn't detect stationary presence and left dead zones everywhere. Presence sensors existed but were expensive and needed one per room. I explored echo localization first, but microphones listening 24/7 felt too creepy. Then I discovered Wi-Fi sensing - a huge research topic but nothing production-ready yet. It ticked all the boxes: could theoretically detect stationary presence through breathing/micromovements and worked through walls and furniture so devices could be hidden away.
Two years and dozens of research papers later, TOMMY has evolved into software I'm honestly quite proud of. Although it doesn't have stationary presence detection yet (coming Q1 2026) it detects motion really well. It works as a Home Assistant Add-on or Docker container, supports a range of ESP32 devices, and can be flashed through the built-in tool or used alongside existing ESPHome setups.
I released the first version a couple of months ago on Home Assistant's subreddit and got a lot of interest and positive feedback. More than 200 people joined the Discord community and almost 2,000 downloaded it.
Right now TOMMY is in beta, which is completely free for everyone to use. I'm also offering free lifetime licenses to every beta user who joins the Discord channel.
You can read more about the project on https://www.tommysense.com. Please join the Discord channel if you are interested in the project.
A note on open source: There's been a lot of interest in having TOMMY as an open source project, which I fully understand. I'm reluctant to open source before reaching sustainability, as I'd love to work on this full time. However, privacy is verifiable - it's 100% local with no data collection (easily confirmed via packet sniffing or network isolation). Happy to help anyone verify this.