Add to cart
Board Type : GerberFile :
Layer : Dimensions :
PCB Qty :
Different PCB Design
PCB Thickness : PCB Color :
Surface Finish : Castellated Hole :
Copper Weight : 1 oz Production Time :
Total: US $
Elecrow community is a shared platform and we are not responsible for any design issues.

PCB Assembly

PCBA Qty: BomFile:
NO. OF UNIQUE PARTS: NO. of Components:
Assembly Cost: US $
Elecrow community is a shared platform and we are not responsible for any design issues.
Add to cart
3dPrintingFile : Size :
Unit : Volumn :
3D Printing Qty : Material :
Total: US $12.99
Elecrow community is a shared platform and we are not responsible for any design issues.
Add to cart
Acrylic Type : AcrylicFile :
Dimensions: Engrave:
Acrylic Qty :
Acrylic Thickness:
Acrylic Color:
Total: US $12.99
Elecrow community is a shared platform and we are not responsible for any design issues.
Add to cart
CNC Milling File : Size:
Unit: Volumn:
CNC Milling Qty : Material:
Type of Aluminum: Surface Finish:
Tolerance:
Surface Roughness:
Total: US $12.99
Elecrow community is a shared platform and we are not responsible for any design issues.
closed
user-img

Dr. Don Wilcher

Published: Nov 09,2024

Using a Raspberry Pi Pico to Enhance a Vintage Radio Shack Microcomputer Kit

Use a Raspberry Pi Pico to Enhance a Radio-Shack Vintage Microcomputer Programmed 7-Bit Binary Counter

ccc ccc
Copyright Info

Attribution-ShareAlike (CC BY-SA)

Read More⇒
  1422
  4
  0
cover-img
 
  • thumbnail-img
 

Story

Long before the Heathkit 6800 microcomputer learning system, the Arduino Uno, or the Basic Stamp, there was Radio Shack’s Science Fair Microcomputer Trainer kit. Introduced in 1985, this easy-to-program kit was intended to teach users how microcomputers worked.

In this project article, we’ll upgrade this vintage microcomputer by building and adding an adjustable Raspberry Pi Pico clock with an LED display. After assembling the hardware, we’ll program the trainer to operate as a 7-bit binary counter. Before any of that, though, let’s spend some time learning about the trainer’s features—and, in particular, about the TMS1100 microcontroller at its core.

 

The Radio Shack Science Fair Microcomputer Trainer Kit

The Science Fair Microcomputer Trainer first appeared in Radio Shack’s 1985 catalog (Figure 1).

 

Advertisement for the Science Fair Microcomputer Trainer in the 1985 Radio Shack Catalog.

Figure 1. The introduction of the Science Fair Microcomputer Trainer in the 1985 Radio Shack catalog. Image used courtesy of RadioShackCatalogs

 

The kit, which is built around a Texas Instruments TMS1100 microcontroller, has the following input/output (I/O) features:

  • A keyboard.
  • A 7-segment LED display.
  • Seven discrete LEDs.
  • An audio amplifier.
  • An 8 Ω speaker.
  • A 400 kHz clock.

The Microcomputer Trainer has a 9 VDC operating voltage, which is supplied by six AA batteries inserted into a compartment at its bottom. The keyboard, which is visible in Figure 2, is configured as hexadecimal. It combines numbers and letters for memory addressing and programming the TMS1100 microcontroller.

 

The Microcomputer Trainer keyboard. Also shown: the rest of the Microcomputer Trainer.

Figure 2. The Microcomputer Trainer’s hexadecimal keyboard. Image used courtesy of Don Wilcher

 

The TMS1100 Microcontroller

The TMS1100 microcontroller is part of the TMS 1000 family of 4-bit microcomputer integrated circuits. The TMS1100 used PMOS technology and was introduced by Texas Instruments in 1975. At the time, the TMS1100’s single-chip, binary, microcomputer architecture was unique, and it was marketed as the first system-on-chip microcomputer.

