Close
0%
0%

Z80-MBC2: a 4 ICs homebrew Z80 computer

Homemade 8MHz Z80 SBC, 128kB banked RAM, RTC, SD (HD emulation), Basic and Forth interpreter, CP/M 2.2 and 3, UCSD Pascal, Fuzix and more...

Similar projects worth following
The Z80-MBC2 is an easy to build Z80 SBC (Single Board Computer).It is the "evolution" of the Z80-MBC (https://hackaday.io/project/19000), with a SD as "disk emulator" and with a 128KB banked RAM for CP/M 3 (but it can run CP/M 2.2, QP/M 2.71, UCSD Pascal, Collapse OS and Fuzix too).

It has an optional on board 16x GPIO expander, and uses common cheap add-on modules for the SD and the RTC options. It has an "Arduino heart" using an Atmega32A as EEPROM and "universal" I/O emulator (so a "legacy" EPROM programmer is not needed).

It is a complete development "ecosystem", and using the iLoad boot mode it is possible cross-compile, load and execute on the target an Assembler or C program (using the SDCC compiler) with a single command (like in the Arduino IDE).

* NOTE TO THE READER *: Due to a text size limitation of the Hackaday. io site a few chapters have been moved to "Log files". In this case you have just to click on the link of the chapter's title to open a new tab and read it.





* * HARDWARE OVERVIEW * *

The needed ICs for the "base system" are:

  • Z80 CPU CMOS (Z84C00) 8Mhz or greater
  • Atmega32A
  • TC551001-70 (128kB RAM)
  • 74HC00

If you want the 16x GPIO expansion (GPE option) add a MCP23017 too.

The schematic and the BOM are attached in the Files section. The MCU Atmega32A is used as universal I/O subsystem, as Eeprom, and as reset and 4/8MHz clock generator for the Z80 CPU.
Inside the Atmega32A it is flashed an Arduino bootloader taken from here, and it is possible to use the Board Manager of the Arduino IDE to "import" it.

Flash the Arduino bootloader at first (with the method you prefer), next you can upload the IOS "sketch" (the I/O Subsystem that interacts with the Z80 bus and "virtualizes" the EEPROM and all the peripherals seen by the Z80 CPU) using Arduino IDE.

You can use the on board ICSP port J3 (also called ISP port) to write the bootloader, but remember to disconnect any other connector when using it. Also both SD and RTC modules (if present) must be removed from the board when the ICSP port is in use.

As clock source for the Z80 CPU it is used the 16MHz Atmega32A oscillator, so the "external 16MHZ osc." bootloader variant must be chosen when flashing the bootloader from the Arduino IDE!.

The 74HC00 is used as RS flipflop to stop the Z80 CPU during I/O operation, giving the needed time to the Atmega32A to interact with the Z80 bus, and as part of the MMU.

Note that only the CMOS version of the Z80 CPU can be used here. This because only CMOS version, under given condition that are respected in this schematic, has logical levels compatibles with Atmega32A and 74HC00.


NOTES ABOUT THE COMPONENTS

You should use a  Z80 CMOS speed grade of at least 8MHz for full speed, but setting the clock speed at 4MHz you can use a 4MHz Z80 CMOS version too (or you can try to overclock it at 8MHz...). The 74HC00 can be substituted with a 74HCT00 if you already have one. The RAM chip TC551001-70 can be substituted with any suitable 128kB SRAM).

Please note that the USER led  * must * be blue or white (or pink... I've some pink leds that seems to have a Vf like blue one. May be I'll do a board with them...) just to be sure that V(forward) is >= 2.7V (otherwise the USER key may not work as expected).

The J4 connector (AUX_P) is used as auxiliary power connector when an add-on board (uCom or uTerm) is connected.

The three solder jumpers (SJ1-3) on the bottom side are not currently supported and must  be left opened (as stated in the schematic).


THE GPE OPTION (GPIO CONNECTOR)

It is possible to choose to populate on the PCB a GPIO port expander (U5) to add 16 bidirectional GPIO pins. The GPE option (see the schematic) can be used with the SPP Adapter board (see the paragraph: SPP (STANDARD PARALLEL PORT) ADAPTER BOARD).

The pinout of the GPIO (J7) connector is:


THE SERIAL PORT

