Author Topic: Programming volatile memory boards in older Icom Rigs and radio upgrades  (Read 68830 times)

0 Members and 1 Guest are viewing this topic.

Offline AF6LJ

  • Supporter
  • ****
  • Posts: 2902
  • Country: us
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #50 on: December 15, 2017, 01:01:30 pm »
There is minimal information in the service manual regarding how the memory module is mapped. the Russian information is much more valuable.
A word on the lower frequency limit for the receiver....
The PIEXX module takes the radio down to 10KHZ, while you won't hear VLF signals down there the radio is quite useful below 60KHZ, which means you can hear WWVB on a quiet night on an active loop or a longwire antenna. The PLL will be noisy down toward 30KHZ injection level from the sub loop into the main loop mixer has an effect on this noise, it also has an effect on spurs generated by the PLL. Don't be surprised at the level of noise as you approach 0HZ...
Sue AF6LJ
 
The following users thanked this post: hua

Offline AF6LJ

  • Supporter
  • ****
  • Posts: 2902
  • Country: us
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #51 on: December 15, 2017, 01:02:39 pm »
Looking forward to watching the video Buddy, will do sometime later on today.
Sue AF6LJ
 
The following users thanked this post: hua

Offline CJay

  • Super Contributor
  • ***
  • Posts: 4136
  • Country: gb
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #52 on: December 15, 2017, 01:05:52 pm »
See, now I really want one of these radios so I can get hands on and experiment but they're *rare*, all I can find is ones broken down for parts.

I'm not actually that interested in using it though, I've already got myself an Icom HF set...
 
The following users thanked this post: hua

Offline AF6LJ

  • Supporter
  • ****
  • Posts: 2902
  • Country: us
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #53 on: December 15, 2017, 01:17:51 pm »
See, now I really want one of these radios so I can get hands on and experiment but they're *rare*, all I can find is ones broken down for parts.

I'm not actually that interested in using it though, I've already got myself an Icom HF set...
The IC-745 has a really good receiver, and if care is taken in aligning the PLL, the undocumented adjustments it can be a very quiet receiver.
They are getting old enough that recapping is not a bad idea, but that will be a lot of work.
Other radios based on much the same hardware would be the...
IC-751A and the IC-765.
Sue AF6LJ
 
The following users thanked this post: hua

Offline AF6LJ

  • Supporter
  • ****
  • Posts: 2902
  • Country: us
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #54 on: December 15, 2017, 01:24:20 pm »
They did make an Interface Unit EX309 for the radios. i have one installed in mine. Never used it. Don't recall ever seeing any instructions on commands/control possible. It just came with a single page with some pinout info and installation instructions.
It might be interesting if someone could find more of those Tech Talk notes. So far nothing much on ICOM sites, some more recent ones but nothing old. Maybe time to check the WAYBACK Machine.


The Interface unit was used among other things transcieve operation with an Icom R-70.
Years ago I installed one for someone I knew for that purpose.
Sue AF6LJ
 
The following users thanked this post: hua

Offline Co6aka

  • Supporter
  • ****
  • Posts: 299
  • Country: us
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #55 on: December 15, 2017, 05:58:43 pm »
The PIEXX module takes the radio down to 10KHZ, while you won't hear VLF signals down there...

Also, instructions for editing the lower and upper frequency limits are in the text file in the ICOMRAM.zip file, and it might be more practical to change the lower limit to 9kHz instead of 10kHz. As for the sensitivity rolloff below 100kHz, that can be rectified by overhauling the front end bandpass filter. I did several of those back in the days but I've lost all of my mod notes. If there's a way to add another 48 hours to my days I'll do a teardown on my R71A and reverse-engineer my mods. (My battery is long dead so I too need to dig out my interface and reprogram it.)

I do recall that one of the issues is with an inductor that creates the ground return for the DC that operates the PIN diodes... Initially I went up a couple orders of magnitude, but my final mod involved switching the sub-HF bands (500kHz to 1.6MHz, and 100kHz to 500kHz, if merembercorrecry -- now I actually am a "OM")  with tiny RF relays. I had also modded the PIN driver circuitry to drive the diodes harder. There's also a moronic attenuator in the sub-HF front end filters, at least in the R71 receiver, that's begging to be removed. Anyway...my R71A ended up being quite hot all the way down to 10Khz, and merember listening to something that's on 10kHz. Oscillator noise is an issue and that'll become quite apparent as you approach 10kHz, but again that can be significantly reduced.
Co6aka says, "BARK! and you have no idea how humans will respond."
 
