Below are notes on an ongoing effort to be able to remotely operate the GCARC satellite station. That’s based on several functions – the IC-9700’s “Icom Remote Utility” software which is an extra-cost option that I can’t post here, plus the nRSP-ST SDR receiver that’s connected to the antennas and the SDR Connect software that talks remotely to it, the NodeRed-based satellite rotator controller, the Hamlib rigctld library for controlling the 9700, the com0com program for creating virtual COM ports needed to talk to the SDR Connect program, and finally the Skyroof program that controls everything for satellite passes. This is an AI-compiled list of configurations that have worked so far; however getting everything together is still a work in progress. If any readers are interested in this project please contact Jon WB2MNF.
Comprehensive Setup Guide: IC-9700 CAT via Hamlib + Custom Node-RED Rotator + SDRconnect (nRSP-ST) Bridge in SkyRoof
1. Overview & Architecture
- Primary Rig (TX/Uplink & Primary RX): Icom IC-9700 transceiver (CI-V address 0xA2), controlled via Hamlib rigctld.
- CAT for IC-9700: rigctld connects to virtual COM port created by Icom Remote Utility.
- SDR RX Bridge (Secondary/Downlink Monitoring): nRSP-ST remote via SDRconnect; bridged using SkyCat (skycatd.exe, model -m 2014) for frequency/mode/Doppler sync if SkyRoof integrates it.
- SkyRoof (VE3NEA satellite tracking software): Handles satellite prediction, Doppler correction, tunes IC-9700 via Hamlib rigctld (TCP 4531), controls rotator via Hamlib interface to Node-RED.
- Rotator: Custom Node-RED implementation at 192.168.50.14:1880/ui (browser/manual access); SkyRoof uses Hamlib rotctld protocol (TCP to Node-RED’s listening port, e.g., 4533 or custom).
- PTT: Handled by ptt_toggle.py script (likely sends Hamlib PTT command ‘T’ to rigctld or toggles virtual line).
- Launch Programs:
- Rigctl 9700.bat: Starts rigctld for IC-9700.
- skycat_SDR.bat: Starts skycatd.exe for SDRconnect bridge.
- ptt_toggle.py: Python script for software PTT toggle.
SkyRoof uses TCP-based external daemons (rigctld/skycatd) for CAT; no direct serial except via Icom Utility for rigctld input.
2. Prerequisites
- IC-9700: CI-V address 0xA2, baud 115200; Remote Utility (e.g., RS-BA1) running to create virtual COM port.
- Hamlib: 4.7+ installed (your path).
- SkyCat: v1.6+ (includes skycatd.exe and .json files; -m 2014 for SDRplay/SDRconnect bridge).
- SDRconnect: nRSP-ST remote configured (IP/port).
- SkyRoof: Latest (v1.26+; supports Hamlib rigctld for IC-9700, optional SkyCAT integration).
- Node-RED: On 192.168.50.14, with Hamlib rotctld-compatible flow (listens for rotator commands).
- com0com: Pair COM9 ↔ COM10 (for SDR bridge if SkyRoof/SkyCat uses serial side).
- PuTTY: For testing.
- Python: Installed for ptt_toggle.py.
- Batch files: Rigctl 9700.bat, skycat_SDR.bat (create these with your commands).
3. Step-by-Step Configuration
Step 1: IC-9700 & Icom Remote Utility
- Start Icom Remote Utility.
- Note virtual COM port created (e.g., COMx — check Device Manager or utility window).
- IC-9700 menu: CI-V Address A2, Baud 115200, USB Port Unlink from REMOTE.
Step 2: Create/Run Rigctl 9700.bat (for IC-9700)
- Create batch file (e.g., desktop shortcut: Rigctl 9700.bat) with:
text
@echo off
“C:\Program Files\hamlib-w64-4.7.0\hamlib-w64-4.7.0\bin\rigctld.exe” -m 3081 -r COMx -s 115200 -c 0xA2 -T 0.0.0.0 -t 4531 -vv
pause
- Replace COMx with actual Icom virtual port.
- -t 4531: Dedicated TCP port for IC-9700.
- Double-click to launch (keep window open).
Step 3: Create/Run skycat_SDR.bat (for SDRconnect Bridge)
- Create batch file (e.g., skycat_SDR.bat) with:
text
@echo off
“C:\Users\Jon Pearce\Downloads\SkyCat_1.6\skycatd.exe” -m 2014 -s 57600 -t 4531 -vvv -r COM9
pause
- -m 2014: SDRconnect/SDRplay bridge model.
- -r COM9: One side of com0com pair.
- If SkyCat exposes TCP (check SkyCat docs), SkyRoof can point to its port instead of serial.
- Double-click to launch (keep open).
Step 4: com0com for SDR Bridge
- Pair: COM9 (SkyCat) ↔ COM10 (if SkyRoof needs serial access to bridge).
Step 5: Rotator (Custom Node-RED)
- Browser access: http://192.168.50.14:1880/ui for manual control.
- SkyRoof rotator settings: Hamlib type, host 192.168.50.14, port (e.g., 4533 — confirm in Node-RED flow for rotctld listener).
- Node-RED flow emulates rotctld protocol for azimuth commands.
Step 6: SkyRoof Settings
- Tools → Settings:
- CAT Control (TX): Host 127.0.0.1, Port 4531 (rigctld for IC-9700), Enabled.
- RX CAT: Disable (since waterfall not used; use SDRconnect separate if needed).
- Rotator: Hamlib, IP 192.168.50.14, correct port.
- Ignore Dial Knob: Optional.
- No SDR waterfall integration in SkyRoof (minimize or disable display).
Step 7: PTT
- Run ptt_toggle.py (double-click desktop Python script).
- Integrates with SkyRoof PTT button/hotkey; sends command to rigctld (IC-9700).
Step 8: Startup Sequence
- Launch Icom Remote Utility (creates virtual COM).
- Double-click Rigctl 9700.bat (starts rigctld for IC-9700).
- Double-click skycat_SDR.bat (starts SkyCat for SDR bridge).
- Launch SkyRoof → enable CAT/Rotator.
- Run ptt_toggle.py as needed.
- Start SDRconnect → connect nRSP-ST (separate window for RX if desired).
Step 9: Testing
- PuTTY (Telnet):
- 127.0.0.1 port 4531 → IC-9700 (commands like f for freq, ? for help).
- If secondary NET: Test 4532 or other.
- SkyRoof freq change → IC-9700 tunes.
- Rotator az command → Node-RED UI updates.
4. Troubleshooting
- rigctld: Verify COMx, baud, CI-V; check verbose output.
- SkyCat: Confirm -m 2014 works with SDRconnect (check SkyCat GitHub .json files).
- Rotator: Test Node-RED Hamlib port independently (e.g., rotctl -m 1 -r 192.168.50.14 -t [port]).
- Conflicts: Close other CAT apps; ensure daemons run first.
5. Summary Diagram (Text)
text
SkyRoof (Satellite Tracking/Doppler)
├── CAT (TX) → 127.0.0.1:4531 → Rigctl 9700.bat (rigctld -m 3081) → Icom Remote Utility Virtual COM → IC-9700
├── Rotator → Hamlib interface → 192.168.50.14:[port] (Node-RED rotctld emulation) → Physical rotator
└── SDR RX Bridge (optional) → skycat_SDR.bat (skycatd -m 2014, COM9) ↔ com0com COM10 ↔ SDRconnect → nRSP-ST (separate RX)
PTT → ptt_toggle.py → rigctld command
Test: PuTTY telnet 127.0.0.1 4531
