BeanZee Z80 development board

325 views
Skip to first unread message

Stephen Willcock

unread,
Mar 5, 2025, 4:22:27 AM3/5/25
to retro-comp
Hello retro-comp - my first post here!

I was an avid reader of electronics magazines in the UK in the late 1970's - Wireless World, Practical Electronics, Elektor, and my favourite: Electronics Today International (ETI). I remember vividly becoming hooked on personal computers when ETI published the ETI/Transam Triton 8080 design and introduced Computing Today magazine as a supplement. I started buying PCW magazine and the January 1980 edition  had a Z80 design - using switches and LEDs for I/O - which because of its simplicity was hugely important to me - as I was able to learn how it worked at a level I hadn't managed until then.
https://www.worldradiohistory.com/UK/Personal-Computer-World/80s/PCW-1980-01-S-OCR.pdf

Although I had previously built short-wave radios, sadly I didn't attempt to build that Z80 design, but a few years later was blown away again when acquired a Sharp MZ-80B. Eventually I got hold of CP/M, which was magical.

I've had a career in business software - which has become more and more abstract with each new role - but at the tail end of 2023 when I discovered that the Z80 was still in production and had a hobby community around it with some wonderful designs - I decided to pick up the homebrew thread from 1980.  2024 became a fantastic learning journey for me, and I finished the year with my first ever PCB - BeanZee https://github.com/PainfulDiodes/BeanZee

On the PCB I know that I skimped on the power/ground. To be honest I was in a rush at the end. The board does work, but I was thinking I would thicken the power on the top side and flood the ground on the bottom side as much as possible. It was suggested  though that I might switch to a 4 layer board, with power/ground flooding the inner layers. I'd be really interested in any advice on that choice.

