The Icom IC-705 is among the most popular portable transceivers for SOTA, POTA a terénnu prevádzku. Na satelitné QSO mu však chýba funkcia, ktorú IC-9700 má natívne – automatická korekcia Dopplerovho posunu. Čínsky rádioamatér BH6AAP túto medzeru vyplnil open-source Android application, which connects to the IC-705 via Bluetooth and adjusts the frequency in real time VFO A (Downlink, RX) aj VFO B (Uplink, TX) podľa aktuálnej polohy satelitu.
You will read in the article
Connection and requirements

The application communicates with the IC-705 exclusively via the Bluetooth CI-V protocol. Requires Android 8.0 or later, Bluetooth 4.0, and GPS and storage permissions. Once paired, the phone acts as an external controller - sending CI-V commands to set the frequency and mode of both VFOs. The connection is wireless, which eliminates the cable between the phone and the radio during portable operation. the operator has both hands free to direct the handheld antenna.
Satellite tracking and Doppler shift
The core of the application is a satellite module built on the Orekit library for orbital mechanics. The application downloads TLE (Two-Line Element) data from Celestrak and SatNOGS, with the option of configuring your own API source. TLE data is considered valid for 12 hours, transponder data for 30 days. The built-in offline database of satellites and transponders allows operation even without a current Internet connection - knowing that older orbital elements reduce the accuracy of the forecast.
For each satellite with a defined transponder, the application calculates the current Azimuth, elevation and Doppler shift. Frequency correction is applied in real time to both VFOs simultaneously: VFO A for the receive frequency (downlink) and VFO B for the transmit frequency (uplink). The operator does not have to manually correct the frequency during the fly-by - the application does it automatically, which is especially crucial on bands with a higher Doppler shift (70 cm uplink, 2 m downlink).
VFO avoidance – protection against collisions
An interesting design solution is the VFO avoidance mechanism. If the operator manually rotates the IC-705 tuning knob more than 4 Hz, the application will pause the automatic tracking and wait approximately 100 ms after tuning is complete. It then recalculates the base frequency from the new VFO position and restores the Doppler correction. The application also detects the PTT status and does not shift the frequency during transmission - this prevents unwanted jumps in the middle of an ongoing transmission. The maximum pause time is 1 second, after which tracking resumes regardless of the knob state.
Ground station and opportunities
The application supports multiple saved ground stations. GPS will determine the current position, the operator can save it as a default or add to the station library for later use - handy for operators who regularly broadcast from different SOTA peaks. A long press on the GPS bar switches between saved stations. The satellite tracking screen shows currently flying satellites filtered by elevation, with a forecast of future flybys.
Since version 3.5.4, the application uses NTP-calibrated time instead of the system time, which eliminated the problem of satellites disappearing from the list when returning to the main screen. Backup NTP servers ensure synchronization even when the primary source fails.
CW functions and call sign
The application contains a CW module with the option of recording call signs directly on the satellite tracking screen. Since the latest development versions, there is a built-in QWERTY keyboard optimized for fast typing - large keys, automatic capitalization, number row at the top and real-time call sign suggestions. The call sign can be saved with one touch or dragged from the CW history.
Practical limitations
The documentation openly lists several known issues. Bluetooth connection is unstable on some Android devices - this is a system problem of BLE implementation in different versions of Android, not a bug of the application, but the operator has to take it into account. GPS localization can fail indoors, which will affect the accuracy of flight calculations - for field operation this is usually not a problem, but for a home station it is. The update of TLE data may expire in some cases, and the transponder database is not complete for all satellites. Adding missing transponders requires manual configuration via JSON format.
The application currently does not support S-meter visualization or transceiver memory management. It is primarily a satellite instrument with CAT frequency and mode control, not the IC-705 universal control panel. The roadmap mentions planned support for additional radio models, cloud sync and export of QSO records, but these features are not yet implemented.
Availability and license
The source code is available on GitHub (github.com/BH6AAP/ic705controller) under the MIT license. The application is written in Kotlin with Jetpack Compose, Room database and OkHttp for network communication. The current version is 3.5.7b. APK installation files are published in the Releases section. The interface is available in English and Chinese with automatic switching according to the system language. The repository has 17 stars, 4 forks and active development with 83 commits on the master branch. The community can report bugs through GitHub Issues and contribute to code through pull requests.
