NMU-7700 Memory Unit

The original FRG-7700 receiver did not include any memories for frequency storage. A memory unit - the MU-7700 - was later available as an option, but many radios were sold without this expensive extra. They occasionally turn up on eBay, but prices seem rather excessive for equipment that's 30+ years old.

FRG-7700 with MU-7700 fitted (pic courtesy Universal Radio)
MU-7700 internals - look at that 70's logic!
After studying the memory unit schematics, marvelling over things like the use of 256 x 4 bit CMOS static RAM with separate read and write data busses and how easy it is to build a binary frequency counter if you don't give a shit about sub-kHz accuracy, we decided to see if it was possible to develop a replacement using slightly newer technology. As it turned out, it's not only possible, but possible to do it much cheaper than an an original unit on eBay.

Smaller! Better! Faster! More accurate! The new NMU-7700!
You can read all about how the original memory unit works, how we stumbled through recreating that functionality, and the fun we had doing it here.

Our version, which we call the NMU-7700, is constructed in 2 parts:
  • an interface board which converts most of the control wiring from the FRG-7700 to a 2-wire I2C buss for connection to a microcontroller, and
  • a main board which plugs into the interface board piggyback-style and carries the microcontroller, memory, digital VFO, signal conditioning, and associated circuitry.
It currently features:
  • 12 memories (like the original MU-7700),
  • Fine-tuning via the front panel F.Tune control (again, like the original MU-7700),
  • Frequency storage with better than ± 20Hz accuracy (vs 1kHz in the original), and
  • A distinct lack of batteries to go flat and leak everywhere (unlike the original MU-7700!).
And plenty of potential for expansion to provide:
  • Over 6500 memories.
  • Computer control via serial (or USB with a suitable adaptor).
  • Keypad/display for direct tuning & memory selection.
  • Control of external devices e.g. antenna/preamp switching, rotators, etc.

We're not interested in providing boards, kits, or pre-built units. We're electronics hobbyists and retired professionals, not retailers, and one of our reasons for releasing this project free on the internet is to encourage more people to get involved in the hobby beyond simple "Arduino on a breadboard" projects. If you want one, we hope you'll either build it yourself or get to know someone (e.g. a ham / radio club, local hackerspace / maker group, etc) who can help you.

For that reason the design, schematics, and gerber files are all released under the Creative Commons Attribution-NonCommercial-ShareAlike v4.0 licence (CC-BY-NC-SA), while the software is released under the BSD 3-clause licence ("BSD-new").

The only parts we are not releasing are the Eagle project files. Our reasoning for this is simple: we're providing the design for our memory unit. You are free to take our schematics/layout, recreate & adapt them as you desire, and come up with your own take on it - in fact, we encourage people to do that - but if you do, we expect you to put at least a certain minimum of effort into it.

(edit: I see Eagle v7.5 will come with scripts for importing Gerbers, which to some degree defeats our purpose there. Oh well, at least people will have to go to a little bit of trouble to figure that out…)

(First person to hack a memory unit into a Kenwood/Trio R-1000 wins! They're very similar to the FRG-7700, and I reckon it's possible ;))

Skills / Tools Required

Although it's not a particularly difficult project to build, I think it's worth mentioning a few general tips:

It probably isn't a good "My First Surface Mount Devices" project. The majority of passive components are 1206 (i.e. 3.2mm x 1.6mm, which is "large" in SMD terms!), but there are some smaller (down to 0603, or 1.6mm x 0.8mm), and the ICs get as low as 0.5mm pitch between pins. Experience & steady hands are the key here.

Don't be discouraged though - if you've previously assembled a few smaller SMD projects, or have plenty of practice on some SMD soldering practice kits, then you're in a good position to successfully build the NMU-7700. The biggest difference will be space - components are closer together than on simpler boards - so you have to take a bit of care with component placement & order of assembly (e.g. it'd be a bugger to try & solder IC2 / IC4 / IC5 or LED1 if the adjacent headers or switches are in place…)

Needless to say, good tools are necessary - a decent temperature-controlled soldering station with a fine tip, SMD tweezers, fine solder, flux, etc. Don't forget good lighting and visibility too, especially if like me you should probably see your optometrist about glasses - younger people might get away with a desklamp and bare eyes, but I need at least a maggylamp!

(Which reminds me - a 'guide to assembling a hobby electronics workshop' has been on the backburner for months…)

An Arduino Uno or similar makes a fine ICSP programmer, and can also be used to test the completed interface board before starting on the main board. You will also need an Arduino-compatible USB->serial adapter (e.g. something like this, or an "FTDI Cable") to upload the NMU-7700 sketch to the board.

Current Downloads

Interface Board v3.0a

Main Board v4.0a

Software

I'm holding off from finishing/releasing the v1.0 version until I get the NMU-7700 board package/core for Arduino 1.6.5/1.6.6 done. In the meantime, here's a v0.9.8 'pre-release' version - all the basic "12 memories + fine tune" functionality is there and extensive long-term testing has shown no bugs, but it is very much proof-of-concept / explanatory code. Be aware that v1.0 will introduce considerable changes in code / library structure needed for future expansion.

Miscellaneous

Due to its non-standard-Arduino design (e.g. 20MHz clock) the NMU-7700 requires a custom bootloader to be loaded into the ATmega328 chip, and its own entry in the Arduino boards list.

In the future this will be handled by the installable hardware 'core' mentioned above.

For the moment, however, experienced Arduino hackers can hand-install the following:
  • Optiboot_4_NMU.zip - a custom-compiled version of the Optiboot bootloader to suit the NMU-7700 (i.e. 20MHz, 19.2kbaud, LED on D3). You will need to install this via the ICSP header using a suitable programmer (e.g. usbasp, Arduino Uno running the ArduinoISP sketch, etc.) & software (e.g. avrdude).
  • NMU_boards.txt - custom Arduino board configuration for the NMU-7700. Locate the Arduino boards.txt file, copy the contents of this file to the end of boards.txt, restart the Arduino IDE, and you will find an entry for the NMU-7700 in the Tools -> Board menu.

No comments:

Post a Comment