What is Rainbow Project MkII?
Rainbow Project MkII (Mark II) is the logical continuation of Rainbow Project Mark I, which was created as a SchoolSpace Project in 2017-2018. It was also presented in local schools exhibitions as well as in MakerFaire Rome!
OK, what is Rainbow Project MkI?
Rainbow Project MkI or simply Rainbow Project is a creation of an 8 bit Single Board Computer (SBC) from scratch. It uses a Zilog Z80 CPU and was designed and built from basic components. It is programmed in assembly language. You can get all relevant info in the FAQ as well as in this (greek) page.
Why was ΜκΙΙ created?
Rainbow Project is no small feat. We could easily stop at MkI and call it a day, but we believe there is a lot more to add and the educational purpose of the project is not yet finished. We would like to add functionality that make Rainbow Project equivalent to 80s home computers.
What are the main differences between MkII and Mk?
MkII adds on the basic components of MkI in order to make a machine that more close resembles a real home computer. The original version had only the following components:
- Zilog Ζ80 CPU
- Memory Address Decoder
- LED indicators for all buses
- 16x2 LCD with it's own MCU (MSP430)
- Peripheral Expansion Bus for add-ons, known as Rainbow Bus
- IO Decoder circuitry
- Intelligent Keyboard controller and keyboard (Device on Rainbow Bus)
- Graphics card for real monitor based on RasPI (Device on Rainbow Bus)
- Programmable system clock (50Ηz - 100 Khz (Device on Rainbow Bus)
- Full speed 4MHz crystal oscillator (Device on Rainbow Bus)
- Expansion capability for more devices (joysticks, sound etc)
What signals are present on Rainbow Bus?
Rainbow Expansion Bus provides device selection signals, Z80 Data and Control bus signals, system clock and power. It allows for a maximum of eight (8) peripheral devices (decodes three lines of the Z80 IO Address space):
IO Decoding is performed by a 74LS138:
How does the Raspberry PI Graphics Card work?
Raspberry PI accepts data from the Z80 Data bus and runs a C/SDL program that decodes the commands and displays the content on the screen. It is a high level graphics card that understands commands for placing text, locating the cursor, clearing the screen etc. It is also expandable and will soon have more commands for graphics manipulation!
Will there be a MkIII?
We certainly intend to have a MkIII and - why not - a MkIV. We still have plenty of plans and ideas for expanding and enriching the Project, we only need people willing to devote the time needed for such a complex task.