Echoing the PCW Jan 80 article the key constraint for me has been simplicity - at each step I wanted to fully understand what I was doing. (I'd also love it if what I am doing in some way helps someone else on their learning path).

BeanZee has a 10MHz Z80 CPU, clock module, 32k ROM, 32k RAM and a handful of OR gates and inverters. My most troubling decision was for I/O for which I have used an FTDI UM245R dev board. For simplicity's sake I wanted to get BeanZee accessible to a terminal emulator on my MacBook. First thought on this was a Z80 SIO or simpler UART, and an FTDI cable. However, I heard of trouble with those cables if you lack UART buffering.
https://hackaday.io/project/167418-ftdi-usb-cable-problems-with-6850-acia

I then tried to experiment with a Z80 SIO and it seemed rather complex to set up (at least relative to my design as a whole).

On the other hand, the UM245R has a FIFO buffer, and it offers up a parallel I/O. All I needed to add was a 74*244 to gate the UM245R control lines and then it is really easy to program for. Having no particular interest (at this stage) in the serial signal itself this seemed like a better way to go.

In future I might separate the USB interface from the board - so that the BeanZee only has parallel I/O - and the UM245 on an adapter board, or maybe using a Pi Pico 2 in place of the UM245R. I'd be interested in thoughts on this.

As I was designing the PCB it seemed easy enough to add some header sockets for expansion / experimentation. Thinking I'd want to address some external I/O, and possibly swap out the onboard memory, I provided address, data, and RD, WR, MREQ, IORQ. I also made it so the internal simple glue logic for address decoding can be disconnected / augmented by an external circuit. I wanted an external board to be able to override the clock too - say for example an Arduino to run the board with a slow clock and provide debugging. I'm quite pleased with how that worked out, although missing out M1, interrupts and BUSRQ/ACK now seems like a mistake.

Originally expansion was by upward facing sockets - thinking another board would piggyback on top. However, I'm now thinking to replace these with downward facing pins - so that the BeanZee will  plug into a base board rather than to be the host.

I'm planning a simple keyboard and LCD character display which BeanZee will plug into. Again I'm keeping it as simple as I can - for example with the keyboard I hope to have the Z80 do the scan / decoding. I haven't made much progress yet.
https://github.com/PainfulDiodes/BeanBoard

In future I'm thinking about other base boards that I might have - including a simple prototyping base board with GPIOs. A VGA board would be really cool. I'm also wondering if I could add a Bean65 6502 board, and then make the base boards work for either CPU, though I haven't yet looked at 6502 spec / designs.

Finally I've written a simple monitor program and used that successfully to load and run programs from Intel HEX files from my MacBook, which was an exciting milestone - now when I prototype a new base board I can quickly iterate on my code.
https://github.com/PainfulDiodes/marvin

Stephen

Mark T

unread,
Mar 5, 2025, 1:48:14 PM3/5/25
to retro-comp
I have seen BeanZee on hackaday, I quite like the ft245 instead of using a serial adapter. If you invert the status outputs and buffer to the correct data lines you can make it appear to the z80 as a 68b50 acia without the need to configure baud rates etc. This would let you run Grant Searls version of Nascom basic, same as the RC2014, without modification if you adjust the io decoding.

Mark Cohen

unread,
Mar 5, 2025, 2:22:56 PM3/5/25
to Mark T, retro-comp

I had some pcbs of this made about 2 months ago. I didn't get up to those yet. If I recall correctly, the um245r was very expensive.


--
You received this message because you are subscribed to the Google Groups "retro-comp" group.
To unsubscribe from this group and stop receiving emails from it, send an email to retro-comp+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/retro-comp/e4c01047-50cb-44c0-bcdb-0b4f0b7554dan%40googlegroups.com.

Mark T

unread,
Mar 5, 2025, 5:03:45 PM3/5/25
to retro-comp
The ft245 replaces the 68b50 or SIO, if you can get them from a reliable source, and the usb serial adapter, so I don’t think it makes much difference. 

Stephen Willcock

unread,
Mar 6, 2025, 1:18:38 PM3/6/25
to retro-comp
> If you invert the status outputs and buffer to the correct data lines you can make it appear to the z80 as a 68b50 acia 

That's really interesting... I wish I'd thought to look for what is "conventional". Will give that some thought.

> I had some pcbs of this made about 2 months ago. I didn't get up to those yet. If I recall correctly, the um245r was very expensive.

That's really cool. Would love to hear about it - if/when you get to it!

> The ft245 replaces the 68b50 or SIO, if you can get them from a reliable source, and the usb serial adapter, so I don’t think it makes much difference. 

To be fair the UM245R board with a FT245 and a handful of components, headers and a USB socket is GBP 17.19 on Mouser, which seems a lot compared to the the bare FT245 which is GBP 3.78. 

However I totally agree that there's little difference comparing UM245R with SIO/ACIA/UART + clock(?) + FTDI cable, especially if the former is more reliable. Plus UM245R is through-hole.

Stephen Willcock

unread,
Mar 7, 2025, 11:03:31 AM3/7/25
to retro-comp
Just started on a BeanZee examples repo, which I think somehow makes the whole concept come together better 

Mark Pruden

unread,
Mar 7, 2025, 6:52:55 PM3/7/25
to retro-comp
>> On the PCB I know that I skimped on the power/ground. To be honest I was in a rush at the end. The board does work, but I was thinking I would thicken the power on the top side and flood the ground on the bottom side as much as possible. 
That would be a very good idea, as the PCB design software makes it easy. The problem with thin traces is it can create higher resistance and lead to voltage drops across the board which can cause noise. Considering the size of the board and number of components it unlikely to be an issue at this point. the capacitors you have added mitigate this,

>> It was suggested  though that I might switch to a 4 layer board, with power/ground flooding the inner layers. I'd be really interested in any advice on that choice.
A four layer board is not needed four this type of board. Four layers are for very high density surface mounted, or where very clean power is needed for sensitive analog electronics. (IMHO)

I noticed you are using TTL  (74LS) and CMOS (ram/rom) components in your circuit - unsure about the Z80 cant tell in photos. You have to be careful mixing both TTL and CMOS technologies, as there voltage mismatch issues. I would suggest probably best to use CMOS across the board if possible e.g. 74HC or 74AC. If you cant because of Z80 then may need some resistors or buffers. 74HCT are useful because there are CMOS but are TTL compatible.

Hope this helps.

Mark T

unread,
Mar 7, 2025, 10:17:45 PM3/7/25
to retro-comp

Cmos z80s have input thresholds compatible with ttl and output levels that will drive cmos input thresholds if not heavily loaded, for example by driving too many ttl inputs. 

Most memory devices are similar, input levels compatible with ttl and outputs compatible with cmos.

I think 74hct is best choice for most cases, then if faster propogation times are needed change to 74ahct or 74act, but be carefull with 74act outputs driving longer traces or busses as the faster rise and fall times can cause ringing and overshoot.

Stephen Willcock

unread,
Mar 10, 2025, 8:19:23 AM3/10/25
to retro-comp
I went with 74LS because coming back to digital electronics after 40 years, that was what I recognised! 

I would have been better researching the families before plunging in - now I have stocks of LS chips. Thanks for the pointers - I think that 
74hct would be the way to go from here if I need to mix.

I’ll take the advice on thicker tracks vs more layers, thanks!

Stephen Willcock

unread,
Jun 9, 2025, 3:53:29 AM6/9/25
to retro-comp
I’m quite pleased with how it all came together in the end:



BeanZee : 10MHz Z80 CPU, clock module, 32k ROM, 32k RAM, FTDI UM245R  USB. 

BeanBoard : QWERkY keyboard, LCD character display, GPIO. Love the sound of the mech keys!

I’ve now started thinking about doing a VGA adapter… and wondering whether I could fit it in place of the LCD, extending to the edges of the bottom board.


David Reese

unread,
Jun 11, 2025, 4:02:08 AM6/11/25
to retro...@googlegroups.com
Very nice!  Accomplished with a lot of work, and a lot of love, man.
Reply all
Reply to author
Forward
0 new messages