The  SERIAL port (J2, see schematic) can be connected with a TTL-RS232 adapter, or with a serial-USB adapter.
I've used a serial-USB adapter that acts also as power source for the Z80-MBC, and has the DTR signal for the "autoreset" driven from the Arduino IDE. For a terminal that has a serial TTL port no adapter is needed.

Of course to upload a "sketch" from Arduino IDE you need to use a serial-USB adapter connected to the SERIAL port.

Note that the RTS and CTS pins of the SERIAL port are not currently supported and must be left not connected (as the NC pin!).

The 3V3 pin of the serial-USB adapter must be left disconnected  (if present).

You should use those Serial-USB adapters that have the DTR pin on the connector. It is suggested to have also the CTS/RTS signals available for future upgrades.

Please note that all the pin...

Read more »

Adobe Portable Document Format - 11.43 MB - 10/13/2023 at 11:16

Preview
Download

SD-S220718-R290823-v2.zip

The content of the microSD needed to run CP/M 2.2, CP/M 3.0, QP/M 2.71, UCSD Pascal, Collapse OS and Fuzix with IOS S220718-R290823 (More info in the Changelog.txt file inside)

Zip Archive - 5.81 MB - 10/06/2023 at 10:40

Download

S220718-R290823_IOS-Z80-MBC2.zip

The sketch for the IOS (with the needed libraries). Unzip into a folder and open the .ino file (with Arduino IDE). IOS must be uploaded into the Atmega32A flash. Adds support for Fuzix OS and the SPP Adapter board (more info in the changelog inside the .ino file).

Zip Archive - 43.75 kB - 09/24/2023 at 11:59

Download

S220718-R290823_IOS-Z80-MBC2.ino.with_bootloader_atmega32_16000000L.hex

The sketch for the IOS in executable format (.HEX) with the bootloader. This executable file is intended for use with a programmer as the Atmel Ice or AVRISPmkII or others (Fuse bits: High Byte 0xD6, Low Byte 0xAF, Lock Byte 0xCF)

x-hex - 59.90 kB - 09/24/2023 at 12:04

Download

SPP Adapter board - A240721-R270921.zip

All the documentation needed to build the SSP (Standard Parallel Port) Adapter board (A240721-R270921) including schematic, PCB assembling guide, Gerber files for PCB production. PCB is 55mm x 60mm 2-layers.

Zip Archive - 747.10 kB - 09/24/2023 at 15:10

Download