The TMS1100 includes ROM, RAM, and an Arithmetic Logic Unit (ALU). The microcontroller architecture can be seen in Figure 3.

 

TMS1100 microcontroller architecture.

Figure 3. TMS1100 microcontroller architecture. Image used courtesy of Bitsavers

 

The physical interface to the TMS1100 consists of a basic input/output structure. Input pins are designated by the letter K, and outputs by either O or R.

  • The K-inputs manage 4 bits of data and are binary weighted: K1, K2, K4, K8. Data is retrieved from these weighted input pins.
  • There are eight parallel O-outputs, numbered O0 through O7. These outputs are latching-capable. They typically display binary data on discrete LEDs or 7-segment displays.
  • Eleven output pins are represented by the letter R. The R-outputs multiplex the K-inputs and strobe the O-output data to displays and internal memory registers.

The TMS1100 is a 4-bit processor. The ROM is 16,384 bits configured as 2,048 8-bit words. The RAM is 512 bits arranged as 128 4-bit data words.

 

Programming the Microcomputer Trainer

Programs for the Microcomputer Trainer are based on the machine code for the TMS1100. The kit’s machine code aligns with 32 commands, allowing the vintage microcomputer kit to perform operations such as:

  • Arithmetic.
  • Data storage.
  • Memory display.
  • Manipulation of address information.

Games, electronic timers, sound effects, and arithmetic calculators can be programmed on the microcomputer in this way.

Included with the kit is a lab manual with 100 programming exercises and activities. The initial lab exercises focus on wiring and testing the audio amplifier and the microcontroller’s I/O ports. The manual is shown in Figure 4.

 

The cover of the Microcomputer Trainer lab manual.

Figure 4. Microcomputer Trainer lab manual. Image used courtesy of Don Wilcher

 

Project Concept and Operation

Our project begins with one of the basic programming tasks introduced in the lab kit manual: transferring data into the A-register. The Transfer Into A (TIA) command, which is machine code 8, is initiated by pressing the 8 key. Pressing the Increment key finalizes the data transfer.

When we press the Increment key, the kit’s seven discrete LEDs count in binary. This manual binary counting event, which is unique to the Microcomputer Trainer, can easily be automated using a digital clock or oscillator. In this project, we’ll automate this task using four electronic parts:

  • A Raspberry Pi Pico.
  • A 10 kΩ potentiometer.
  • A 4-digit 7-segment LED module.
  • A transistor relay module.

Together, these will make up an adjustable digital clock with an LED display. Figure 5 shows how the four parts will work together.

 

Project concept block diagram.

Figure 5. Project concept block diagram. Image used courtesy of Don Wilcher

 

The Raspberry Pi Pico will produce the on/off control pulses that drive the transistor relay module’s Single Pole Double Pole (SPDT) contacts. The transistor relay module contact speed can be adjusted from 135 ms to approximately 8 seconds by adjusting the 10 kὨ potentiometer. The adjusted time will be visible on the 4-digit 7-segment LED display.

With that, let’s start our build.

 

The Adjustable Digital Clock Build

Building the adjustable digital clock requires wiring the project concept parts on a solderless breadboard. The Elecrow Raspberry Pi Pico Advanced Kit (Figure 6) provides several parts we’ll need, including:

  • 10 kΩ potentiometer.
  • Raspberry Pi Pico.
  • 4-digit 7-segment LED display module.
  • Jumper wires.
  • Solderless breadboards.

 

Elecrow Raspberry Pi Pico Advanced Kit.

Figure 6. Elecrow Raspberry Pi Pico Advanced Kit. Image used courtesy of Elecrow

 

The project build also requires a transistor relay module. The Raspberry Pi Pico’s VSYS pin, which will power the electromechanical relay coil, provides 5 VDC. We’ll therefore use a 5 VDC module. The Raspberry Pi Pico’s GPIO2 pin will provide the on/off control signal to the surface mount device (SMD) transistor on the PCB.

The electrical wiring diagram in Figure 7 shows the four components of the clock inserted into a solderless breadboard.

 

