CERBERUS 2100 is a BASIC-programmable educational board with Z80 and 6502 8-bit CPUs

Olimex has just announced the launch of the CERBERUS 2100 open-source hardware, educational, multi-processor 8-bit computer with both Z80 and 6502 CPUs, as well as a Microchip AVR processor serving as an I/O controller.

The CERBERUS 2100 features several CPLD and is fully programmable from the lowest level (individual gates and flip-flops) up to BASIC interpreters running on the Z80 and 6502 CPUs. Olimex did not design this themselves as the hardware design is from Bernardo Kastrup (aka TheByteAttic), while BASIC interpreters were written by Alexander Sharikhin (6502) and Dean Belfield (Z80).

CERBERUS 2100 8-bit computer board

CERBERUS 2100 specifications:

  • Processors
    • Zilog Z80 8-bit microprocessor at 4 or 8 MHz (user selectable)
    • Western Design Center W65C02S 8-bit microprocessor at 4 or 8 MHz (user selectable)
    • “FAT-CAT” (Custom ATmega328pb) Microchip 8-bit AVR ATMega328PB microcontroller at 16 MHz
  • CPLDs (ATF1508AS-7AX100)
    • FAT-SCUNK (Scan CoUNter and clocK) and FAT-CAVIA (ChAracter Video Adapter) for video circuit connected to a 25.175 MHz oscillator
    • FAT-SPACER (Serial to PArallel ControllER) for signals, clocks, serial<->parallel conversion connected to a 16 MHz oscillator
  • Memory – 64 KB of user-addressable RAM
  • Storage – MicroSD card slot with filesystem built into the BIOS (AVR)
  • Video output and graphics support
    • VGA video output with 320×240 resolution (note: actually 640×480 with 2×2 pixels)
    • Character-based with 40×30 individually addressable characters
    • Up to 8 simultaneous screen colors
    • On-the-fly user-redefinable character bitmaps for tile graphics
  • Debugging – 3x JTAG connectors
  • Expansion – 40-pin expansion slot with generic I/O protocol going through FAT-CAT and FAT-SPACER CPLDs
  • Misc
    • Standard PS/2-compatible USB keyboard
    • Buzzer
  • Power Supply – 5V via USB-C port

CERBERUS 2100 Components Connectors

Z80 and W65C02 motherboard
Block diagram

The BIOS code is written in C and compiled under the Arduino IDE, and excluding video signals, the FAT-CAT performs all I/O functions such as file system operations, keyboard & expansion control, and
sound output, and supports DMA transfers the FAT-SPACER.

You’ll find the hardware design files, firmware, and detailed documentation on GitHub and TheByteAttic website. People who prefer video content may also watch the 45-minute video introduction below.

Bernardo Kastrup provides all files for manufacturing but does not do that himself, instead, Bulgarian company Olimex handles that and is currently selling the CERBERUS 2100 board for 219 Euros

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
29 Comments
oldest
newest
Nick
Nick
8 months ago

What a joy to see that the Z80 is still going! I remember writing machine code for the beast back in the early 80’s with cpm as the OS. Halcyon days!

Sander
Sander
8 months ago

I manually wrote machine code (I didn’t have an assembler) for Z80 on TRS-80 at school. Never again!

8 months ago

Was it something about Z80 assembler that no one seemed to be able to get his hands on? I was using a debugger of a sort (can’t remember the name) to write code, at least it understood ASM commands entered manually. But I had to calculate all damn addresses manually.

Laurent
Laurent
8 months ago

I still remember hex opcodes of many Z80 instructions 🙂 CD/C9/7E…
I have fond memories of those days, but I would not get back to them. I still do some assembly, but with real tools and on powerful 64-bit processors.

Sander
Sander
8 months ago

Just why?

Tsvetan
Tsvetan
8 months ago

For number of reasons, but I can tell you two: It’s great hoby and way to spend free time AND programming machines with skinny resources provokes thinking and good programming habits.

8 months ago

There are plenty of other machines with skinny resources one can train good habits on. With all due respect to Z80, I don’t want to go back to CPU, which doesn’t have division and multiplication commands, for example.

Willy
Willy
8 months ago

