Hand Tool Anemometer Without Moving Parts
by MCORTS in Circuits > Gadgets
81 Views, 0 Favorites, 0 Comments
Hand Tool Anemometer Without Moving Parts
A portable handheld solid-state anemometer built with a M5Stack DIAL, a WindQX solid-state anemometer sensor, a 3D-printed case, and a rechargeable battery
Supplies
Bill of Materials
ESP32-S3, 1.28″ round display
WindQX SA.01P Solid-State Anemometer
5 V, I2C output, UART optional
3D-printed case
3.7v 3400mAh 18650 Li-ion with PH1.25mm 2P
5
1
HY2.0-4Pin for M5Stack Development Board
USB-C cable
Programming and charging
Tools required: soldering iron, resing 3D printer (or printing service).
3D-Printed Case
The case is designed to hold the M5Stack DIAL in one hand with the WindQX sensor pointing forward. All design files are in this repository.
Print settings: recommended 0.2 mm layer height, 20 % infill, PLA or PETG.
Prepare the M5Stack DIAL
Hardware Assembly
Step 1 — Prepare the M5Stack DIAL
- Charge the Li-Po rechargeable battery before starting. You can use the M5Stack DIAL via USB-C as a charger.
- Confirm the firmware version is UIFlow 2.x (hold the encoder button while powering on; the screen shows the current mode and firmware).
- If needed, flash UIFlow 2.x firmware using the M5Burner tool.
Download the UIFlow firmwareSetup the firmwareFlash the firmaware
Connect the WindQX Sensor
The WindQX sensor communicates over I2C at address id 54. Using the i2c0 login interface at 100 KHz. Connect it to the M5Stack DIAL Grove Port A (bottom right connector) using a standard Grove cable:
⚠️ The WindQX sensor requires 5 V. The M5Stack DIAL Grove port provides 5 V on pin 3. Do not exceed this voltage.
The WindQX sensors come with a connector that is not a Grove connector, so it will need to be replaced. The simplest way is to cut it off and solder the wires so that it looks like this: 
Install the Battery
Programming With UIFlow 2.0
The firmware is a UIFlow 2.0 block program located in https://github.com/McOrts/hand_tool_anemometer/tree/main/src
Loading the Program
- Open UIFlow 2.0 in your browser (or the desktop app).
- Connect the M5Stack DIAL via USB-C or Wi-Fi.
3. Create a new project4. Click Import project from local file and select src/WindQX_Anemometer.m5f2
5. Select run or download6. Setup the connection to burn the program
7. Click Project files (+) and select src/iconAlarm.pngIcon
Program Logic (Block Overview)
Usage
- Power on — Short-press the encoder button. The DIAL logo appears and the device boots (~3 s).
- Read wind speed — The gauge needle and numeric value update every 250 ms. If the wind speed > 0, the LED color of sensor turns into red.
- Set alarm threshold a. Rotating the encoder clockwise to increase the value or anti-clockwise to reduce the value. b. By dragging the dot on the slider with your finger to the desired alarm value.
- Alarm — If the current wind speed is greater than the selected alert threshold, the device will emit beeps and the speed icon will display a red dot.
- Power off — Long-press the encoder button.
Display Layout
Calibration
The WindQX sensor is factory-calibrated. For best results:
- Point the sensor directly into the wind (0° incidence).
- Hold the device at arm's length, away from body turbulence.
- For field calibration against a reference anemometer, use the CALIBRATION_OFFSET constant at the top of the program (block: Set CALIBRATION_OFFSET to 0.0). A positive value adds to every reading; a negative value subtracts.






















