Smart Soldering Station with C4002 mmWave Presence Detection

I wanted to build a simple safety feature for my soldering station:

If nobody is working at the station for a certain time, switch it off automatically.

The idea is to use the Fermion C4002 mmWave sensor to detect whether someone is still sitting at the workstation. A FireBeetle 2 ESP32-C6 processes the sensor data and will later control a Shelly smart plug.

The project is still a work in progress. The hardware and software are working, but the presence detection itself still needs some tuning.

 

 

Hardware

-Fermion C4002 / SEN0691 – 24 GHz mmWave sensor

-FireBeetle 2 ESP32-C6 / DFR1075

-Shelly smart plug – planned for the final switching function

 

The planned setup is:

C4002 → ESP32-C6 → Presence detection → Shelly → Soldering station

 

 

Why mmWave?

A PIR sensor mainly detects movement. That is not ideal for a soldering station because someone can sit almost completely still while working.

The C4002 can detect much smaller movements, such as breathing and small changes in posture. In theory, this makes it much better suited for detecting presence rather than just movement.

In practice, this turned out to be the interesting part of the project.

 

Detection Gates

The C4002 divides its detection area into distance gates. This means the sensor provides information about what is happening at different distances instead of just reporting one overall detection value.

Two resolutions are available:

20 cm gates: 25 gates, roughly 4.9 m

80 cm gates: 15 gates, roughly 11.6 m

For the soldering station, the finer 20 cm resolution is more interesting. A person sitting at the workstation can cover several gates, giving the software some information about where the detected activity is happening.

 

 

One Hardware Surprise

There was a small issue with the power supply that is easy to miss when looking at the FireBeetle board.

The C4002 requires 3.6–5.5 V. I initially expected to be able to power the sensor from the FireBeetle's VIN pin.

However, VIN is not a suitable power output on this board. The diode in the board's power path prevents the VCC voltage from being fed back to the VIN pin. In other words, VIN can be used as an input.

We therefore connected the C4002 directly to the positive pad of the LiPo connector.

The wiring is:

C4002FireBeetle 2 ESP32-C6
VINLiPo +pad (P4.1)
GNDGND
TXGPIO17
RXGPIO16

This was one of those small hardware details that only became obvious once we measured it.

 

We can use the 4.2V provided by U4 for our radar sensor. In order to get that voltage we connector VIN of the Sensor to P4.1 (LiPO + Pad).

Here is my final wiring:

 

 

Firmware and App

The ESP32 reads the C4002 via UART and sends the data to a small Node.js application.

The browser app displays the sensor data and the individual detection gates. It also shows detected movement and its speed in the graph.

Measurements can be recorded and replayed, which makes it easier to work on the detection algorithm without having to repeat the same test after every change.

So at this point the basic chain is working:

C4002 → UART → ESP32-C6 → USB → App

 

 

 

Current Status

The firmware works, the app works and the radar reliably detects movement.

The presence detector is the part that is not finished yet.

At the moment, it is still closer to a good old PIR sensor than to the presence detector I actually want. If I sit at the soldering station and stop moving for a while, the system can eventually decide that nobody is there.

 

My app also has a nice waterfall (Wasserfall) and distance (Entfernung) /velocity (Geschwindigkeit= over time diagram:

 

That would obviously be a rather bad feature for a soldering station.

The C4002 provides much more information than a PIR sensor, so the next step is to make better use of it. In particular, I want to combine the information from the detection gates and the presence energy over time instead of relying too heavily on individual movement events.

This will require some more measurements and, most likely, some more “Knoff-hoff” in the presence algorithm.

 

 

Next Step: Automatic Shutdown

Once the presence detection is reliable enough, the plan is to connect the ESP32 to a Shelly smart plug controlling the soldering station.

The intended behaviour is simple:

Person detected → soldering station stays on

No presence for a defined timeout → soldering station switches off

The timeout should be long enough to allow someone to sit quietly and work without triggering the shutdown.

The automatic switching is therefore not the difficult part. The difficult part is making sure the system can reliably tell the difference between:

"Sebastian is still working here, just not moving much."

and

"Nobody is at the soldering station anymore."

That's the part I'm working on next.

License
All Rights
Reserved
licensBg
0