IC22S Arduinoized?

VK3ZYZ

Moderator
Staff member
EDIT: For those that picked up one of my IC22S Arduino kits at the SADARC Ham Fest on Sunday 11 Sept. 2022, there is an error in the code supplied in the pre-programmed Arduinos. Please watch this forum for the fixed version.
Also, the circuit has an oops or two! I have just discovered this as I'm assembling a kit and writing detailed instructions on the whole mod process. All that will be posted on this forum when I have it finished. Also, just to top all that off, some OLED displays are smaller than the 3D printed cover and at least one of the displays I've tried since (as I'm modding another IC22S) looks to be DOA. Not happy!
Sorry!
And there is still more. Some ongoing options for the mod have appeared. So there will be a number of versions for you to chose from. That is good as this project is to encourage playing around. Soon I will mod the display cover for different display sizes and post the .stl files for you to make your own.


HELP: Does anyone have a circuit of the IC22S available? The one in the book and generally kicking around is for the IC240. Whilst it is similar, there are some differences too.

I'm starting to play with the idea from VK3BLD to grow the Arduino synth into an old IC22S.
A PCF8574 8 bit I2C chip will drive buffers to the PLL in place of the diode matrix.
Here is my first try.

EDIT: file updated as I had the duplex set at 1Mhz split, not 600Khz. That is what happens when you edit another file. It was from a 6M version.
EDIT again: Moved Rob back to Vic :)
 

Attachments

Last edited:

VK3ZYZ

Moderator
Staff member
Here is my test setup.
IC22S_Test1.jpg

Ignore the pencil notes on the circuit. I was fiddling with some numbers but found I'd missed the divide by 2 stage on the PLL loop.
The PCF8574 board is an LCD I2C driver board and the A0 link is bridged to move it's address from the "standard" 0x27 to 0x26.

The display shows the "channel number", frequency, mode, and CTCSS if used.
Here is receive simplex..
SimplexRX.jpg



Transmit simplex...
SimplexTX.jpg



and this the display showing the duplex info...
Duplex.jpg


finally, with the reverse button pressed...
Reverse.jpg

Note the frequency shows 600Khz below the previous display. Pushing the encoder button switches to reverse, non locking, so you can listen to check if you can hear a contact on the repeater input.
 
Last edited:

VK3ZYZ

Moderator
Staff member
Rob VK3BLD dropped his IC22S here this afternoon so I could start on the mods.
This looks like it will be very easy as the front section that holds the channel switch is removable.
IC22S_ChannelSwRemoved.jpg

With the main PCB front 2 screws removed, the PCB can be CAREFULLY lifted just enough to get the switch and diode matrix board out.
IC22S_SwAndDiodes.jpg


Then a replacement mount is 3D printed ...
IC22S_OLED_Mount.jpg


and with the OLED display and encoder installed, it is secured to the radio.
IC22S_OLED_Mounted.jpg

This is just pretending to work as yet ;) Yes, I'll eventually do the final one in BLACK!!!

The new Arduino controller board will plug into the diode matrix header.
IC22S_PLL_Board.jpg

There are virtually no major mods to do and they all can be easily reversed later if required.
The DUP A/DUP B switch will be disconnected too as the Arduino takes care of that.
 

VK3BLD

New member
I'm starting to play with the idea from VK2BLD to grow the Arduino synth into an old IC22S.
A PCF8574 8 bit I2C chip will drive buffers to the PLL in place of the diode matrix.
Here is my first try.

EDIT: file updated as I had the duplex set at 1Mhz split, not 600Khz. That is what happens when you edit another file. It was from a 6M version.
It is actually VK3BLD but that is a minor clerical error.
 

BillC

Active member
Is it possible for a moderator to repair one of mi my spelling mistakes from a long time ago?

Moderator: Yes "Is it possible for a moderator to repair one of my spelling mistakes from a long time ago?" for example. ;)

Ray:Yes, but protocol dictates that the moderator should never change a post unless the original author asks for the change.
 
Last edited by a moderator:

VK3ZYZ

Moderator
Staff member
NANO_VFO_IC22S.jpg

Proposed circuit.
EDIT: The I2C port expander is not needed. Look to later posts for the Arduino driving the PLL lines directly.
 
Last edited:

VK3ZYZ

Moderator
Staff member
The last update for tonight.
Yes, now it is BLACK!
IC22S_BLACK.jpg

And for those who want to make their own, here is the .stl file.
EDIT: I may make the font a bit thinner to more reflect the original and fit the black screws.
 

Attachments

Last edited:

VK3ZYZ

Moderator
Staff member
I put a prototype together tonight but there is something amiss. The output of the PCF8574 only drive the PLL chip to about 2V. It may be the board I used (not the one in the earlier photo) is crook.
I found a connector with wires from and old bit of junk so cut the end off so it has 10 wires. A bonus is the colours indicate the bit number.
PCF8574_board.jpg

ArduinoVFO_IC22S.jpg

Also, I did not check the radio was working before the mods started.
It is too cold in my shed now so more later.
 

VK3ZYZ

Moderator
Staff member
I found the wires I used were too big, and the connectors do not fit through the holes without them being enlarged. As I do not want to do any metalwork on these radios, this version will not use connectors at all, just wires soldered on to the board.
FrontCable.jpg

As I have some fine ribbon cable, that is what I will use.
 
Last edited:

VK3ZYZ

Moderator
Staff member
By rearranging some port allocations I think the I2C chip may not be needed. The Arduino just has enough pins to drive the PLL directly.
This will use the serial input and output pins too but I think that is ok as serial is not needed.
Updated circuit....
NANO_VFO_IC22S.jpg

The changed ports as below...

// encoder definitions
#define ENCODER_A A0
#define ENCODER_B A1
#define TRX A2 // PC2 input HIGH = TX, LOW = RX.
#define REV_SWITCH A3 // PC3 Encoder Button repeater reverse
// A4 = SDA
// A5 = SCL
// A6 // not used yet
// A7 // not used yet

// Use Port D to drive the PLL pins.
// NOTE the Arduino 0 and 1 pins swap the port bit order.
// 1 // PLL b0 PD0 (Serial TXD)
// 0 // PLL b1 PD1 (Serial RXD)
// 2 // PLL b2 PD2
// 3 // PLL b3 PD3
// 4 // PLL b4 PD4
// 5 // PLL b5 PD5
// 6 // PLL b6 PD6
// 7 // PLL b7 PD7

/* ********************* PortB0-PB4 used to generate CTCSS tones via R2R network.
#define spare2 8 // Sub Tone R2R b0 PB0
#define spare3 9 // Sub Tone R2R b1 PB1
#define spare4 10 // Sub Tone R2R b2 PB2
#define spare5 11 // Sub Tone R2R b3 PB3
#define spare6 12 // Sub Tone R2R b4 PB4
*/
 

Attachments

Last edited:

Josh

Member
looks like you still have miso, miso and sck if we’re still pressed for IO, also i think i’ve got a dip port expander kicking about if you need it?
 

VK3ZYZ

Moderator
Staff member
Thanks Josh but I am interested to see if, for fun, it can be done with just the Arduino.
And I realize I have 13 connected to the R2R network on the PCBs so I could go to 6 bit DtoA for the CTCSS.
 

VK3ZYZ

Moderator
Staff member
Driving the PLL seems very flaky. BUT, it is only being driven with 5V signals and I suspect that is the problem.
Tomorrow I'll try to put in a 5V to 9V buffer and see if that helps. I've tried it in 2 sets.
Some documentation that came with the Australian sets defining the diodes needed has a simple formula.
(SegFreqMhz -144.4Mhx)/0.25 gives the number needed.
I'll post the updated code and circuits when it all works.
 

VK3ZYZ

Moderator
Staff member
I did resolder some joints on the PLL board and actually had a contact with VK3YYY
The setup needs a bit of fixing....
Photo on 18-07-2022 at 3.17 PM.jpg

But it works :)
There are optos added to drive the PLL lines with around 7V, 9V - the LED drop. You always need LEDs!
I still have to find a good spot to feed +9V to the Arduino on TX so it can detect the duplex. But I have no experiance with the IC-22S circuit up to now. Cupper time and maybe a movie ;)
EDIT: The purple wire is the TX lead to the Arduino and this spot works :)
It is the "TM" connection. So far, I do not know if it is J5, J6 or J8. And it maybe some other one. I'll look into it later.
1658122402615.jpeg
 
Last edited:
Top