Blog Page

Introducing the RC2014

Matt 0 Comments

Until earlier this year my idea of building my own computer was screwing a bunch of parts into a case and wiring everything together – the most complicated tool required being a crosshead screwdriver. This changed when I found Spencer Owen’s RC2014 project.

The kit is available in a few different forms, but I bought the “full monty” version – an 8-slot backplane with modules for the CPU, clock generator, RAM, ROM and serial interface. Notice that there’s no video interface – more on that later.

The machine is based on a Zilog Z80 CPU; the same processor used by the Sinclair Spectrum, Amstrad CPC, TRS-80, MSX and countless other classic computers. There is a whopping 32 KB of RAM to play with, and the system is clocked at a blistering 7.3728 MHz.

The kit comes with every component you need as well as comprehensive build instructions. The modular nature of the kit means you don’t have to tackle the 400+ solder joints all in one go. Thankfully everything is through-hole mounted, so although there’s a lot of soldering at least it isn’t horrendously small stuff. There’s very little to do in the way of configuration. The instructions tell you which jumpers to set for default operation, so provided you’ve not messed up with the soldering you should be able to switch it on and get started with Microsoft Basic version 4.7.

To use the RC2014 you’ll need a PC or Mac running a terminal emulator program and a USB serial adaptor with a standard FTDI-style 6 pin plug. Make sure your software is configured for 115200 baud, 8 bit data, no parity and 1 stop bit. Flow control should be disabled. Under Windows you can use PuTTY or Tera Term. Linux users can use something like Minicom from within the terminal. The computer doesn’t plug directly into a display, although there is a module available that uses a Raspberry Pi Zero as a terminal emulator. This gives you a HDMI-enabled “video card” along with a keyboard interface.


The base kit is a great way to get started with homebrew computing, and because it uses a backplane there are plenty of options for expansion. Spencer has a range of additional boards on his Tindie store, and there are many third-party modules available online. I’ll be talking about some of my boards in a future post.

Simple Digital Noise Generator

Matt 0 Comments

Here’s a little noise-making circuit I’ve been working on. It has a sound reminiscent of vintage sound chips, such as the AY-3-8910.

It works by using a D flip flop clocked by a 555 timer to sample and hold the signal from a ring oscillator. The high speed and frequency instability of the ring oscillator (close to 4 MHz) makes an ideal noise source, and the variable sampling frequency affects the frequency content of the noise.

This is a good example of the Nyquist theorem in action. As the clock rate of the 555 is lowered the high frequency content of the noise disappears. There is naturally a lot of aliasing, as this is a 1-bit signal, and there is no reconstruction filter on the output, but the frequency roll-off is still clearly audible.

Schematic

Parts list

ICs

CD4070 XOR Gate (IC1)
NE555 Timer (IC2)
CD4013 D Flip Flop (IC3)
LM386 Audio Amplifier (IC4)

Resistors

1 kΩ
1.5 kΩ
10 kΩ
100 kΩ Log. Potentiometer

Capacitors

10 nF (x2)
220 µF

Planning circuit layouts with DIY-LC

Matt 0 Comments

At some point there will be an Arduino project that is just too good to take apart. You can’t leave it on the breadboard forever, but building a circuit on prototyping board can be confusing for beginners.

The best way to make this process easier is to plan the layout of your circuit before you start building. I used to use graph paper to do this, but then I found a great free tool called DIY-LC.
Read More →

Arduino Tip: 7 segment LED display with 4094 shift register

Matt 0 Comments

This is my first Arduino example sketch – hopefully the first of many.

This sketch allows you to control a 7 segment LED display using an Arduino and a 4094 shift register. Only 4 data pins are used on the Arduino, rather than 8 if you were to control the 7 segment display directly. For this example I used a common cathode LED display.

Simply copy the code below into the Arduino IDE, build the circuit explained in the notes and watch the numbers count up.

Arduino 7 Segment Display

Read More →