#ubitx New I2C/Digital I/O mod & firmware from W0EB/W2CTX #ubitx

Jim Sheldon

Ever since we first released the code using analog line A7 (the so called "spare") as the keyer paddle "dash" connection, I've received a number of comments privately and one or two public ones saying that the A7 was RESERVED for "S" and "Power" metering and we shouldn't have used it. Well rather than make me mad, these "negative" comments along with a lot of information from another close friend who had been researching it, the entire direction of our efforts changed.

We decided that since the I2C communication bus was already implemented on the Raduino card to control the Si5351A clock generator/VFO, and it WAS accessible on the back of the card via the Arduino Nano mounting pins that were left full length when they were soldered to the Raduino originally (at least on mine they were).

I hinted about the possibility of using I2C for the display and immediately several persons cautioned against this because of "NOISE" bursts in the receiver. Not easily swayed and having 2 uBITX transceivers on the desk to work with, I said the heck with it and dove into it with both feet. Picking off the I2C, Power & Ground for an I2C display controller that could coexist with the 3.3 volts the Si5351 uses on the bus to communicate with the Nano was relatively easy. While I was working on the hardware, Ron - W2CTX worked on the initial software and it wasn't long before I had some controller modules in from Amazon that ran on 5 volts. They use the PCF8574 chip. On the Amazon supplied boards, the open drain outputs of the PCF8574 were pulled up to +5 volts by a pair of 4.7K resistors. This would have destroyed or at least severely damaged the 5351 so we removed those 2 resistors and now, the 3.3 volts on the bus via the pullups in the 5351 itself were sufficient to allow the PCF8574 to communicate with the Nano and a standard 2 X 16 display while power the display from the 5 volts on the Raduino like the original display was in the first place so we didn't add much extra load to the on board 7805 (put a 47 ohm 2 watt resistor in series with the 7805's input and you'll amost halve the generated heat).

Once I had the first version of the software in from Ron and had completed the I2C connections to the Raduino, I unplugged the old display from the Raduino and cabled up a prepared display with the modified I2C controller (removed resistors), fired it up and Hello! Once the contrast was set, it looked just like the old display did. I plugged in a pair of headphones and with all the stuff just hanging out of the box, started tuning. I found absolutely NO noise bursts associated with the I2C operation. (I do use a solid power supply that doesn't sag under a load - should be 5 amps or greater).

Okay, with that working, here were 6 completely unused DIGITAL I/O lines so Ron and I decided on using D8 for the paddle dot input, D9 for the Dash and as an afterthought and easier to code - D10 for the hand key --
now comes the sneaky part. Since we don't key CW when in SSB mode and we don't use Push to Talk when in CW mode, he co-opted D10 for both "Hand Key" and "External Keyer" plus in SSB mode as the Push To Talk line. SMOC! (simple matter of coding). Though a separate key jack is probably the best, one could rewire a hand key to use the "Ring" terminal (PTT) of the mic connector to hook it up and in an emergency you could even key the rig in CW using the PTT switch on the microphone.

I've written a DIY manual on picking off the I2C bus, how to hook up a display and how to wire up the now free Digital I/O pins for CW and a complete new manual for the included software all in the attached zipfile.

Disclaimer - You need to be willing to perform surgery on the Raduino card and all the input jacks safely in order to use this software. It WILL NOT WORK unless you make the mods first. A readme.txt file, 2 pdf manuals and a directory containing the program sketch are included in the attached zip.

Use them at your own risk.

73, Jim Sheldon - W0EB with Ron Pfeiffer - W2CTX

Join BITX20@groups.io to automatically receive all group messages.