While I’d avoid such CPUs for any project, such constraints are great to learn the principles of computing. Performing a 8×8 multiply using add+shift is easy enough to learn the principle, it explains the impacts of dealing with double-size registers to store the result, it shows the benefits and costs of replacing this with a lookup table (slightly more than 64kB are needed for all products with complex storage), etc. Once you figure this you can easily learn modern machines with SIMD and all that stuff.

8 months ago

And how exactly should I multiply 7 by 13 using SHL trick which works only on powers of 2?

Willy
Willy
7 months ago

Just the way it’s regularly done in software multiplication, which is the same as we learn at early school to do by hand:

a=7; b=13;
for (c=0;b;b>>=1,a<<=1)
if (b&1)
c+=a;

And you’re done, no magics involved. The same method is usable for powers by the way (using a multiply instead of ‘+’).

Willy
Willy
7 months ago

and by the way that’s a great example of why such constraints are interesting, they force developers to study the minimally required computer basics they might have skipped when jumping on high level languages a bit too fast.

Willy
Willy
7 months ago

Sorry for the indent that makes it unreadable. Trying again as a one-liner instead:
a=7; b=13;
for (c=0;b;b>>=1,a<<=1) if (b&1) c+=a;

7 months ago

I don’t think it worked, though. I still see it as normal text.

Shocked by Vampire
8 months ago

Which I think is the best reason. Lazy devs these days are lazy, enough said. I’ve always preferred 6502 over Z80, that’s not important. Thing is, you have a very limited resources, now do boot up your computer with a cassette tape or if your parents are rich enough, with a FD. And not with a magic keyboard key complication. How would you tell your computer to do that. Who cares

apritzel
apritzel
8 months ago

I would be careful with “good programming habits”: it mostly teaches you how to program severely limited “walled garden” systems. For instance these days you should not program in assembly at all (except for small routines), it’s both error prone (32 or 16 registers to keep track of) and not future proof (AArch64? x86-64? RISC-V? The-Next-Big-Thing?). And all those technical limits require you to use a lot of hacks to make things work (bank switching, cycle counting), which are not applicable today anymore. But most importantly: it does not help AT ALL with learning about and understanding the challenges of… Read more »

Willy
Willy
8 months ago

All the points you mentioned are important, if not critical. The only thing is that those who don’t grasp the most basic stuff do not grasp that either. I don’t count the number of times I heard “so you’re trying to save 100 nanoseconds?” with me responding “if it’s every 100 nanoseconds it counts a lot”. Explaining the cost of a cache miss to someone who doesn’t even know what an instruction is is, sadly, often a waste of time. So I do value the basic stuff as much as the rest, for being a necessary prerequisite.

back2future
back2future
7 months ago

[ who would tell being an expert for even only bootloader or Kernel (hw drivers, patches, security) for all these ‘(AArch64? x86-64? RISC-V? The-Next-Big-Thing?)’ platforms and its variety?

~only two generations distance from start (Z80, introduced to markets, ~1976) ]

Shocked by Vampire
8 months ago

Because

Hans Otten
8 months ago

Video is a bit disappointing. No 80 characters per line, so no CP/M or serious other software.. No bitmapped graphics, limits on redefinable characters. With so much CPU power besides the 6502 and CPU, I had hoped for more.

8 months ago

You want them to emulate TI’s VDP?

Hans Otten
8 months ago

not a 9918, a 9938 would make a fine VDP. 40 chars is so limited.

8 months ago

Is it some kind of evil joke or an equivalent of wooden toys for children of hippy families? Why would you torture your kid with BASIC of all things?

itchy n scratchy
itchy n scratchy
8 months ago

I’d expect it to be a toy for old kids of that era.

Alek
7 months ago

Only €219, what a bargain for such amazing specs! (kidding) How is going to compete with e.g. Raspberry Pi Zero (1GHz CPU, 512MB RAM) for less than €30? (not to mention old hardware emulators)

itchy n scratchy
itchy n scratchy
7 months ago

Size of the board and BOM+ economy of scale.

It’s a niche product for enthusiasts.

Georgi Angelov
7 months ago

Congratulations on the product !!!
but, with one chip I learned a lot more
https://www.youtube.com/watch?v=VaT23TRO9U8
PIC32MZ(MIPS), VGA & Cache, 8-bit emulation, Porting XC32 to PlatformIO, Porting Arduino… and I experienced much more going back to the 1980s

João Gonçalves
7 months ago

Just get a TI-83/84 and call it a day.

Khadas VIM4 SBC