I make programs for myself if nothing exists that i exactly want. If they turn out to be half decent, i will share them with the world.
I'm not a programmer! I just program for fun and to create something i need.
SatStat is an open source station monitor for QO-100 (Es'hail-2) satellite operators. It connects to a DXPatrol QO-100 amplifier via an ESP32-C5 microcontroller, (or any other amp with a voltage sense wire for FWD and REF power) and provides real time monitoring of your station over WiFi through any web browser or the dedicated Windows desktop application.
- Live forward and reflected power metering with peak hold
- SWR monitoring
- Dual DS18B20 temperature monitoring (amplifier and transverter)
- Dual INA219 voltage and current monitoring (amplifier and transverter)
- PTT inhibit relay control
- WiFi signal strength and ESP32 temperature monitoring
- Dark mode
- OTA firmware updates. No USB cable needed after first flash
- Captive portal WiFi setup. No code editing required
- Windows desktop application with automatic network discovery
- Fully calibratable via browser interface or Windows program
- ESP32-C5 development board (a 2.4 ghz board will NOT work for obvious reasons)!
- DXPatrol QO-100 amplifier (or similar with sense output)
- 2x INA219 I2C current/voltage sensor modules (addresses 0x41 and 0x44)
- 2x DS18B20 temperature sensors (OneWire)
- 1x 12v relay module for PTT inhibit
- 1x Buck converter to power the ESP32C5
- Resistors: 1kΩ, 2kΩ, 1kΩ (voltage divider for sense lines)
- Enclosure of your choice
- DC power supply from either your amp or transverter via buck converter to power the ESP32C5
Full schematic: SatStat Schematic
| GPIO | Function |
|---|---|
| GPIO 4 | FWD power sense ADC (via voltage divider) |
| GPIO 5 | REF power sense ADC (via voltage divider) |
| GPIO 9 | PTT inhibit relay output |
| GPIO 23 | I2C SDA (INA219 sensors) |
| GPIO 24 | I2C SCL (INA219 sensors) |
| GPIO 25 | AMP DS18B20 temperature sensor |
| GPIO 26 | XVTR DS18B20 temperature sensor |
-
Install Arduino IDE
-
Add ESP32 board support in Arduino IDE
-
Install the following libraries via Arduino IDE Library Manager (Tools → Manage Libraries):
- Adafruit INA219 by Adafruit
- WiFiManager by tzapu
- OneWireNg by pstolarz (DSTherm and Placeholder are included within this library)
All other includes (WiFi, WebServer, Wire, SPIFFS, ArduinoOTA etc.) are built into the ESP32 board support package and do not need separate installation.
-
Open
satstat.inoin Arduino IDE -
Select your ESP32-C5 board
-
Flash to your ESP32-C5 via USB
- On first boot the ESP32 creates a WiFi access point named SATSTAT-Setup
- Connect to SATSTAT-Setup from your phone browser or PC
- A captive portal will appear — enter your home WiFi credentials
- The ESP32 will connect to your network and restart
- Open a browser and navigate to the ESP32 IP address
- Complete the station setup screen (callsign, locator, calibration tables if needed)
Once connected to WiFi, future firmware updates can be done wirelessly:
- Hostname: SATSTAT
- Password: SATSTATOTA
- SATSTAT will appear under Network Ports in Arduino IDE
To reset WiFi credentials navigate to: http://[ESP32-IP]/resetwifi
The SATSTAT Windows application automatically discovers your ESP32 on the local network and displays all station data in a native desktop window.
- Download
SATSTAT Setup 1.0.0.exefrom the releases section - Run the installer and follow the on screen instructions
- Launch SATSTAT from your desktop or Start Menu
- The app will automatically find your ESP32 on the network
The default FWD lookup table is calibrated for the DXPatrol QO-100 amplifier. If you have a different amplifier, measure your own sense voltage at known power levels and enter a custom table in the setup screen.
For the new version DXPatrol amp the REF sense output is:
- 1.5V at 1:1 SWR (perfect match)
- 4.0V at infinite SWR
Enter your own measured values for accurate reflected power readings.
Three calibration factors correct for ESP32 ADC non-linearity across the voltage range. Adjust these in the setup screen if your power readings are inaccurate.
- Default lookup tables are calibrated for the DXPatrol QO-100 amplifier
- If your REF bar reads high into a dummy load your amp's directional coupler may have poor isolation — this is a known issue with some units (mine included)!
- The quality of DXPatrol amps is not consistent between units — measure and calibrate your own
- Thanks to Mike M0ABR for the watts/volts dataset and use of the power meter
Free for amateur radio community use and modification. Commercial sale or redistribution for profit is strictly prohibited. Use at your own risk.
Chris Lawton M7JEX Made with love in Somerset, United Kingdom.
QRZBook — A community for radio enthusiasts from around the globe. Kloudlogger — An online cloud based full featured logging program.





















