Blog

Welcome to my blog.

Most of my entries these days are about various electronics projects that I’ve designed. All of the electronics project entries can be viewed from the electronics project index. There are also various other categories, including a how-to section and a product review section. If you want to view one of the other categories, then use the ‘Categories’ drop-down to the right.

Now let’s start with the most recent blog entry…


This is Digitalker! … and Jameco JE520 too. Vintage Speech Synthesis.

In this post, I create a board for the Digitalker speech synthesizer chipset

Background

The digitalker chipset by national semiconductor was popular during the 80s as a way to add speech capability to products and projects. The chipset was sold by Jameco and other electronics parts resellers. Here’s an excerpt from a typical Jameco catalog:

Jameco Catalog 201 Excerpt, January 2001

The basic chipset would have included the MM54104 speech synthesizer chip, as well as the SSR1 and SSR2 speech ROMs. The set could be expanded on with the “vocabulary expansion” which included the SSR5 and SSR6 ROMs.

The digitalker differs from phoneme-based speech synthesizers such as the General Instruments SP0256A-AL2 or the Votrax SC-01A. Rather than building words by assembling a sequence of basic speech building blocks, the Digitalker included whole digitized words in ROM. This led to the vocabulary being somewhat restrictive — whereas the SP0256A-AL2 or SC-01A could produce virtually any word, the Digitalker can only produce the word set that has been digitized into its ROM set.

The Digitalker was originally developed by Forrest Mozer, with Mozer’s work starting out developing a speech chip to be used in a calculator for the blind. Mozer’s design was then license to National Semiconductor to become what would be sold as the Digitalker MM54104N and related chips. The ICs bear the name Mozer printed prominently on the IC.

ROMs

As mentioned above, the vocabulary is dependent on the ROMs used. If you don’t have the right ROMs, then you can’t say the words you want. The following ROMs are known:

  • SSR1, SSR2: The default ROMs included as part of the digitalker chipset.
  • SSR3, SSR4: I’m not sure if these exist or not. People have assumed based on the existence of SSR5 and SSR6 that SSR3/SSR4 must have existed, but I’m not sure anyone has a sample or a description of the vocabulary.
  • SSR5, SSR6: This is the “vocabulary expansion” set shown in the Jameco excerpt in this blog post. It contains a useful set of common English words. SSR5 and SSR6 are known to exist, but I do not personally have them (if you have a copy of this ROM image, please share!)
  • MM52116SHR/L / DT1052. This is a small ROM containing a basic set of numbers.
  • Jameco JE520. Jameco electronics sold a speech synthesizer for use with the Commodore 64 and Apple computers. More details at biosrythm.com. This ROM set seems to include a lot of SSR1/SSR2/SSR5/SSR6 though reorganized in a different order, and with some words missing and some other words added.
  • Dynamic Logic LTD. A small pcboard with a digitalker and a 4K ROM. Contains the numbers 0-10 and a few words such as “warning” and “over load”. Reported to be an elevator anunciator.
  • Genesis Alarm Panel. A ROM set from some form of security alarm panel. Interesting words like “intruder” and “burglar”.
  • RS Components,
    • Type-2 (MM52664SJQR). Common words with a British accent
    • Type-4 (MM52664SJQT). Numbers and letters.
  • Sensaphone 1104, early version. This was a device for monitoring businesses or homes over the phone. Note that there are multiple versions this model, older units use the digitalker chipsets but newer versions implement the digitalker algorithm in software using an 8031 microcontroller and external EPROM. The ROM used by the emulation is not quite compatible with the digitalker chipset due to changes to the endian-ness of some of the speech tables (background provided by Jonathan Gevaryahu). The Sensaphone set includes words talking about temperatures and voltages, DTMF tones, etc. There is a duophone device that may have the same ROM set.
  • Arcade and Pinball Games
    • Faceoff
    • Harem
    • Scorpion

It’s likely that there other devices out there in the wild. I know that certain elevator speech announcement systems may use the Digitalker, some fire alarm panels, some cash registers. If you do have a device that uses the Digitalker, then please do consider dumping the ROM and making it available to the community.

You may be able to find digitalker ROMs on website such as archive.org, for example https://archive.org/details/digitalker.

There are also references in literature to software, DTSW500, written for use with the CP/M operating system, that would allow people to record and encode their own speech ROMs. This would be the holy grail for digitalker enthusiasts. Nobody we know has this software. Several people are actively seeking it. If you do have any leads, then please do share.

Interfacing

An excerpt from the National Semiconductor datasheet is below:

