Last night I reached a significant milestone in this DIY remoterig project for the IC-706: I had the radio and the front panel talk to each other through a pair of Beaglebones and without any PC in the loop and without any wires between the boards for transferring power and discrete signals.
Reaching this milestone since my last post was mostly a hardware exercise. I mounted the Beaglebones on a breadboard that contains auxiliary power supply and power switching circuitry.
On the server side a single OKI-78SR DC/DC converter is used to create a stable 5 VDC supply to the Beaglebone. The PWK signal which normally goes to ground when the POWER button is pressed. This is emulated by a simple transistor switcher with a BC547B transistor controlled through GPIO 20 of the Beaglebone.
On the client side I also used the OKI-78SR to generate the 5 VDC but in front of it there is an 8 VDC regulator because the front panel need 8 VDC. Normally the 8 VDC comes from the radio when power is switched on. In this case I created an on/off switch using a P-MOSFET and an NPN transistor controlled through GPIO 20 of the Beaglebone.
Below you can see my preliminary sketches of these power switching circuits. The part numbers are more or less arbitrary based on what I could find in my boxes. I am pretty sure the IRF9530 is totally overkill for driving the LCD.
The software part for controlling these power switching units is still to be written. For now, I can only control them from the shell using:
$ echo 20 > /sys/class/gpio/export
$ echo "out" > /sys/class/gpio/gpio20/direction
$ echo 1 > /sys/class/gpio/gpio20/value
$ echo 0 > /sys/class/gpio/gpio20/value
This poses a significant challenge when powering the radio on since there is a dialog taking place where the radio and the panel send handshake messages to each other. The info I sent to OK1ZIA states that it is radio that initiates the dialog by sending FE F0 FD to the panel until the panel responds with the same message and then sends FE F1 FD. It seems, however, that the panel can initiate the dialog as well if it is powered up before the radio.
This is good news because it will allow the power-up handshake to be emulated on both server and client side instead of sending these messages over the network. As far as I can tell the initiator expects response in less than a second, otherwise the power-up procedure is aborted. This can be difficult to accomplish on a bumpy network connection while on the road.
The next item on my TODO list is no to make the power on / power off sequences work by only exchanging command messages over the network.