View all 13 files

  • 1 × See the file "A040618 BOM v2.ods" in the FILES section.

  • * * ​USING THE TASM CROSS ASSEMBLER * *

    Just4Fun10/09/2023 at 14:07 0 comments

    * * USING THE TASM CROSS ASSEMBLER * *

    The TASM cross assembler (Windows CLI application) can be used for various CPU. It can be downloaded from here. The on-line manual is here.

    Using the TASM cross assembler it is possible setup a toolchain to program the Z80-MBC2, doing all the development on a PC and uploading the code with the serial port and then executing it on the target Z80-MBC2 with iLoad.

    After the download of the TASM zip file, unzip it into your working directory (it is the folder where your assembler source files are stored) and to assemble an user source give the command:

    tasm -s -h -c -g0 -80  <Your_source.asm> out.hex

    It will be created the out.hex file (Intel-hex formatted executable file).

    Now you can upload and execute out.hex using the iLoad boot mode of the Z80-MBC2.

    Remember that iLoad will take the first address of the Intel-Hex stream as the starting address of the program, and after the loading will jump to it.

    At this point you can follow the same steps to create an automated toolchain described in the paragraph "SDCC: SETTING UP AN AUTOMATED TOOLCHAIN (WINDOWS)".


    TASM: USING AUTOBOOT

    If you want create a binary file to use with the Autoboot boot mode you can generate it with the command:

    tasm -s -h -c -g3 -80   <Your_source.asm> out.bin

    It will be created a flat binary file out.bin. Then rename out.bin as autoboot.bin and copy it into the root of the SD used by the Z80-MBC2.

  • * * ​USING THE SDCC CROSS COMPILER * *

    Just4Fun10/05/2023 at 13:27 0 comments

    * * USING THE SDCC CROSS COMPILER * *

    Using the SDCC (Small Device C Compiler) cross-compiler it is possible setup a toolchain to program the Z80-MBC2 with the C language, doing all the development on a PC and uploading the code with the serial port and then executing it on the target Z80-MBC2 with iLoad

    SDCC can be found here: https://sdcc.sourceforge.net/.

    After installing it, SDCC needs to be in some way instructed about how to deal with the specific HW of the Z80-MBC2.

    For this reason in the SD image, inside the \SDCC folder, there are two support files: S190818-R011023_crt0.s and S290923_Z80-MBC2.c.

    All the steps needed to configure the toolchain are explained below (we will assume a Windows operating system here, but the steps are similar for Linux):


    STEP 1:

    Copy the two support files S190818-R011023_crt0.s and S290923_Z80-MBC2.c from the SD image (\SDCC folder) to your working directory (it is the folder where your C source files are stored) and compile the first file with the command (from your working directory):

    sdasz80 -plosgff -o S190818-R011023_crt0.s

    It will be created the S190818-R011023_crt0.rel file.


    STEP 2:

    Now it's time to compile the second support file (S290923_Z80-MBC2.c). Here things are a little more complex because this file can be compiled in two different ways which differ depending on whether interrupts are enabled or not.

    The  need to have interrupts enabled or not depends on whether your user program uses them or not.

    To enable the interrupts support compile with the command (from your working directory):

    sdcc -c -mz80 -DZ80MBC2IRQ S290923_Z80-MBC2.c

    Instead to disable the interrupts support compile with (from your working directory):

    sdcc -c -mz80 S290923_Z80-MBC2.c

    It will be created the S290923_Z80-MBC2.rel file.


    STEP 3:

    iLoad uses the first address as starting address for the execution, so the executable file (Intel-Hex formatted) must be in ascending address order. This is not guaranteed by SDCC, so you need to use the srec_cat utility to sort the file. You can download this utility from here: https://srecord.sourceforge.net/  and then you have to copy the srec_cat.exe file into your working directory.


    All done!

    To compile your source file the command is (from your working directory):

    sdcc -mz80 --no-std-crt0 S190818-R011023_crt0.rel <your_source.c> S290923_Z80-MBC2.rel -o temp.hex

    It will be created the temp.hex file (Intel-hex formatted executable file).

    Now to sort the file give the command (from your working directory):

    srec_cat -disable-sequence-warnings temp.hex -Intel -o out.hex -Intel

    This will create the sorted file ready to be loaded with iLoad: out.hex.

    Now you can upload and execute out.hex using the iLoad boot mode of the Z80-MBC2.


    SDCC: SETTING UP AN AUTOMATED TOOLCHAIN (WINDOWS)

    To create an automated toolchain you need another "ingredient", a terminal emulator supporting scripts. Here we will use Tera Term. You can download Tera Term from here: https://ttssh2.osdn.jp/index.html.en.

    After installing Tera Term, from the SD image inside the \SDCC folder, copy into the working directory the following batch files: SDC.BAT and L.BAT.

    Before using the L.BAT batch file you have to adapt two parameters according with the configuration of your PC. 

    Go at line 18 and verify the path where Tera Term (ttermpro.exe) is installed, and at line 19 the number of the COM port used to connect the Z80-MBC2 to your PC.

    You need also to copy the Tera Term script LoadZ80.ttl from the /SDCC folder (inside the SD image) to the directory where Tera Term (ttermpro.exe) is installed, and adapt the parameter at line 15 with the complete path of your working directory in your system.

    Now to compile your_source.c file give the command (from your working directory):

    SDC your_source.c

    and to upload and execute it on the Z80-MBC2 (from your working directory):

    L

    Remember to close the Tera Term window...

    Read more »

  • How use the ICSP port with the USBasp programmer under linux to burn the bootloader

    Just4Fun07/27/2018 at 15:57 0 comments

    A cheap and easy way to burn the Arduino bootloader is to use an USBasp programmer that is commonly available:

    The USBasp is also capable to give the power to the "target" using the VCC pin, but remember to check that the JP1 jumper is set to provide 5V to the target (as shown in the photo).

    Please note that the pinout of the USBasp is a little different from the "standard" ICSP (os ISP) pinout:


    In the previous picture it is possible see that pins 4 (TXD) and 6 (RXD) are not at GND as expected  by the standard ICSP port, and pin 3 is not NC.

    See the following picture showing the standard 10 pin ICSP pinout:


    So you must consider this when connecting the USBasp to the 6 pins ICSP port (J3) on the Z80-MBC2 (see the schematic):

    To avoid problems I suggest to use as GND pin 10 of the USBasp connector, and connect the other pins (VCC, MISO, MOSI,SCK, RST) accordingly.

    An handy way to connect the USBasp to the 6 pin ICSP port (J3) of the Z80-MBC2 could be to use a commonly available "10pin to 6pin" adapter like this:


    but I suggest not to use it "as is" because its internal connections are done for a "standard" ICSP port, and we have seen that the USBasp connector differs from the standard one.
    The schematic of the adapter shows that isn't compatible "as is" with the UABasp connector:


    To use it is a good idea isolate the pins 4, 5 and 6 cutting the trace on the PCB of the adapter that connects those pins together, and then check with a tester.
    In the following photo are shown the three cuts (thin red lines inside the green "circle") to do:


    BURNING THE BOOTLOADER FROM ARDUINO IDE:

    To easily burn the bootloader follow these "quick and dirty" steps (tested on a linux Mint OS with Arduino IDE 1.8.5):

    STEP 1: Connect the 10 pins connector of the USBasp programmer to the 6 pins ICSP port (J3) of the Z80-MBC2 (using wires or a modified adapter as discussed before);

    STEP 2: Verify carefully that any other connector of the Z80-MBC2 is not used, and verify that both the SD and RTC modules (if present) are removed from the board;.

    STEP 3: Only at this point connect the USB side of the USBasp programmer to an USB port of your workstation;

    STEP 4: Open a "terminal" window on your workstation and go to the directory where there are the Arduino IDE executables, and get the root privileges with the command:

    sudo su

    then run the Arduino IDE with the command:

    ./arduino

    STEP 5: Because Arduino IDE is running as the root user it is necessary re-install the "core" for the Atmega32. Open the Board Manager as you already did (anyway  the guide is here). Note that you must do this step only the first time you execute the Arduino IDE as root;

    STEP 6: Now from the Tools menu of Arduino IDE select "Atmega32" as "Board", "16 MHz external" as "Clock", and "USBasp" as "Programmer". Then you can burn the right bootloader (without playing with the FUSE setting) selecting "Burn Bootloader" from the same "Tools" menu.

    All done!

