-
Notifications
You must be signed in to change notification settings - Fork 1
Building the Project
There are a few prerequisites that need taken care of for your build environment.
Network - a more detailed Wiki page will be created later
I used a TP-Link TL-SG116E (or TL-SG108E) managed switch in the house. The house network and IC-905 control head plug into this switch. The radio is on a separate VLAN to isolate the traffic from the house traffic.
A TL-SG105E managed switch is located outside in a cabinet along with 12V and 28V power, a 5 band transverter, VHF amps, and a band decoder connected to ethernet that also monitors RF Power and SWR, 12 and 28V and temperature. The radio ports are in a separate VLAN at this end also. Port Mirroring is enabled on my port #5 where my Pi CPU plugs in to read-only monitor the radio TCP traffic. Enable mirroring on the radio port, I used both directions (ingress and egress, aka bidirectional).
A single outdoor rated CAT 6E or Cat 7 cable connects the 2 switches. This is also known as a trunk cable. Multiple VLANs run across this trunk.
A CAT7 cable runs from the cabinet switch to a POE++ inserter and on out to the RF unit on a rotating mast.
The RF Unit requires a POE++ connection at 70W or more for power. The ethernet cable running out to the RF unit from the house via the cabinet switch needs to plug into a POE++ inserter, 90W recommended.
CPU
For Dev I used a Pi4B with the Desktop OS. I used the built-in RealVNCserver to access the headless Pi board desktop remotely using the RealVNCViewer app on my Windows machine. You can use a local screen and keyboard to get started but eventually this will get installed in a box possibly on or near your RF Unit which could be on a tower or in a tree for some of us who live in a HOA restricted world. There are other remote access methods that will work as well. The status output is simple 1 line text. For the installed band decoder I use a Pi3B with the OS Lite version (no desktop) and use SSH on a command line terminal. I also use FileZilla for syncing files between the PC and remote Pi.
IO - You will use GPIO to operate relay or other devices. I describe 2 scenarios:
- Relays, in my case 4 relays on a "Pi Hat" board plugged onto the RPi board.
- GPIO direct to a device. I would use my Remote BCD Decoder board from my 905 USB band decoder project. 3 wires are BCD band info and 1 wire is PTT. One wire for GND. The board requires 7-15V to operate.
See this page for a Steb-by-step instruction to install and run on a Pi 3B CPU
https://github.com/K7MDL2/IC905_Ethernet_Decoder/wiki/Setup-on-a-Pi3B
I tested on 3.12.3 using the virtual dev environment. This lets you use multiple versions of Python more easily. I later ran the finished program on a Pi 3B with Python 3.11 and no venv.
-
Install Python. Consult online articles how to do this.
-
Set up the virtual dev environment. I used this guide: Virtual Env Setup.
I used the name 'venv' for the target virtual environment so that is what you will see in my example command lines. With venv active, you will see (venv) in front of your command line prompts.
You will need to install these external required libraries
- tcpdump
- python3-numpy
- python3-rpi.gpio (this will change for the Pi 5 support, probably rpio-lgpio library))
Since I am using the Lite OS which has no desktop, I used the built-in editor 'nano' but others will work.
See the Wiki Page at https://github.com/K7MDL2/IC905_Ethernet_Decoder/wiki/Setup-on-a-Pi3B
Normally the program is started automatically in the background as a service. To manually run it you first need to stop the service
systemctl --user stop Decoder905.service
With the service shut down you can make code or config edits and test run the program manually. Assuming you are inteh directory where your edited program lives run
./TCP905.py
Hit Ctl-C to quit.
If you want to retain the changes you made you can copy the program to /usr/local/bin and restart the service. Or rerun the install script. The modified program must be in the same folder with the install files and script.
The install script takes care of the auto-start configuration. See this Wiki page for details
https://github.com/K7MDL2/IC905_Ethernet_Decoder/wiki/Setup-on-a-Pi3B