Topics

#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

Jim Sheldon
 

Additional info to what I just posted - I forgot to mention, now that we're using Digital inputs for the CW and PTT functions, this actually freed up 3 analog lines - A6, A7 and the A3 PTT line so you guys that chose to make the I2C modifications and Digital I/O mods for the CW and PTT inputs, you have your means to implement your S meter, Power and SWR metering.

Oh and I didn't mention that using the I2C bus for the display allows us to use larger standard displays. We've tested one of my 2 uBITX rigs with a 4 X 20 display using the same cheap I2C controller and just a slight software modification to take advantage of the larger display.

The only problem I have with that is the extruded aluminum box front panel layout I chose for the standard display would have to be severely modified to provide room for the large display.

I have a third uBITX coming (they say shipment in about 2 weeks) and I'll put that one into a much larger metal enclosure so I can use the bigger displays.

Jim Sheldon, W0EB

KD8CGH
 

Great work!
In the doc you mention the need to be careful in selection of the I2C display controller and talk about a board from Amazon by seller "IC Module". Would provide a link? My search for IC controller on Amazon doesn't turn up one from that seller.
    Bob   KD8CGH

Jim Sheldon
 

Bob, I think after I posted that, Amazon ran out of them.  Any I2C controller should work as long as it can provide 5 volts to the LCD display while talking on the I2C bus with only 3.3 volts to keep from smoking the VFO generator in the uBITX.  

If the controller uses the PCF8574 chip and does NOT have pull up resistors to 5 volts (around 4.7K) on pins 14 and 15 of the chip it should work.  If it does have resistors on pins 14 and 15 just unsolder them and it will still work.  The lines used for SDA and SCL in the PCF8574 are "open drain" in the chip so it can actually talk to the Nano reliably on the I2C bus without those reisistors as it will use the pullups to 3.3V in the Si5351.  Almost zilch current draw there so no problem.

There are different suppliers on Amazon that sell that same controller - Here's a photo of the board itself on the back of the display (I believe this picture is in the hardware manual I sent -).  It's the one with the LED lit up on it.  The two resistors that were removed are the two that were right next to the PCF8574 chip on the same row as the LED.  Do a search on I2C controller and hopefully you will find one of them.

Jim

------ Original Message ------
From: "KD8CGH" <rkayakr@...>
Sent: 1/27/2018 3:30:51 PM
Subject: Re: [BITX20] #ubitx New I2C/Digital I/O mod & firmware from W0EB/W2CTX

Great work!
In the doc you mention the need to be careful in selection of the I2C display controller and talk about a board from Amazon by seller "IC Module". Would provide a link? My search for IC controller on Amazon doesn't turn up one from that seller.
    Bob   KD8CGH

Jim Sheldon
 

OOPS, I forgot to mention that you have to have the LiquidCrystal_I2C library directory installed in the Arduino IDE's "Libraries" directory or it won't compile.  Just to keep you from having to hunt for the correct llibrary, I've attached a zip file containing the library files.  Unzip the file to somewhere you can find it, and you will have a directory called "LiquidCrystal_I2C  .. Next, open your Arduino IDE's "Libraries" directory and move this complete directory intact into the Libraries directory for the IDE.  Once its there, the program should compile just fine.

Jim Sheldon - W0EB

Art Olson
 

Jim

Thanks. Will do it in the morning 

Art

Sent from my iPhone

On Jan 28, 2018, at 6:50 PM, Jim Sheldon <w0eb@...> wrote:

OOPS, I forgot to mention that you have to have the LiquidCrystal_I2C library directory installed in the Arduino IDE's "Libraries" directory or it won't compile.  Just to keep you from having to hunt for the correct llibrary, I've attached a zip file containing the library files.  Unzip the file to somewhere you can find it, and you will have a directory called "LiquidCrystal_I2C  .. Next, open your Arduino IDE's "Libraries" directory and move this complete directory intact into the Libraries directory for the IDE.  Once its there, the program should compile just fine.