View all 3 project logs

Enjoy this project?

Share

Discussions

Peabody1929 wrote 02/12/2019 at 21:40 point

I built a second system.  It is up and running just fine with a HM628128ALP-7 SRAM as well.  To test the board I booted CP/M and ran MBASIC.  I opened the "Examples with Basic" on my PC, copied the USER LED BLINK example and pasted it into Tera Term at the MBASIC prompt.  This is a very easy way to get a program into the system.  Then I did SAVE "BLINK",A to put the app into the SD Card disk file.  RUN executed the app and blinked the LED.  All in all, it took about a minute the run the app to test the LED.  Very nice!

  Are you sure? yes | no

Linker3000 wrote 02/09/2019 at 13:55 point

Just FYI, the board works fine with HM628128ALP-7 SRAM and should also be OK with AS6C1008-55PCN.

  Are you sure? yes | no

asorc wrote 02/07/2019 at 16:15 point

Hello,

Let's see if some of you have had the same or a similar issue. So, I do not have a way to upload sketches in windows 7, but I do have a raspberry pi model b. Therefore, I use it to upload hex files to a blank atmega32a. I compile the sketches with the mightycore library, wire, etc. in windows 7, using arduino ide, and then take the hex files to burn them with the raspberry pi to the atmega32a using six wires and the GPIO connections of the raspberry pi. The result I get when I set up the computer to power it on and start the serial monitor of arduino ide, is that the IOS led starts to blink, but at a quite slow rate, and when I open the terminal, nothing happens. Has any of you had a similar problem? I uploaded a hex file that has the bootloader included according with its name, but I do not know if everything has gone really well, apparently avrdude tells me so, or if any IC is damaged. Thanks to all, in advance.

  Are you sure? yes | no

jmarik wrote 02/07/2019 at 21:16 point

Are the fuses set correctly? I used CF, D9.

  Are you sure? yes | no

asorc wrote 02/07/2019 at 22:24 point

I don't remember which ones come in the configuration of avrdude, because I have not touched anything else appart from the GPIO pins I use. I will have a look at it.

  Are you sure? yes | no

