This project reads live measurement data from a Bird 5019 sensor over RS-232 and prints it to the terminal in plain text or JSON.
The Bird 5019 exposes useful RF power data over an RS-232 interface, but using that interface on a modern computer is awkward. Most laptops and small PCs no longer include a native serial port, and manually talking to the device protocol is inconvenient for testing, logging, or automation.
bird_5019_serial_read.py connects to the sensor, identifies it, checks calibration status, applies measurement settings, and then streams live readings such as:
- forward power
- reflected power
- peak power
- burst power
- filter bandwidth
- temperature
- ACK status
It can output human-readable terminal lines for quick monitoring or JSON for scripting and data capture.
- Bird 5019 or compatible 5012-family sensor
- External 7-18 VDC power for the sensor
- USB to RS-232 converter cable
- Correct RS-232 wiring between the converter and the sensor
Use a real RS-232 converter cable, not a USB-to-TTL serial adapter.
- Python 3
pyserial
Install the dependency with:
python3 -m pip install pyserialList available serial ports:
python3 bird_5019_serial_read.py --list-portsRead continuously from the default detected adapter:
python3 bird_5019_serial_read.pyRead from a specific port:
python3 bird_5019_serial_read.py --port /dev/ttyUSB0Change the sensor filter bandwidth:
python3 bird_5019_serial_read.py --port /dev/ttyUSB0 --filter 400k
python3 bird_5019_serial_read.py --port /dev/ttyUSB0 --filter 400khz
python3 bird_5019_serial_read.py --port /dev/ttyUSB0 --filter 10mhzSupported filter values are:
4k5,4.5khz, or4500for 4.5 kHz400k,400khz, or400000for 400 kHz10m,10mhz, or10000000for 10 MHz
Read a limited number of samples in JSON format:
python3 bird_5019_serial_read.py --port /dev/ttyUSB0 --samples 5 --jsonPlain-text mode prints one line per sample with:
- timestamp
- forward power
- reflected power
- peak power
- burst power
- filter bandwidth
- temperature
- ACK status
Power values in plain-text mode are formatted with two digits after the decimal point.
JSON mode emits one object per sample with the same measurement data.
This project is licensed under the MIT License. See the LICENSE file for details.
The program was created by using GPT-5.4