The Z80-Dazzler board just got a bit more real

This past week, having constructed my very own Z80-based dream machine, work started on making a Dazzler-based TTY for it.

The RC2014 - a very popular Z80 kit computer - uses a standard 70s UART chip, the 68B50. So it's a natural first step to make a Dazzler as a "drop in" replacement for the 68B50. It will act just like a 68B50, but also generate a TTY output on an HDMI monitor. It will have PS/2 keyboard input as well, so one card gives you a stand-alone keyboard and monitor, with no fuss about changing software: the Z80 just talks to a 68B50 UART just like before.

Of course, the Dazzler can do a lot more than emulate a TTY, so a second port will allow Z80 access to the GPU. It will be entirely possible to make a multi-monitor Z80 machine using several Dazzlers on the bus.

I started with the template for RC2014 peripherals:

This image was deleted by MailChimp when they shut down TinyLetter.
I built up a board. The Dazzler fits on the right, with 5V level-shifters on the left. The Z80 bus is along the bottom of the board. On the far left you can see the FTDI adapter and the PS/2 socket.

This image was deleted by MailChimp when they shut down TinyLetter.
Here's a raytrace of the whole board. The three level-shifters (TI TXS0108) are necessary because the FPGA can only safely deal with 3.3V signals, and the Z80 runs at 5V. The TXS0108 does the amazing trick of being bi-directional: it senses the direction of each signal. This simplifies the design hugely. It doesn't matter what direction any particular pin is: the FPGA configuration will either set it to input or output, and the TXS0108 will do the right thing.
(click for better image)
Close up on the level-shifter section. The general idea is to:

  1. gather all 24 external 5V signals. These include the 21 Z80 bus signals, plus the two PS/2 lines, plus the FTDI receive line.
  2. feed them into the 5V side of the 3 8-way level shifters
  3. route the 24 3.3V signals into 24 pads of the Dazzler
This image was deleted by MailChimp when they shut down TinyLetter.
This board is made using my experimental PCB layout system, cuflow. Its real strength is river routing: flowing bunches of signals around the board while keeping them perfectly equidistant. Finding room on this board for all the river routing was a challenge, so I wrote a new method to efficiently route a river through to the other side. The code handles all the geometry, placing a row of vias at the optimal angle for the PCB's design rules.

This image was deleted by MailChimp when they shut down TinyLetter. 

The board is currently at JLPCB, at last time I checked was in the "drilling" stage. If all goes well the PCBs should be here next week. This board only uses a Dazzler and TSSOP parts, so can be assembled with a fine-tip soldering iron. I'll be publishing plans for it as soon as it's finalized, if you'd like to build your own.
Thanks for reading.