Linker3000 wrote 02/09/2019 at 14:09 point

Confirming the fuses (CF D9). 

I ended up using a TL866 programmer because I could not get ICSP/USBASP to work. When I went back to basics later, I found that one of the wires in the ribbon cable I was using between the USBASP and the board header was open circuit! I only discovered this later when I could not get serial comms to work using the same cable! It's always the 'little things'!

  Are you sure? yes | no

asorc wrote 02/10/2019 at 01:01 point

Are these fuses the high and the low respectively? What about the lock byte?

I see there are different settings. I have seen the boards.txt of mightycore library, but It is not entirely clear to me which fuses It burns.

  Are you sure? yes | no

Frank N. Stein wrote 02/08/2019 at 09:00 point

I used "optiboot_flash_atmega32_UART0_115200_16000000L.hex" with

High Byte 0xD6
Low  Byte 0xAF
Lock Byte 0xCF

and it works very well...


  Are you sure? yes | no

asorc wrote 02/08/2019 at 12:48 point

Thanks for showing me where the problem is mostramos likely to be. I am checking the avrdude.conf file, in the m32 section, and I see some subsections memory lfuse, memory hfuse and memory lock, and below, without a write option, memory signature, memory calibration. 

Definitely I have to get more knowledge. I guess these are some default values I can change there or externally, without modifying this. I have seen ways to do It with avrdude. I will have a look at it.

Thanks, any help is very very welcome. 

  Are you sure? yes | no

Frank N. Stein wrote 02/06/2019 at 13:27 point

Hi, has anyone managed to send files with Kermit, Xmodem, Qterm or similar via the console interface? I have tried different versions of Kermit (with Terraterm on the PC side) that should have worked - unfortunately without success...

Z80-MBC2 does not support hardware handshaking, but Kermit should also work without it... :-(

Any help is appreciated!

  Are you sure? yes | no

RWDEANE wrote 02/12/2019 at 15:22 point

Currently there is  probably a bug in the z80mbc2 serial handling. An earlier message states that xmodem needs hw handshaking but this is untrue if configured correctly. Xmodem for RC2014 works by default without handshaking using console con: rather than more specific hardware access, I have used that on several flavours of rc2014 computer. I would expect the same version of xmodem to work on z80mbc2. Xmodem is expected to work to the same port that the serial terminal console is using (i.e. the one CON:)

Generic Kermit should work if the system bios supports IOBYTE (it does on rc2014) but I've never tried that on a one serial port system. It is possible that use of Kermit to con: would conflict with use on the same con: for the system console. If Z80MBC2 supported Xmodem and CPM BIOS IOBYTE then I would try Kermit to see how it behaves.

I believe Qterm makes too much detailed access to hw ports which are not virtualised in Z80MBC2 so Qterm cannot work. It may be possible that someone has made a more generic patch for Qterm, but again only worth considering when Xmodem is known to work.

It would really turn Z80MBC2 into an ace system if it supported Xmodem, currently that is blocking me from giving the system a higher star rating.

  Are you sure? yes | no

Michael Fong wrote 01/22/2019 at 07:43 point

vt100 card is a great addition.  If you're looking at doing another revision, I wonder if you'd consider some additional mounting holes at each corner of the card for horizontal mounting? Then you could mount it in a flat rectangular box.

  Are you sure? yes | no

Just4Fun wrote 01/22/2019 at 08:46 point

Hi, there are already two more holes for horizontal assembling... they aren't exactly on the corner, but a little more internal.

I'm "running" an other addition board, uCom (https://twitter.com/Just4Fun_J4Fun/status/1083675698412249089) that shares same dimension and holes position...

  Are you sure? yes | no

Michael Fong wrote 01/22/2019 at 11:31 point

Ooopppsss sorry didn't see them. Nice!  My friend and I really looking forward to building it.

Great work :-)

  Are you sure? yes | no

RWDEANE wrote 01/21/2019 at 21:48 point

I've just launched my Z80MBC2 with CPM3. I like it! I had a problem initially in getting the software into the atmega32 via serial or ISP. My serial didn't support DTR. Took me a while to figure out that I need to hold shift while starting upload in Arduino IDE via ISP, otherwise I just get another upload of MightyCore bootloader.