Electrical wiring diagram for the digital clock.

Figure 7. Electrical wiring diagram for the adjustable digital clock with LED display. Image used courtesy of Don Wilcher

 

Figure 8 provides the circuit schematic as an additional build support reference.

 

Circuit schematic for the adjustable digital clock with LED display.

Figure 8. Circuit schematic for the adjustable digital clock with LED display. Image used courtesy of Don Wilcher

 

The final build of the digital clock is shown in Figure 9.

 

The assembled digital clock with LED display.

Figure 9. The assembled digital clock and LED display. Image used courtesy of Don Wilcher

 

This adjustable digital clock circuit needs to provide a clean switching pulse of variable width. To test this, an oscilloscope was attached to GPIO2 of the Raspberry Pi Pico so that it could observe the control switching pulses. The oscilloscope measured an output switching pulse voltage of 3.38 V (Figure 10).

 

Captured output control pulse from the Raspberry Pi Pico GPIO2 pin.

Figure 10. Captured output control pulse from the Raspberry Pi Pico GPIO2 pin. Image used courtesy of Don Wilcher

 

Connecting the Raspberry Pi Circuit to the Microcomputer Trainer

The final hardware assembly (Figure 11) consists of wiring the transistor relay module’s Normally Open (NO) contacts to spring terminals 57 and 63 on the microcomputer kit.

 

Final hardware assembly.

Figure 11. The assembled digital clock connected to the Microcomputer TrainerImage used courtesy of Don Wilcher

 

Software Build

I used MicroPython to build software for the adjustable digital clock. Some of the code is shown below:

 

import time
from machine import Pin, ADC
Import tm1637
# Raspberry Pi Pico pin assignments for operating the display module
display = tm163.TM16376(clk=Pin(0), dio=Pin(1))
adc = ADC(265)
led = Pin(2, Pin.OUT)
while True:
raw_value = adc.read_u16()
adjusted_value = raw_value // 4 # Adjust range to 0-4095
# Scale adjusted value to 100-2000 ms for LED on/off times
led_on_time = 100 + (adjusted_value * 1900) // 4095
led_off_time = led_on_time # Use the same value for the off time
print("Raw value:", raw_value)
print("Adjusted value:", adjusted_value)
print("LED on time:", led_on_time, "ms")
print("LED off time:", led_off_time, "ms")
display.number(led_on_time)
led.value(1) # Turn the LED on
time.sleep_ms(led_on_time). # Use time.sleep_ms for millisecond precision
led.value(0) # Turn the LED off
time.sleep_ms(led_off_time)

 

This software, which can either be initiated in debug mode or saved onto the Raspberry Pi Pico, enables three functional aspects:

  1. Reading the adjusted analog voltages produced by the 10 kΩ potentiometer.
  2. Displaying the values on the 4-digit 7-segment LED module.
  3. Switching the transistor relay module.

We can change the desired switching time for sequencing the microcomputer’s 7-bit binary counter by using the potentiometer. Displaying the values on the LED module provides a visual aid to this process.

 

Final Testing

It’s time to test the completed project’s functionality. You can watch the clock interact with the Microcomputer Trainer’s binary counter in Figure 12.

 

 

Figure 12. Final testing of the enhanced microcomputer kit. Video used courtesy of Don Wilcher

 

As this project illustrates, the vintage Science Fair microcomputer kit can easily be resurrected and enhanced using today’s embedded technology platforms and a few electronic circuit modules.

Code
  • Variable Clock with Display

    variable_clock_with_display_1033678907672ec01c0415e.zip
    Download(6)
user-img

Dr. Don Wilcher

+ Follow

Topic

View All
Clock, Display PiPIco Microcomputer MicroPython 7Bit Counter
  • Comments( 0 )
  • Like( 4 )
/1000
Upload a photo:
You can only upload 1 files in total. Each file cannot exceed 2MB. Supports JPG, JPEG, GIF, PNG, BMP

You May Also Like

View All