Excerpt, National Semiconductor Datasheet for Digitalker IC

Interfacing the chip is fairly straightforward. It includes the following:

  • 8 Data Bits, used to select the word to speak
  • Chip Select and Write inputs, used to tell the chip when to load the data bits
  • CMS (“Command Select”), which tells whether to load a new word, or merely reset the interrupt
  • An Interrupt, which is sent back to the host computer to tell it that the digitalker has finished speaking the word.

The digitalker must be interfaced to an external speech ROM, or in the case of vintage ICs, potentially multiple relatively small ROMs together with address decoding logic.

Goals

I wanted to be able to communicate with the digitalker via I2C, Serial, or TCP/IP over Wifi. I2C was my primary intended communication method, as it allows easy attachment to a raspberry pi or other project.

Secondarily, I wanted to be able to support many different ROM sets, to build as large a vocabulary as practical.

Designing a digitalker board in 2021

Below is a schematic of my board:

Digitalker Board, Schematic (click to enlarge)

Here are description of the sections of the schematic.

  • Boost Converter (upper left). I wanted to run the board off 5V, but the digitalker IC requires 7-11V, so I opted to use a pololu boost converter, model U3V12F9. This boost converter accepts 5v and produces 9V. I added fuses and TVS diodes on both sides of it for protection (vintage chips are rare, and I like to be cautious). As an alternative, one could power the board off of 9VDC, and use a regulator to drop the 9V down to 5V for the 5V components.
  • Microcontroller (center left). I used an ATMEGA 328P, which has become by go-to microcontroller in projects that require a moderate amount of IO lines. I added a 6-pin header for in-circuit programming, and a 6-pin header for I2C.
  • ESP8266 (bottom left). I added a footprint for an ESP-01 module, so the board could be operated over Wifi instead of via RS232 or I2C. The ESP8266 is dirt cheap, and makes a convenient way to add wireless to a project. It’s entirely optional.
  • RS-232 (upper right). Vintage peripherals often used a DB25 serial connector for interface to the host computer, and I like to duplicate that in my vintage-themed projects. I added a MAX202 level converter, and headers for DB25 or DB9. Populate only the MAX202 or the ESP8266, not both.
  • Speech Synthesizer (Center Right). Here we have the digitalker IC as well as a 39SF040 Flash Chip. The 39SF040 offers 512 KB of storage, which at first sounds like overkill, but adding multiple ROM sets can quickly eat up storage. I broke four of the address lines (A14-A17) out to the microcontroller, so it can bank switch which ROM set is to be used.
  • Audio Filter and Amplifier (lower right). Here we have an opamp and RC filter as called for by the Digitalker datasheet. I followed the approach I saw on a design by A Fox Consulting and Design where they used a potentiometer in the RC section. For an amplifier, I chose the Adafruit TPA2016 breakout board, because it’s a nice small stereo amplifier that offers I2C volume control. Using the breakout board is easier than it would have been to mount the tiny SMD amplifier myself.

Implementation

I had a pcboard produced of my design, and here is a picture:

Digitalker Speech Synthesizer I2C/RS232/Wifi board

It’s relatively straightforward. The ESP8266 module and the MAX202 are not populated in the above picture. I’m using a single small speaker, though one could easily add a second speaker, or use larger speaker.

Software

The software for the ATMEGA328P as well as a python program for interfacing over I2C, Serial, or TCP, is available in my github repository at https://github.com/sbelectronics/digitalker.

The speech ROM images themselves are not present in my repo. I’m not sure exactly what the policy should be on those ROMs. They’re not my intellectual property, nor am I the one who dumped them, so I don’t feel comfortable distributing the ROM images myself. Ideally the community would come together and see if they could make their way into the public domain.

Obtaining Digitalker ICs — where to buy them

I obtained my ICs from eBay, which is where I come across the resources for a lot of my vintage projects. As of January 2021 there are several people selling Digitalker ICs. This may or may not be the case by the time you’re reading this blog post – eBay inventory can fluctuate tremendously.

Acknowledgements

  • Jonathan Gevaryahu. Jonathan was helpful in finding the ROM images that I was looking for, and knows a lot about the Digitalker and some of the devices it was used in. Jonathan is an active developer in the MAME community, and it looks like he has worked on emulation of some speech synthesizers.
  • George de Bouter is an active speech synthesis chip collector, and has amassed quite a collection. He provided me with a lot of the background on the Digitalker as well as a few other interesting vintage speech chips.

Previous post: Cloning the ET-3404 6809 adapter for the Heathkit ET-3400