Now I'm looking for a version of XMODEM with generic CPM3 support of CON: so that I can upload and download files within CPM3 via the single serial connection. Does anyone know of an xmodem version that works for this?

Any chance of a Z80MBC3 design with a second serial port ?  :) And faster?

  Are you sure? yes | no

RWDEANE wrote 01/22/2019 at 08:08 point

I am told that the xmodem from the cpm section on foxhollow.ca (popular with RC2014) works unmodified on cpm3 but I cannot get it to work under  z80mbc2 with cpm3. Can anyone else get it to work? I've only tried so far under cpm3.

  Are you sure? yes | no

Just4Fun wrote 01/22/2019 at 08:48 point

Hmmm, I don't know... may be... it's too early to think about a  Z80-MBC3...

  Are you sure? yes | no

Frank N. Stein wrote 01/24/2019 at 13:59 point

First of all (@Fabio): MANY, MANY THANKS FOR THIS FANTASTIC PROJECT!

And then: 

It looks like XMODEM needs a hardware flow control. (see "tera-term-serial-port.png" at Foxhollow) - ...and unfortunately this is not implemented in this Arduino! :-( In addition, RTS/CTS must be connected to the USB/RS232 converter and SJ2 must be shorted with a solderblob. )

I don't think we need a Z80-MBC3 for that...

An additional serial interface would be great! Would it be possible to use a SC16IS750 (or similar) on the I2C bus??

I LOVE MY LITTLE Z80-MBC2!!! :-)

  Are you sure? yes | no

Just4Fun wrote 01/25/2019 at 07:26 point

Thanks!

SC16IS750: Yes, but you need to modify accordingly the IOS FW and the OS (CP/M)...

  Are you sure? yes | no

RWDEANE wrote 02/12/2019 at 15:27 point

The right version of Xmodem does not require hardware handshaking, the version on foxhollow can work to con: and not require hardware handshaking. I use it on several flavours of rc2014 inc Bill Shen's ZZ80CF (see Retrobrew under Plasmo)

  Are you sure? yes | no

georgedb wrote 01/19/2019 at 11:19 point

Very cool, what a great project! Bought a PCB via an auction, now a scavenge hunt for the parts ;-)

I still got two (huge) 8" floppy disk drives, what would be needed to connect those (the 24V power supply has already been taken care of)?

A lot of Z80 info and other retro processors as well as some related projects can also be found on the website of Grant Searle. RC2014 is another website with interesting info on Z80 retro computing.

  Are you sure? yes | no

Just4Fun wrote 01/22/2019 at 08:50 point

There is no chance to connect a physical floppy disk, unless you design a proper controller and modify accordingly the IOS FW and the OS (CP/M)...

  Are you sure? yes | no

thumper109 wrote 01/19/2019 at 06:58 point

Just got mine working and I love it. Thanks for such a cool little Z80. Magic.

  Are you sure? yes | no

Just4Fun wrote 01/19/2019 at 08:30 point

Thanks so much! More has to come...  :)

  Are you sure? yes | no

Bartosz Makara wrote 01/01/2019 at 17:14 point

Hi, I have three questions:

1. I've copied the content of the SD-S220718-R191018-v1.zip archive to the MicroSD card. This system boots up and I was able to change CP/M 2.2 to QP/M 2.71. But how can I change to CP/M 3.0? I don't know which disk image to choose.

2. Is there any tool like CPMTools for Linux? I don't have a Windows system here.

3. The blue User-LED is not lightning up on my board at any time, even when I press the User-Button. Is this correct?

Thanks again for this project! :)

  Are you sure? yes | no

yeti wrote 01/02/2019 at 06:17 point

@2: http://www.moria.de/~michael/cpmtools/ ... look if your distribution already has it.

  Are you sure? yes | no

Bartosz Makara wrote 01/02/2019 at 11:35 point

Thank you! My question was really unnecessary. The official Linux Mint repository has the "cpmtools" included.

  Are you sure? yes | no

Just4Fun wrote 01/02/2019 at 08:43 point

@1: Enter into the "select boot mode..." menu, press 8 and then press any key (not ESC)  repeatedly until you select the wanted OS, then press CR to activate.

@3: Try USERLED.BAS example.

  Are you sure? yes | no

Bartosz Makara wrote 01/02/2019 at 11:42 point

