Well, today I found a slightly simpler approach to using one of these controllers... getting rid of the interconnecting box and Cannon plug cable.
I found a more modern multi-pin Cannon plug in the garage that is not compatible with these controllers, but the pins are the same diameter! So I've extracted some of the female pins (already crimped on to wires) to connect to the back of the control unit.
I will endeavor to cut a plastic disk, and drill holes to match up with the pin pattern, effectively making my own connector, to interface it with an Arduino mega.
This project will use 23 Digital inputs to read the frequency and mode selection of the controller, one analogue input for radio volume control, one analogue output for dimmable panel lighting, two for SDA and SCL of the I2C interface (27 total).
This will leave 19 spare I/O pins, some of which could be used for the V/UHF system switches too (PTT, Stby / Emerg radio, Intercom, etc....), so all radio controls are on one network address, leaving some spare pins on the Mega.
21 Aug 2016 20:10 - 21 Aug 2016 20:13#30761by ScottBouch
I've been looking at different Arduino IDE compatible boards for this, as it would be quite nice to have the controller on it's own node without wasting too many I/O, but also to reduce the physical footprint, as the MEGA is quite a big board due to the layout. This would allow for a simpler physical build too, as hardware pieces wouldn't have cross-connections, making it more modular, and making transport easier. But in terms of software, the software model for the controller you built, would marry up better to the real hardware in a modular fashion.
So far, I've found these two boards, that are cheaper than the Mega (although you can buy unofficial copy Mega's for cheaper).
21 Aug 2016 22:50 - 21 Aug 2016 23:04#30767by ScottBouch
I've been CADding-up the Cannon KO3-21-30-SN connector, as there is pretty much no hope of finding one.
I've now completely stripped that other newer connector apart, and the it's pins fit really nicely, but when I tried a few on the back of my controller, they have a tendency to touch each other and short. This can be overcome by using some sleeving, but as I can get stuff laser cut, I thought i'd try and make up a new insert that can hold the pins.
Plans are to use a couple of layers of plastic with holes of the right diameters to carry the pins and lock them in place, shoulders sandwiched between the plastic layers.
Making this connector will reduce the amount of klobber required.. The Arduino based microcontroller can sit right on the back of the Control Unit, just requiring connections for DC power and serial data (4 conductors in all), instead of the cable and Interconnecting Box:
Just re-visiting this thread, I have been coming up with a way tp reduce the I/O pin count needed to interface with these controllers.
Instead of connecting an Ardiono input pin to each connector pin, I realised that for the rotary switches, only one or two pins at a time will be grounded. by connecting a bunch of resistors to each pin (details to follow), I can use one analogue input per rotary switch!
It works by passing a different voltage level to the Arduino depending on the switch position, this vastly reduces the I/O pin count.
I've done some calculations and come up with some resistor values - once I've tried it (over the next couple of weeks hopefully) I'll publish the circuit details and the Arduino code.