Jim Sheldon - W0EB
<LiquidCrystal_I2C.zip>

Jim Sheldon
 

Haven't heard back on this one. Were you able to get a good compile?

Jim

------ Original Message ------
From: "Art Olson" <olson339@...>
Sent: 1/28/2018 5:59:17 PM
Subject: Re: [BITX20] #ubitx New I2C/Digital I/O mod & firmware from W0EB/W2CTX

Jim

Thanks. Will do it in the morning 

Art

Sent from my iPhone

On Jan 28, 2018, at 6:50 PM, Jim Sheldon <w0eb@...> wrote:

OOPS, I forgot to mention that you have to have the LiquidCrystal_I2C library directory installed in the Arduino IDE's "Libraries" directory or it won't compile.  Just to keep you from having to hunt for the correct llibrary, I've attached a zip file containing the library files.  Unzip the file to somewhere you can find it, and you will have a directory called "LiquidCrystal_I2C  .. Next, open your Arduino IDE's "Libraries" directory and move this complete directory intact into the Libraries directory for the IDE.  Once its there, the program should compile just fine.

Jim Sheldon - W0EB
<LiquidCrystal_I2C.zip>

Art Olson
 

Jim

 

Yes got the code to compile. 1 issue and 1 observation

 

Issue – Ubitx goes into transmit as soon as I power on. Disconnect pin 13 stops transmitting. Of course without PTT I can not access menu. I haven’t done the last step mirror the PTT on the mic connector – is that needed in order to stop the transmit at power on.

 

On the Microphone jack, remove the Orange wire (comes from the Raduino’s digital plug) that goes to the Pin 2 (Ring) connection. Replace this with another wire (either soldered or use a wire with a pin on one end) between Pin 2 on the microphone jack and pin 13 on the old LCD connector. This is digital line D12 and is the PTT/Hand Key/External Keyer connection. – I performed this mod but not the lst step – maybe a bit confusing for this old head but we already have a PTT/Mic jack

 

Observation – new menu system is confusing for me. Maybe after the PTT issue is fixed I will get comfortable with it. If not will probably revert to previous version of you code

art

 

From: BITX20@groups.io [mailto:BITX20@groups.io] On Behalf Of Jim Sheldon
Sent: Monday, January 29, 2018 10:31 PM
To: BITX20@groups.io
Subject: Re: [BITX20] #ubitx New I2C/Digital I/O mod & firmware from W0EB/W2CTX

 

Haven't heard back on this one. Were you able to get a good compile?

 

Jim

 

------ Original Message ------

From: "Art Olson" <olson339@...>

Sent: 1/28/2018 5:59:17 PM

Subject: Re: [BITX20] #ubitx New I2C/Digital I/O mod & firmware from W0EB/W2CTX

 

Jim

 

Thanks. Will do it in the morning 

 

Art

Sent from my iPhone


On Jan 28, 2018, at 6:50 PM, Jim Sheldon <w0eb@...> wrote:

OOPS, I forgot to mention that you have to have the LiquidCrystal_I2C library directory installed in the Arduino IDE's "Libraries" directory or it won't compile.  Just to keep you from having to hunt for the correct llibrary, I've attached a zip file containing the library files.  Unzip the file to somewhere you can find it, and you will have a directory called "LiquidCrystal_I2C  .. Next, open your Arduino IDE's "Libraries" directory and move this complete directory intact into the Libraries directory for the IDE.  Once its there, the program should compile just fine.

Jim Sheldon - W0EB

<LiquidCrystal_I2C.zip>


Virus-free. www.avg.com

Jim Sheldon
 

OOPS,
you accidentally got some update code (lets go back to private email on this). you have my email address - I have a quick fix for this

Jim

Joel Fournol
 

OK jim excuse me ,but where have you find case for µbitx? 73 joël f6cht.

i have not your email adress!!

Le 30/01/2018 à 16:24, Jim Sheldon a écrit :
OOPS,
you accidentally got some update code (lets go back to private email on this). you have my email address - I have a quick fix for this

Jim