@1: OK this was much easier than I've imagined. Thank you, this works! :D
@3: Although I've listed the disk image files and seen the USERLED.BAS I haven't tried it till now. I've started it and it tells me the LED is blinking but it isn't. I will solder another one on the board maybe it was broken before I've soldered it. Thanks again!

  Are you sure? yes | no

Just4Fun wrote 01/02/2019 at 11:52 point

@3: check the led polarity too...

  Are you sure? yes | no

frank maertin wrote 12/21/2018 at 20:47 point

Got  my 5  pcb's today. Does anybody needs one?

Shipping only to Germany. 1 Toshiba RAM, ATMEGA and Z80 are also avialable, if needed.

  Are you sure? yes | no

SupraJames wrote 11/25/2018 at 22:05 point

Just want to share something I’ve found tonight. I had an ESP8266 module in my collection and using esp-link (https://github.com/jeelabs/esp-link) my Z80-MBC2 is on my wireless network and I can play with it from anywhere using telnet - and even remotely reset the board and re flash the Arduino part via a web page. It’s beyond cool! Just connected the ESP8266 instead of the USB serial module.

  Are you sure? yes | no

villaromba wrote 11/26/2018 at 09:58 point

Interesting concept, had a read on jeelabs and thought I would give it a go. The ESP8266 is only a few dollars from Aliexpress as well - so well affordable !!!

  Are you sure? yes | no

citizen38 wrote 10/27/2019 at 16:43 point

Hi James, how are you managing the remote reset function? I'm using esp-link for serial comms already. Is it a DTR function?

  Are you sure? yes | no

Just4Fun wrote 11/25/2018 at 10:12 point

Thanks guys..!

BTW: Currently I'm "playing" with a new "thing":

https://www.retrobrewcomputers.org/forum/index.php?t=msg&th=223&goto=560555&#msg_5605

Stay tuned.... :)

  Are you sure? yes | no

John wrote 11/23/2018 at 22:15 point

Thank for a great project. Been wanting to run CP/M on a real Z80 now i have it :)

Regards

Jman 

  Are you sure? yes | no

asorc wrote 11/23/2018 at 20:28 point

Hello, 

I ordered 5 pcbs and I've received them today. I am looking at the layout guide, and I have a question about the legend which says 10 k 8. What does it mean? What's that? I've read something about SIP. But I do not know what's that. Could anyone help me? Thanks a lot  in advance. 

  Are you sure? yes | no

villaromba wrote 11/23/2018 at 20:58 point

You'll find in the Bill of Materials (In Files section) the parts list.

The SIP used is 8 x 10k resistors in a Single Inline Package (SIP) with a common pin for all 8 resistors making 9 pins in total. They are also called a Resistor Array Network.

  Are you sure? yes | no

Jeff Davis wrote 11/24/2018 at 02:14 point

I made a google docs BOM with corrections and longer item descriptions: https://drive.google.com/open?id=145w-IAsDimTIEjg6kTirIJTWtZTU7UPEflaH5Kcza1Q

  Are you sure? yes | no

asorc wrote 11/24/2018 at 13:33 point

Thanks a lot. I've read about resistors array later on. I do not have much knowledge... Btw, I have around 1n5819 instead of 1n5817, and 2n3906 instead of 2n2907. Could I use them?

  Are you sure? yes | no

Just4Fun wrote 11/25/2018 at 10:06 point

Yes, you can do it for both the components. The 2N3906 must be in TO-92 package, so the pins are in the right place...

  Are you sure? yes | no

SupraJames wrote 11/23/2018 at 17:21 point

I am pleased to show my first proper Z80 assembler program. It's a memory tester, which might be useful in the homebrew world. It does bank switching so we can test almost all the 128k which the Z80-MBC2 has, except for the little area where the program runs!

Just paste the .hex into iLoad to give it a go, or look at the source.

Comments? https://github.com/SupraJames/z80-mbc2

  Are you sure? yes | no

villaromba wrote 11/23/2018 at 22:11 point

Nice one, just ran a quick mem test - perfect!! Will check out monitor late weekend ....

  Are you sure? yes | no

SupraJames wrote 11/13/2018 at 21:51 point

i noticed that the old MBC was using the serial port at 38400 baud but the new one is 9600 only. Is there a technical reason for that?

  Are you sure? yes | no

Jeff Davis wrote 11/14/2018 at 08:47 point