The following users thanked this post: hua

Offline Radio TechTopic starter

  • Frequent Contributor
  • **
  • Posts: 942
  • Country: us
  • KC4UMO Buddy
    • Hobby Forum
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #56 on: December 15, 2017, 07:20:05 pm »
Looking forward to watching the video Buddy, will do sometime later on today.

Cool deal Sue. Nothing fancy no technical stuff in it.  Just mostly trying this swap and some flapping.


I really appreciate all this information you guys are sharing.
I had to work all day today, had 8 hours in at noon.  Was going to run to town and pick up a parallel port from Best Buy but I just spent some time searching for my old programmer. Can not find it, may be in the attic. Started looking for ,y box of old chips, need another CD4040. Can not find those lol.  My store room is stacked to the ceiling with boxes.

Ordered a Arduino ultimate starter kit today.  Going to try and talk with it using that. We will see.
 
The following users thanked this post: hua

Offline Ian.M

  • Super Contributor
  • ***
  • Posts: 12933
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #57 on: December 15, 2017, 07:54:31 pm »
To give you a head start on accessing parallel memory with an Arduno, take a look at http://danceswithferrets.org/geekblog/?p=315 which reads a 27128 EPROM using an Arduino Mega.   As the ICOM memory module has half the number of data lines, and fewer address lines, you should be able to use the Arduino Uno you are getting in your starter kit.

Take the sketch code from that link, delete the lines that refer to higher numbered address pins or data pins the module doesn't have, re-allocate the pins to pin numbers that the Uno has free (don't use 0 or 1 as they are needed for the comms link to the PC, but you can use the analog pins, see https://www.arduino.cc/en/Tutorial/AnalogInputPins ), delete the line in the loop() function that prints the upper nibble of each byte:
Code: [Select]
      Serial.print(hex[ (d[y] & 0xF0) >> 4  ]);and delete the ASCII dump code that follows it a few lines later, keeping the line:
Code: [Select]
    Serial.println(""); onwards, and you should be reading ICOM memory modules with under an hour's work. 

When you start adding code to write to the memory module put 330R resistors in series with each data line so if you FUBAR the timing to change the data pins from inputs to outputs, and do so while the module is still in read mode, any level conflicts don't cause damage.


« Last Edit: December 15, 2017, 07:56:20 pm by Ian.M »
 
The following users thanked this post: Radio Tech, hua

Offline AF6LJ

  • Supporter
  • ****
  • Posts: 2902
  • Country: us
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #58 on: December 15, 2017, 08:17:30 pm »
The PIEXX module takes the radio down to 10KHZ, while you won't hear VLF signals down there...

Also, instructions for editing the lower and upper frequency limits are in the text file in the ICOMRAM.zip file, and it might be more practical to change the lower limit to 9kHz instead of 10kHz. As for the sensitivity rolloff below 100kHz, that can be rectified by overhauling the front end bandpass filter. I did several of those back in the days but I've lost all of my mod notes. If there's a way to add another 48 hours to my days I'll do a teardown on my R71A and reverse-engineer my mods. (My battery is long dead so I too need to dig out my interface and reprogram it.)

I do recall that one of the issues is with an inductor that creates the ground return for the DC that operates the PIN diodes... Initially I went up a couple orders of magnitude, but my final mod involved switching the sub-HF bands (500kHz to 1.6MHz, and 100kHz to 500kHz, if merembercorrecry -- now I actually am a "OM")  with tiny RF relays. I had also modded the PIN driver circuitry to drive the diodes harder. There's also a moronic attenuator in the sub-HF front end filters, at least in the R71 receiver, that's begging to be removed. Anyway...my R71A ended up being quite hot all the way down to 10Khz, and merember listening to something that's on 10kHz. Oscillator noise is an issue and that'll become quite apparent as you approach 10kHz, but again that can be significantly reduced.
The R-71 has a better PLL than the IC-745, as I remember the loop is a three order PLL as apposed to the two order PLL in the 745, both will do 10HZ steps. The 745's RX front end does lend itself to mods for LF / VLF, I have wanted to do it for many reasons, not the least of which is for listening to nature using a microphone instead of an antenna (10-50KHZ).
Sue AF6LJ
 
The following users thanked this post: hua

Offline Radio TechTopic starter

  • Frequent Contributor
  • **
  • Posts: 942
  • Country: us
  • KC4UMO Buddy
    • Hobby Forum
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #59 on: December 15, 2017, 08:32:48 pm »
To give you a head start on accessing parallel memory with an Arduno, take a look at http://danceswithferrets.org/geekblog/?p=315 which reads a 27128 EPROM using an Arduino Mega.   As the ICOM memory module has half the number of data lines, and fewer address lines, you should be able to use the Arduino Uno you are getting in your starter kit.

Take the sketch code from that link, delete the lines that refer to higher numbered address pins or data pins the module doesn't have, re-allocate the pins to pin numbers that the Uno has free (don't use 0 or 1 as they are needed for the comms link to the PC, but you can use the analog pins, see https://www.arduino.cc/en/Tutorial/AnalogInputPins ), delete the line in the loop() function that prints the upper nibble of each byte:
Code: [Select]
      Serial.print(hex[ (d[y] & 0xF0) >> 4  ]);and delete the ASCII dump code that follows it a few lines later, keeping the line:
Code: [Select]
    Serial.println(""); onwards, and you should be reading ICOM memory modules with under an hour's work. 

When you start adding code to write to the memory module put 330R resistors in series with each data line so if you FUBAR the timing to change the data pins from inputs to outputs, and do so while the module is still in read mode, any level conflicts don't cause damage.

Thanks.
I am new to Arduino.  Zero experience so that too will be a learning curve. Appreciate the heads up.
 
The following users thanked this post: hua

Offline Radio TechTopic starter

  • Frequent Contributor
  • **
  • Posts: 942
  • Country: us
  • KC4UMO Buddy
    • Hobby Forum
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #60 on: December 15, 2017, 08:35:09 pm »
This was just emailed to me by a user named Phil.

May help a bit.


 
The following users thanked this post: hua

Offline AF6LJ

  • Supporter
  • ****
  • Posts: 2902
  • Country: us
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #61 on: December 15, 2017, 08:51:01 pm »
Thanks buddy that looks right to me.
I reversed the A module sometime back and never documented it much more than a back of the envelop drawing, and that agrees with what I had.
:)
Sue AF6LJ
 
The following users thanked this post: Radio Tech, hua

Offline Radio TechTopic starter

  • Frequent Contributor
  • **
  • Posts: 942
  • Country: us
  • KC4UMO Buddy
    • Hobby Forum
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #62 on: December 15, 2017, 09:04:53 pm »
No problem Sue.  Phil tells me he has more information he may share also.
This is going to turn out to be a great project. He found this on a Japanese forum some time back.

Glad to know I am not the only one that draws stuff on envelopes. I do this all the time. Also sales flyers, scrap paper. boxes ect.  Where I used to work I even drawn schematic right on the bench! Problem is you can never find that little piece of paper a few weeks later.

 
The following users thanked this post: hua

Offline Ian.M

  • Super Contributor
  • ***
  • Posts: 12933
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #63 on: December 15, 2017, 09:24:30 pm »
Phil's RAM module schematic + the uPD444C SRAM datasheet I linked to in reply #27, clarify the remaining issues that needed resolving to desigh an Arduino based programming jig.  Q1 is configured as an inverter, with a speedup cap and a Baker clamp, and when combined with the quad OR gate,  only allows /WR through to the RAM /WE pin, if one or more of AD8, AD9 or WP is high.   WP is low impedance.  AD10 is the RAM /CS signal.  The programming jig should tie WP high to allow the whole memory to be written.

To read it simply keep /CS low, and /WR high.  Apply a 10 bit address on AD0-AD9 and read the data on D0-D3.

To write a location, start with /CS and /WR high,  and the desired address on AD0-AD9,  Take /CS low, then /WR low.  Set D0-D3 as outputs with the desired nibble to write on them,  then* take /CS high and set D0-D3 back to inputs then finally take /WR high.  This sequence avoids data bus conflicts between the Arduino and the memory module.

The Uno has *just* enough pins to interface to the memory module. 

* theoretically there is a 300ns delay here but an Arduino clocked at 16MHz has an instruction cycle type of 62.5ns, so it needs less than five cycles delay, and digitalWrite() is notoriously slow on AVR based Arduinos so no extra delay will be needed.
« Last Edit: December 15, 2017, 10:12:38 pm by Ian.M »
 
The following users thanked this post: hua

Offline Radio TechTopic starter

  • Frequent Contributor
  • **
  • Posts: 942
  • Country: us
  • KC4UMO Buddy
    • Hobby Forum
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #64 on: December 15, 2017, 09:57:55 pm »
Wow Ian.M
It really amazes me how you guys  can look at the schematic and see how that code flows.  Truly an art.  With what little bit I done over the years, (mostly in the 80's) I will  not even pretend to understand all that you posted.  A lot od studying for me.  It is great to hear the Arduino has just enough pins and slow enough to get the job done.  Looks like we just may learn a lot from this and not only set the goal for reprogramming the original data back to the board but make it a lot better than it was.

This has me so excited.


Arrr 502 bad gateway from forum. Lost all the information IO spent 30 minutes trying to say.
 
The following users thanked this post: hua

Offline Co6aka

  • Supporter
  • ****
  • Posts: 299
  • Country: us
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #65 on: December 15, 2017, 10:41:50 pm »
The programming jig should tie WP high to allow the whole memory to be written.

Actually, it would be better to have WP normally-low so "just in case" the critical low-address data is protected while reading and verifying an incoming board. Perhaps use a switch and add red/green LEDs to indicate the protection state. I kinda like the Arduino idea; provide default config data for all models, and offer the option of altering high/low freqs, etc. Makes me recall the days of the R-1801 -- damn I'm OLD. :(

FWIW, the replace-the-CPU-board idea is something I've always wanted to do. The functions of the CPU in these radios are trivial, and with a modern controller it'd actually be a fun project. Add USB, maybe ethernet and bluetooth, at least 100,000,000 memories, robo-scanning, the voice of HAL-9000 with some custom tweaks for Dave.
Co6aka says, "BARK! and you have no idea how humans will respond."
 
The following users thanked this post: hua

Offline Ian.M

  • Super Contributor
  • ***
  • Posts: 12933
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #66 on: December 15, 2017, 10:59:50 pm »
Have the switch disconnect /WR and take it high to protect the whole memory.

Handling all the fancy stuff like default data, editing memories and frequency limits etc. can be done PC side  The Arduino then only has to handle the memory board interface, reading and writing individual nibbles or blocks of nibbles on command, with a command to set all interface pins to inputs so that power to the memory board can be removed to allow it to be connected/disconnected without powering down the Arduino.
 
The following users thanked this post: hua

Offline German_EE

  • Super Contributor
  • ***
  • Posts: 2399
  • Country: de
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #67 on: December 16, 2017, 08:38:24 am »
I agree with the circuit analysis y Ian M and at last we know what that CMOS chip does. I don't think it matter too much but make sure that you pay attention to the address pins on the RAM as there is NOT a one to one mapping of the pins. In theory you can use address pins in any order and the ICOM engineers probably did it this way because of PCB layout.

Trying to get to sleep last night I was thinking about this problem and it might be possible to replace the entire contents of the PCB with a single chip. If a processor such as a PIC or Arduino could monitor address lines 0-10 plus a handful of control lines then we could use the data lines without modification, just wire them straight to the data bus on the transceiver. Most micros these days contain some NVRAM and this could be used for parameter storage.

As mentioned before RFI is the only issue and I don't know how the receiver will react.
Should you find yourself in a chronically leaking boat, energy devoted to changing vessels is likely to be more productive than energy devoted to patching leaks.

Warren Buffett
 
The following users thanked this post: hua

Offline Ian.M

  • Super Contributor
  • ***
  • Posts: 12933
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #68 on: December 16, 2017, 10:38:22 am »
That's a lot harder than it would initially appear to be.  The use of a speedup circuit for the NPN inverter indicates that the set's access to the memory board  has fairly fast timings, at least during write cycles.  Assuming back to back execution by the set's 4MHz CPU, of setting an address or strobing a control pin and expecting a result, a MCU emulating the memory module would have to respond within one instruction cyvle of the set's CPU, and even in hand-optimised assembler, with an order of magnitude faster MCU than the set's 4MHz processor, that would be difficult.   The more you push up the clock speed to ease this constraint, the worse the EMI problems.

IMHO developing a replacement for the set's CPU and doing away with the need for the battery backed memory board would be the optimum way forward.   For EMI reasons, I wouldn't advocate bringing USB into the set, so a slew rate controlled opto-isolated serial interface would probably be the best option for those wanting PC control and management.
 
The following users thanked this post: hua

Offline albert22

  • Regular Contributor
  • *
  • Posts: 177
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #69 on: December 16, 2017, 01:20:08 pm »
I had no time to read the last posts. Just gave a quick look at the schematic. BTW thanks a lot for it and other useful info that have been posted.
The memory map of the module seems to be clear now. It defines what part of the memory is RW and which is Read only. Making it possible to separate the memory in two chips a RAM and an EPROM  just as the commercial modules do.
The other conclusion is that it is not possible to clone  modules by swapping them when the rig is powered on.
Again I just did a quick glance, later I will try to study it with more detail.
I have not powered my 751A in years and a friend of mine has lost the data on his 751 so I will try to go with the RAM/EPROM solution.
regards
 
The following users thanked this post: hua

Offline AF6LJ

  • Supporter
  • ****
  • Posts: 2902
  • Country: us
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #70 on: December 16, 2017, 01:47:29 pm »
A universal programmer using an Arduino is a worthy project, not just for this but for other projects radios as well.
A logic board replacement is a nice idea, however the radio really doesn't lend itself to remote control operation, a very limited number of functions are not analogue.
One advantage to building a replacement logic board would be to eliminate that annoying jump in carrier frequency when changing modes. The fact that Icom didn't deal with that to begin with indicated a bit of laziness on their part.

These radios were set apart from others of the time for many reasons.
The receiver preformed very well for its day. The noise blanker was one of the very best you could get at the time for the Soviet OTH Radar. Also the 745 represented the dividing line between the low cost radios Icom made and their higher tier radios. The only thing that separated this radio from the 751A, 761 was feature set 765,  While the IC-781 was the top tier radio it was in a class by itself. 
The other three radios did share quite a bit in common with the IC-745.
Sue AF6LJ
 
The following users thanked this post: hua

Offline Radio TechTopic starter

  • Frequent Contributor
  • **
  • Posts: 942
  • Country: us
  • KC4UMO Buddy
    • Hobby Forum
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #71 on: December 16, 2017, 04:53:04 pm »
Thanks for all the information all.

I agree Sue, the Arduino programmer may be the best yet. And as you said not just for this radio but for many others out there.

This morning I was rambling in the shop trying to find the programmer I built years ago. Still no luck. It is here somewhere. If I could find it I would probably be in luck old school.

I found my original computer Intel Celeron  (386?) with Windows 98 on it. I also found my old Modular Circuit Technology 4 gang eprom programmer Mod-Met-4
The machine powered up and the programmer still works. Pity the programmer will not work for this.
The programmer has it's own card that plugs into the pc.
On top of the PC is an ultra violet eraser.

Last picture is a dump from a 27128 chip using an editor
« Last Edit: December 16, 2017, 05:06:52 pm by Radio Tech »
 
The following users thanked this post: hua

Offline German_EE

  • Super Contributor
  • ***
  • Posts: 2399
  • Country: de
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #72 on: December 16, 2017, 05:27:25 pm »
I was once told that good engineers never throw anything away, it's always saved 'just in case it comes in useful someday'.

Now we know why.
Should you find yourself in a chronically leaking boat, energy devoted to changing vessels is likely to be more productive than energy devoted to patching leaks.

Warren Buffett
 
The following users thanked this post: hua

Offline AF6LJ

  • Supporter
  • ****
  • Posts: 2902
  • Country: us
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #73 on: December 16, 2017, 05:59:15 pm »
Thanks for all the information all.

I agree Sue, the Arduino programmer may be the best yet. And as you said not just for this radio but for many others out there.

This morning I was rambling in the shop trying to find the programmer I built years ago. Still no luck. It is here somewhere. If I could find it I would probably be in luck old school.

I found my original computer Intel Celeron  (386?) with Windows 98 on it. I also found my old Modular Circuit Technology 4 gang eprom programmer Mod-Met-4
The machine powered up and the programmer still works. Pity the programmer will not work for this.
The programmer has it's own card that plugs into the pc.
On top of the PC is an ultra violet eraser.

Last picture is a dump from a 27128 chip using an editor
You could use that.....
You would need to build an adapter, so it is possible.
However.....
I think all the PC overhead is overkill for projects like this in this day and age.
Sue AF6LJ
 
The following users thanked this post: hua

Offline Radio TechTopic starter

  • Frequent Contributor
  • **
  • Posts: 942
  • Country: us
  • KC4UMO Buddy
    • Hobby Forum
Re: Programming volatile memory boards in older Icom Rigs.
« Reply #74 on: December 16, 2017, 06:32:01 pm »
German_EE
I never throw anything out. One of my many problems LOL.

Agree Sue,
Patiently waiting for my Arduino to arrive. Should be here on the 21st.  Just in time for Christmas break.
Until then I have lots to do here.  I am watching lots of Arduino videos to absorb some of that.
I watched one guy how he used shift registers to add more programming pins. Very interesting.
I really need to study up more on this stuff.  It is just all 1's and 0's right? Just know how to place them.

I do have a bit of newer programming stuff to play with. Perhaps it can help me learn more also.

 
The following users thanked this post: hua


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf