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:

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.

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.

Close up on the level-shifter section. The general idea is to:
- gather all 24 external 5V signals. These include the 21 Z80 bus signals, plus the two PS/2 lines, plus the FTDI receive line.
- feed them into the 5V side of the 3 8-way level shifters
- route the 24 3.3V signals into 24 pads of the Dazzler

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.
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.