I changed the avr ios program's serial from 9600 to 38400, compiled and uploaded to the avr, and it seems to run just fine (played startrek), which makes sense since the serial port is handled by the avr cpu. 9600 just feels more retro I think since the terminal draws a lot faster at 38400.

  Are you sure? yes | no

nemfield wrote 11/11/2018 at 21:05 point

Hi. I have read through this (mostly) and it looks like fun.  I live in Ontario Canada and if anyone has a spare PCB I'd appreciate it. I can paypal you for the cost. Thank you.  Gabe (nemfield@gmail.com).

  Are you sure? yes | no

nemfield wrote 11/11/2018 at 22:33 point

OK. Replying to my own comment. I ordered 5 boards. I used China Post. I'm in Canada. when I get them I'll share them for postage costs to others near me. I advice you do NOT use DHL. Here in Canada they always add some silly brokerage fee and hold you hostage unless you pay it. They are a great service, but do not come clean on all charges.

  Are you sure? yes | no

Yann Guidon / YGDES wrote 11/11/2018 at 22:35 point

That's basically their business model...

  Are you sure? yes | no

Bartosz Makara wrote 11/12/2018 at 09:35 point

I'm living in Germany and when I'm ordering from outside the EU I'm always trying not to choose DHL because I know I have to pay some extra fees. It's terrible! If you order ar PCBway you can also choose E-Packet. I think this is a little bit faster than China Post and costs only a little bit more. And I've never had any problem with extra costs with this shipping way.

  Are you sure? yes | no

Bartosz Makara wrote 11/11/2018 at 13:59 point

Hello, I have two questions about the used parts where I am not completly sure about.

1. question: The "user LED" should be a 2.7V version or higher but what about the voltage of the other five LEDs? Since nobody else asked this here I'm pretty sure I've overseen some information or simply I'm too stupid. :D

2. question: The two tactile switches used in the schematics are per default closed and interrupt the ground line, right? Or do I have to use a reversed switch version? The more I'm trying to get it the less I'm sure about this. 

  Are you sure? yes | no

villaromba wrote 11/11/2018 at 20:13 point

Q1: ther 5 LEDs aren't 'critical' but if you want to keep to the original design I've copied below from the BOM. (In FILES)

D1  LED-3MM  HALT Red
D11 LED-3MM SD Red
D2 LED-3MM  DMA White
D3 LED-3MM  IO_OP White
D4 LED-3MM  IOS Green
D5 LED-3MM  USER Blue

Q2: The 2 switches are normally open (standard tactile switch!) as per the schematic. Depress switch to operate.

  Are you sure? yes | no

Bartosz Makara wrote 11/12/2018 at 09:33 point

Oh great, thank you very much! :)

I knew I'm overlooking something!

  Are you sure? yes | no

Bartosz Makara wrote 11/07/2018 at 07:48 point

Does anybody know a good DIY project to build a serial terminal with a samll display which would work with this little Z80-machine? Probably something based on an Arduino Uno (I have a sapre one here ;). Unfortunately I'm not good in developing something like this for myself.

  Are you sure? yes | no

Mc John wrote 11/07/2018 at 08:13 point

This is a complete ASCII VT100 compatible video terminal in a single chip RS232/USB

http://geoffg.net/terminal.html

  Are you sure? yes | no

Bartosz Makara wrote 11/07/2018 at 12:09 point

Awesome! :) Thank you very much!

  Are you sure? yes | no

mustower wrote 11/03/2018 at 17:07 point

Hi, I am new to hackaday.io. This project ist really amazing. I wondering how I can get a PCB ? Any help/infos are apreciated.

  Are you sure? yes | no

Just4Fun wrote 11/03/2018 at 17:24 point

Thanks!. I've prepared an "easy link" to order a small lot (5 pcs min.) here: https://www.pcbway.com/project/shareproject/Z80_MBC2__4ICs_homemade_Z80_computer.html or you may ask if someone has a spare PCB... (my last spare PCB is now in Sweden...)

  Are you sure? yes | no

SupraJames wrote 11/03/2018 at 22:04 point

if you are in the UK I’d be happy to post you one of my PCBs which should be here in a couple of weeks

  Are you sure? yes | no

villaromba wrote 11/04/2018 at 16:06 point

I too have a spare PCB  you can have FOC  if you are in the UK !!!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates