SatBox under development using an ESP32-S3. It is equipped with a 3.5-inch capacitive-touch LCD and a rotary encoder.
What is SatBox?
SatBox is an ESP32-S3-based standalone satellite tracking controller that I am developing for amateur satellite communications.
Without requiring a PC to remain connected, SatBox itself performs satellite orbit calculations, AOS/LOS prediction, azimuth/elevation antenna rotator control, radio Doppler-shift correction, AOS notifications, and QSO log management.
Until now, SatBox handled radio Doppler control while the rotator was controlled by SatPC32. On September 9, 2026, I connected SatBox directly to the rotator controller and confirmed that automatic AZ (azimuth) and EL (elevation) tracking operates correctly. The rotator connection is still temporarily wired; permanent wiring will be completed after the 8-conductor cable arrives.
Satellite Tracking → Rotator Control → Doppler Correction → Radio Control → QSO Logging
Main screen showing the satellite name, AOS/LOS, azimuth/elevation, uplink/downlink frequencies, OFFSET, and rotator/Doppler control status.
3.5-inch Touchscreen LCD and Front-panel Operation
The front panel has a 3.5-inch LCD with a capacitive touchscreen and a rotary encoder. The main screen displays the current time, satellite name, AOS, LOS, azimuth at AOS, maximum elevation, current AZ/EL, uplink/downlink frequencies, operating mode, receive OFFSET, and other information required for satellite operation.
Using the LCD and rotary encoder, the operator can set the radio frequency, start or stop Doppler control, select satellites, and control the rotator directly from SatBox.
Inside SatBox. The hardware is built around an ESP32-S3 and includes an RTC and rotator-control circuitry. The photo shows the prototype/temporary wiring stage.
Satellite Selection and Pass Prediction
Pressing the “Sat” button displays the satellites registered for tracking. For each satellite, SatBox shows the countdown to the next AOS, AOS time, LOS time, and maximum elevation (Max El). Up to 10 satellites can be selected for tracking in the Web setup.
Satellite list screen showing upcoming passes for FSI-SAT 2, IO-86, SO-50, ISS, FO-29, RS-44, AO-123, and others.
AZ/EL Rotator Control
SatBox calculates the satellite position in real time and automatically controls both AZ (azimuth) and EL (elevation) axes of the antenna rotator.
The “Manual Rotor” touchscreen page can also be used to move AZ left/right and EL up/down manually. Rotator position sensing can be calibrated from the Web interface.
Manual Rotor screen. Touch controls move AZ left/right and EL up/down.
Automatic Radio Doppler Control
SatBox calculates Doppler shift caused by the relative motion between the satellite and ground station in real time and automatically corrects the radio’s transmit and receive frequencies. At present, radio control supports the ICOM IC-820H through the CI-V interface.
In addition to FM satellites, SatBox supports linear-transponder satellites such as RS-44 and FO-29. For linear satellites, an RX OFFSET adjusted to the actual received signal can be saved for each satellite and automatically applied again on subsequent passes.
Automatic Satellite Orbital-data Updates
SatBox uses NASAALL satellite orbital-element (TLE) data for tracking. The data is automatically downloaded and updated at startup and once per day. It can also be updated manually from the Satellite Selection page.
Web-browser Operation
SatBox includes its own Web server. A PC, tablet, or smartphone on the same LAN can access SatBox with a Web browser to view satellite information and operate the system.
The Web console provides LOCAL/GMT switching, rotator control, Doppler control, TIME SHIFT, satellite/frequency information, and QSO logging.
Complete Web console. The map is displayed on the left, with satellite information and controls on the right.
Map Display
The Web interface displays the satellite’s current position on a map together with AZ/EL meters. This makes it possible to see visually where the satellite is currently located over the Earth, rather than relying only on numerical data.
Enlarged map view showing the satellite position and AZ/EL meters.
Web Console
For each selected satellite, the console lists status, countdown to AOS, AOS/LOS times, azimuth at AOS, maximum elevation, and current AZ/EL. The frequency selector can be used to choose the operating mode and frequency set for each satellite.
The TIME SHIFT function virtually advances the current time so that an upcoming satellite pass can be checked in advance.
Enlarged Web console view.
Setup
The main SatBox settings can be changed from the Web-browser Setup Menu. Available sections are Network, Station, Satellites, Doppler, Calibration, and Alert.
Setup Menu.
Network Setup
Configures the SatBox hostname, DHCP, IP address, gateway, SSID, Wi-Fi password, and related network parameters.
Network Setup screen.
Station Setup
Configures the call sign, latitude, longitude, altitude, time zone, daylight-saving time, display language, and grid locator.
Station Setup screen.
Satellite Selection
Up to 10 satellites can be selected for tracking from the satellites available in NASAALL. NASAALL can also be updated manually from this page.
Satellite Selection screen.
Doppler Setup
Configures the parameters required for satellite communication and Doppler control, including uplink/downlink frequencies, transmit/receive modes, NORMAL/REVERSE transponder operation, frequency ranges, and tone frequencies for each satellite.
Doppler Setup screen.
Rotator Calibration
Calibrates rotator position sensing while displaying the sensor RAW value, voltage, and calculated angle for both AZ and EL.
Rotator Calibration screen.
Alert Setup
SatBox can send an e-mail notification before a satellite AOS. The user can configure how many minutes before AOS the alert is sent, the minimum elevation, alert time range, SMTP server, and related settings. Passes whose maximum elevation is below the configured minimum can be excluded from e-mail/audio alerts, automatic tracking, and Doppler control.
AOS Alert Setup screen.
Smartphone AOS Alarm
By installing the dedicated SatBox AOS Alert app on a smartphone, the phone can obtain the AOS times and maximum elevations of selected satellites from SatBox and sound an alarm at the specified time.
The user can configure how many minutes before AOS to be notified, the minimum elevation, and the hours during which alarms are allowed. This function operates only when SatBox and the smartphone are on the same local-area network.
SatBox AOS Alert app setup and synchronization screen.
Smartphone alarm screen for an upcoming AOS, prominently showing the satellite name, AOS time, and maximum elevation.
QSO Logging
SatBox also includes a QSO logging function designed for satellite operation. After a contact, the operator can enter the other station’s call sign and operating mode from the Web console and record the QSO.
QSO data is stored locally in SatBox as an ADIF file and in the Sat_logbook.db database. Saved data can also be uploaded to LoTW (Logbook of The World), Club Log, and eQSL.
Previous QSOs can be searched and displayed in a Web browser, including UTC date/time, call sign, satellite, mode, band, transmit/receive frequencies, country, and other information.
The logging function is currently supported only on Windows.
Previous-QSO search screen. The QSO history can be searched and links to QRZ.COM and LoTW are also displayed.
The Goal of SatBox
SatBox is not simply a rotator controller or a Doppler-correction unit. Its goal is to integrate the functions required for amateur satellite communication into a single unit without depending on a PC.
SatBox can now serve as the center of the complete operating sequence: satellite orbital-data acquisition → pass prediction → AOS notification → satellite selection → automatic AZ/EL antenna tracking → radio Doppler correction → satellite communication → QSO logging → upload to LoTW / Club Log / eQSL.
* At present, automatic radio control supports the ICOM IC-820H. SatBox is still under development, and its functions, screens, and specifications may change.