6 ms·
Show HN: Tommy – Turn ESP32 devices into through-wall motion sensors
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 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.
- deleted 1y ago[deleted]
- michaelmior 1y ago> 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.
- mike2872 1y agoYou'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.
- mrheosuper 1y ago>You're absolutely right. Thanks for the feedback! I have PTSD whenever I see that phrase. Please don't be a LLM reply.
- michaelmior 1y agoI 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 1y agoI agree. I'm going to find something more suitable :-) Sounds good. Looking forward to hearing about your results!
- Moosdijk 1y agoI'm hoping you'll open the API some time in the future. This would be great for diy installations with a esp32 hub.
- kentt 1y agoFair criticism. I think the generous interpretation of "no hub" means you don't have to buy a specialized hub eg a Smartthings hub.
- teekert 1y agoOTOH, 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.
- kentt 1y agoCould you help me understand the use case for this? I've used PIR and mmWave before. When would you choose tommysense vs some other option.
- mike2872 1y agoWhat really sets TOMMY apart is that it doesn't require line of sight and works through walls. This opens a lot of possibilities. You can create zones spanning multiple rooms without sensors in each room. Instead of traditional room-by-room motion detection, you could divide your house into zones like "upstairs", "downstairs", or "living area". Especially useful for controlling heating by floor or area-level lighting. Working through walls also means less clutter. You can hide devices in drawers, closets, or anywhere out of sight. There's also a pricing aspect: ESP32s can be acquired for a couple of dollars each, so you could have motion sensing throughout your whole house for a fraction of the price of dedicated sensors in every room.
- throitallaway 1y agoThis 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 1y agoThey 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).
- dreadsword 1y agoWhat dark magic is this! Very cool repurposing of technology. If you don't mind me asking - what's the origin of the name Tommy?
- mike2872 1y agoThanks! Glad you like it. Honestly, it doesn't stand for anything! A couple years ago I was playing around with the concept and a song came on that mentioned "Tommy" repeatedly. I jokingly started calling it Tommy when talking to my girlfriend about it. So every time the lights turned on or off it was "Tommy who did it" and the name just stuck. Now I'm too invested to change it. There's a dedicated thread on the Discord channel where people are coming up with good ideas for what TOMMY stands for. Some of the suggestions are "Totally Overengineered Motion Monitoring" and "Through-Obstacle Motion Monitoring". People are still working on what the Y should stand for.
- one_more_q 1y agoTommi, ich glaub, ich hab Heimweh Ich will mal wieder am Rhein steh′n Einfach hineinseh'n Zuschau′n, wie Schiffe vorbeizieh'n
- snovv_crash 1y agoI'm guessing that it was Tommy can you hear me? by The Who.
- mike2872 1y agoGreat guess! But it was actually a song called Tommy from an artist called Walker.
- regularfry 1y agoWithout 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 1y agoThanks 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 1y ago1 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.
- mike2872 1y agoESPresense and TOMMY solve different problems right now. ESPresense tracks specific people with IDs (even when stationary), while TOMMY detects anonymous motion across zones. For your use case, ESPresense is probably the better fit currently. Though once stationary presence detection is added (Q1 2026) and person identification, it could do similar tracking without needing physical tags to carry around.
- rixrax 1y agoAny 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 1y agoThe 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.
- stavros 1y agoThis 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 1y agoCould 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 1y agoI 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!
- tetris11 1y agoReally 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 1y agoNo 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.
- gingerlime 1y agoVery 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 1y agoGreat 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 1y ago>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.
- kittikitti 1y agoThis is a signal that I need to get off of Wifi altogether. The data from CSI and BFI are too insecure and no one cares about the privacy concerns. I'm sure ICE agents are going to love this technology.
- transpute 1y ago> no one cares about the privacy concerns Even if IEEE doesn't care, someone famous will eventually learn that the walls of their mansion are transparent to passive WiFi receivers with cantennas, even if they turn off all WiFi devices inside their home. Will they build a new mansion with RF-shielded walls? Try to find someone who cares?
- robflynn 1y agoThis tech is at least a decade old.
- transpute 1y agoIEEE consumer standard (WiFi 7 and 802.11bf) is new, military use began 15 years ago, https://news.ycombinator.com/item?id=44426726#44427986 https://news.ycombinator.com/item?id=44426726#44427986
- daredoes 1y agoThis is awesome! I'll be trying this soon and joining the Discord after work!
- mike2872 1y agoSounds good! Talk to you there.
- shekhar101 1y agoSeems 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-computer-vision/overview/ https://www.media.mit.edu/projects/seeing-through-walls-comp...
- mike2872 1y agoI 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.
- transpute 1y ago"ESP32 CSI Toolkit", papers+code, Virginia Commonwealth University, USA https://stevenmhernandez.github.io/ESP32-CSI-Tool/ https://stevenmhernandez.github.io/ESP32-CSI-Tool/ "Wi-ESP", papers+code, KITS WRL, South Korea, https://wrlab.github.io/Wi-ESP/ https://wrlab.github.io/Wi-ESP/ "Espressif CSI sample applications", Shanghai, China, https://github.com/espressif/esp-csi https://github.com/espressif/esp-csi "CSI-MURDER", paper+code, WiFi Sensing countermeasures, EU, https://ans.unibs.it/projects/csi-murder/ https://ans.unibs.it/projects/csi-murder/
- dirtybirdnj 1y agolol all I can think when I see this is "tommy can you hear me?" lots of opportunity for pinball wizard jokes / easter eggs
- mike2872 1y agoHaha, didn't even think of that song by The Who before someone mentioned it in another comment.
- gitmagic 1y agoLooks cool! Does it work outdoors too? And can it be battery-powered?
- mike2872 1y agoYes 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.
- deleted 1y ago[deleted]
- renshijian 1y ago[flagged]
- victorbjorklund 1y agoCool. 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 1y agoSounds good. Your application should be approved now. Otherwise let me know.
- atmanactive 1y agoCould this work without touching my WiFi? For example, an ESP node with ethernet to communicate with Home Assistant, while using it's own WiFi mesh network for detection and/or to talk to other nodes. Or, is the connectivity to my home WiFi network a requirement?
- mike2872 1y agoRight now it is a requirement that the device running TOMMY (e.g. Home Assistant) and the ESP32 nodes are on the same network. The communication between the ESP32's are peer-to-peer without needing the router, but the data needed for analysis is sent from the sensors to TOMMY through the router.
- atmanactive 1y agoWhat if all of the ESPs were ethernet? Would that work? Setting a separate SSID for their WiFi.
- mike2872 1y agoYes that would work. They don't need to be connected to the router on Wi-Fi, it can be ethernet too. The ESP's will connect with each other peer-to-peer.
- atmanactive 1y agoGreat news, thank you. Is such a scenario supported in the software currently?
- mike2872 1y agoYes, if I understand you correctly then it already works with that setup. So you can have the ESP32s over ethernet and it still works as long as it's on the same network as TOMMY (Home Assistant Add-on or Docker). Only thing to keep in mind is that the ESP32s need to have Wi-Fi inbuilt with antenna (either PCB or external).
- yoavm 1y agoCongrats, this looks like an awesome product! Gonna try setting it up in the next few weeks. How is a "zone" configured? I understand that if I have 3+ devices, the zone is essentially the area between them. But what about two devices? I'm assuming the zone isn't just a straight line between them, or maybe it is? What kind of zone configuration can one do in the dashboard?
- mike2872 1y agoThanks, I'm glad you like it! Let me know how it works for you. And if you need any help, feel free to reach out. A zone is 2 or more devices. So 2 works just fine. Instead of a straight line, image two flashlights pointing at each other. The beam of the flashlight becomes the sensing area. In the dashboard you can create zones which you put devices into. So you could flash a handful of devices and put them into a "living room" or "upstairs" zone.
- worldmerge 1y agoSuper cool! I'm going to try this out! The new philips hue bulb bridge supposedly can turn them all into motion sensors. Do you think this could use what ever data they are pulling from the bulbs to do that as well?
- mike2872 1y agoUnfortunately not. Even though the concept is the same, Philips Hue uses Zigbee as the sensing protocol which isn't compatible with the Wi-Fi sensing TOMMY uses.
- cassettelabs 1y agoCongrats on the launch, that looks really cool! I had an idea to build a restricted zones for a phone. For example, I can't take my phone to bed, so I wanted to create a esp32 based project that beeps when the phone is too close to some areas. I made it based on BLE, but iphone masks MAC addresses, so it was impossible to track particular devices. No I realize, I could actually do it with WIFI signal straight. How I didn't think about it. Will try again today :D
- mike2872 1y agoThanks! I'm glad you like it. Sounds like a great project. Using the Wi-Fi signal directly might work in your case. It would be nice to go back to actually using the bedroom as a place to sleep and not look at the phones all the time :-)
- joshstrange 1y agoWhat would you recommend/what do people do for power and access for in-wall sensors? Pulling power at least once per room (assuming you can share at least 1 node with another room) and being able to access it if you need to reflash feel like hard problems. OR, am I completely missing the point that it's "through walls", not necessarily in-wall (though that would work). A wall-wart-sized device containing the ESP32 board could be plugging in to each room and share the node (on the opposite wall) of the next room? Very cool project and love the HA integration as well. I'm using PiR and mmWave (Z-Wave and Zigbee) currently but obviously you either have to run power for those or deal with replacing batteries, this seems much more maintainable and unobtrusive.
- mike2872 1y agoIt's possible to have the devices in-wall, but it might not be that practical as you point out. Or at least they would have to be taken out once for flashing, then OTA updates would reduce or eliminate the need for reflashing further. The real benefit from the sensors working through walls in my opinion is to be able to hide the devices away (e.g. in a closet or drawer) + being able to create zones that crosses walls. Image wanting a zone called 'upstairs', 'downstairs', 'garage' etc. which consists of multiple rooms divided by walls. Instead of having a sensor in each room you might just need one on each side of the total area. Thanks! I agree with the PiR and mmWave limitations. Right now I think this project can replace motion sensor. Hopefully mmWave when stationary presence detection is added (planned Q1 2026).