francescopace

Joined 11 months ago

Karma
130
Submissions
27
Member since
Nov 10
I'm a mathematician and programmer based in Rome, Italy. Interested in software development, distributed systems and open source.
View on Hacker News

Recent submissions

Comment · 10 months ago
Author here. Thanks for the interest!

Multiple people moving: The system detects "motion presence" rather than counting individuals. With multiple people, CSI variance increases, so detection works well. Distinguishing how many people would require ML (on the roadmap).

Detection latency: The algorithm processes each packet in real-time (~10ms @ 100 pkt/s), so detection is essentially instant. The default Home Assistant publish rate is 1 second to avoid flooding the event bus, but it's fully configurable via publish_interval.

Accuracy vs traditional sensors: See PERFORMANCE.md in the repo for detailed benchmarks.

Main advantages over PIR: no line-of-sight needed (Wi-Fi passes through walls) and no dead zones.

Happy to answer more questions!

Comment · 11 months ago
Comment · 11 months ago
Thanks for the insights Quinnjh! Would love to hear more about your invisible strings tuning system!

The ESP32-S3 extracts a moving variance signal from spatial turbulence (updates at 20-50 Hz), and I want to map this directly to audio frequency using a passive buzzer + PWM (square wave, 200-2000 Hz range).

Two quick questions:

1. Do you see any pitfalls with updating PWM frequency at 20-50 Hz for responsive theremin-like behavior?

2. Any recommendations on mapping strategies - linear, logarithmic (musical scale), or quantized to specific notes?

Comment · 11 months ago
Thank you 4goturnamesagain.

My first step is to 'listen' to the raw channels and features to quickly find which mapping produces the most musically coherent (i.e., clean and physically predictable) output.

If it sounds like white noise, the mapping is bad or the signal is artifact.

If it sounds like a sine wave moving predictably, the physics are sound.

Comment · 11 months ago
That's a great thought. The challenge is that Wi-Fi sensing (CSI) is measuring multipath changes across a few meters, not direct motion in a small volume like Leap Motion. I think its accuracy is measured in centimeters, not sub-millimeters.
Comment · 11 months ago
Thanks for sharing the paper; I'll certainly be taking a look at that research!
Comment · 11 months ago
Currently, ESPectre performs only binary motion detection (IDLE/MOTION) based on simple statistical thresholding.

It cannot ignore cats or prioritize size over speed directly on the device, but ESPectre's architecture is designed to enable this kind of advanced classification externally.

It collects a rich set of pre-processed features (spatial turbulence, entropy, etc.) and transmits them via MQTT.

Any external server (like a Home Assistant add-on or a dedicated Python script) can use these features as the input for a trained ML model to perform classification (e.g., Cat vs. Human vs. Fall detection vs. Gesture detection).

Regardin Ruckus Router / Beamforming: for CSI sensing, stability is generally more important than raw power. I recommend starting by disabling beamforming or reducing the power output if you experience poor motion sensitivity, as the stability of the ESP32 receiver is often the bottleneck.

Comment · 11 months ago
Mike, thank you so much! Coming from the founder of TOMMY, that means a lot.

I completely respect the way you've managed the beta community and licensing; it’s a smart way to reward early supporters and foster user engagement.

I wish you and the TOMMY project continued success as well!

Comment · 11 months ago
The project’s open-source nature acts as an ethical safeguard, and I am explicitly not pursuing any identity recognition features, just movement detection.

But you are absolutely right that, in theory, misuse of this technology could reveal certain behavioral patterns that might lead to identification.

However, it can also be extremely useful for safety purposes, for example, detecting people during a house fire or an earthquake.

Comment · 11 months ago
You hit the nail on the head! That's precisely the motivation.

Having two kids myself, I've thought of turning it into a game: blindfolded hide-and-seek where the pitch of the Wi-Fi Theremin tells the seeker how close they are to the 'signal disruption' of the other person. It's essentially a real-time sonar game!

Comment · 11 months ago
The final statistic I threshold is the Moving Variance of Spatial Turbulence.

The decision is a binary comparison: When moving_variance > threshold then MOTION state (movement detected) else IDLE state.

The features are extracted only during MOTION segments (to save CPU cycles) and published via MQTT.

They serve as rich foundation data for potential external ML models (e.g., to capture nuances like gestures, running, or falling), but they are absolutely not used for the core segmentation decision itself.

Comment · 11 months ago
Are you using two separate S3s as a dedicated Transmitter/Receiver pair, or are both transmitting data simultaneously?
Comment · 11 months ago
Hahaha, I love your brain!

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton