Work to reverse engineer the protocol for the Xiegu G90's head unit.
Discussion about this is curerntly taking place here: https://xiegug90.groups.io/g/TechnicalAnalysis/
- +8V
- Serial1 - 3.3V 115200 8n1 - From head - Burst of 96 bytes every 29.5 ms
- Serial2 - 3.3V 115200 8n1 - To head - Burst every 81.3 ms
- Power button - Idles at 3.3V, goes to when pressed. Shoots to 11V when off.
- GND
- phones1 - Signal Output to headhones - switched via a relay between the built-in speaker and headphone jack
- phones2 - Near 0V
- IN_R
- IN_L
These are some python scripts to help decode the 3.3V RS-232 packets sent between the head and the base. They use the python Construct library, which you may need to install with something like pip install construct
. The head to body protocol is defined in xiegug90head.py.
This script decodes some of the bytes from the body to the head. It's a WiP, but decodes some of the flags, the decoded CW text, and the FFT data.
I have a python script, log_head.py, that decodes the messages from the detachable head to the unit base. It uses a 3.3V RS-232 adapter, with GND connected, and the head unit's serial output connected to RS-232's adapter's input.
This script generates some packets to show that we can control the body using the same protocol as the head. It even generates correct CRC values!