Close
0%
0%

µLind (micro-lind)

- a 6x09 based retro computer

Public Chat
Similar projects worth following
This project started after my then 14 year old son found 3 intresting and for both of us unknown microprocessor: The 6809! I had since long been curious on how to build a microcomputer and was emediately intriged by the design of this exotic little chip. Being quite familiar with the 6502/6510 (both me and my son are avid Commodore users. GO 64!) I found the "advanced" features of the 6809 interesting. We started sketching on different ideas of what we would like a computer to be able to do. And my son who is an amazing datasheet reader found several features that made this processor intsesting to build a system on.

Disclaimer: 

When I started this journey down the 6809 path I had never heard of the TRS-80 or any of its siblings, I'm European and very much loyal to Commodore, with both C64 and C128 on the desk. In later days I started tinkering with Z-80 and ended up getting 2 Speccys (Sinclair ZX Spectrum). So Z80 and MOS6502/8502 are the only processors I really worked with in the 8-bit universe.

Goal (or what do I want):

So what do I want the final product be? Well as long as me and my son keeps getting better and better ideas it will evolve slightly over time, but in general it will be:

  • a micro computer system based on a 6809/6309 microprocessor
  • a serial controller with a regular RS232 port and a USB port (This will be the terminal port for debugging and updating etc.)
  • a 6522 VIA based dual joystick port (for all your gaming needs)
  • 8kB EEPROM for BIOS, drivers and monitor code (size might change if needed later)
  • 512kB static RAM with option for 512kB more on board (the system itself supports up to 4MB of RAM)
  • fully programmable address and control logic (3 GAL chips)
  • a PS/2 keyboard and mouse interface
  • interrupt controller for 15 unique and prioritized interrupts (it is also possible to set a mask to hide interrupts)
  • an addon port for a audio card (I have already designed a SID 6581/8580/Arm2Sid based board and started on a OPL3 based board)
  • an addon port for a video card (I have a VDC 8563/8568 based one with 2kB character ROM and a working on a V9958 based one)
  • an expansion port with full access to entire address space and all control signals (to be able to implement some smart DMA stuff later on)
  • and a CompactFlash card interface for the "unlimited" storage we all dream of. 

For the expansion port I have already started to design an similar sized expansion unit, with address logic, place for 2 extra 512kB RAM chips and 5 expansion ports. And I have designed a 24 bit parallel I/O module and started on a IEC interface for connecting Commodore drives to the system.  

The beginning:

Soon we had so many ideas that a project started to take form, and I started to draw a possible schematic in KiCad. After some simple testing and "proofreading" by my son I felt that we could be able to make a board of this. I even sat some limitations on the board, just to spice it up a bit, but in the end I had to make it in 3 stages to be able to manage the full scope, it was just too much to put on one board in one go for an microcomputer-rookie like me. 

Stage 1CPU, EEPROM for bios and test applications, RAM, address-logic (one GAL16v8), a serial controller and an expansion port.
Stage 2Stage 1 + Parallel port (6522), complete address logic (2 GAL22v10 and 1 GAL16v8), IRQ handler and addon ports for audio and video cards.
Stage 3Stage 2 + PS2 interface and CF Card addon port. There was no real estate left on the board for a full size CF socket.

Stage 1 ( status: TESTED):

So stage one was just a basic board with a EEPROM, a RAM, a GAL (for control signals) and a serial chip for communication. This basic board also have a single expansion port to be able to test small (and much cheaper) prototype boards for functions on later stages. This will hopefully let the next stage have lower probability for faults.

After assembly and testing of the stage 1 board, the conclusion is:

  • I forgot a pull-up on the DMA/BREQ pin on the CPU.
  • The power regulation and reset handling was not very good, has been complete re-drawn in stage 2.
  • The serial controller is very slow, is also replaced in stage 2. 
  • I forgot to pull out the spare pins of the GAL to the expansion header (the prototype boards need to have an ENABLE signal hand soldered to the GAL)

Apart from these points was the first prototype board successful! 

My son managed to write some code that simply echoes a word back when typed in the terminal in just some hours.

Now are we focusing on testing the prototype boards to validate design of:

  • the IRQ handler....
Read more »

motherboard-stage2.step

Model of stage 2 board in STEP format

step - 18.33 MB - 11/17/2024 at 18:43

Download

motherboard-Stage2.zip

Gerbers for the final stage 2 board.

x-zip-compressed - 2.04 MB - 11/17/2024 at 18:43

Download

motherboard-stage2.pdf

Final stage 2 board schematics.

Adobe Portable Document Format - 387.47 kB - 11/17/2024 at 18:43

Preview

  • 1 × MC6809 alt. HD63B09 Microprocessor
  • 1 × 28C64 Memory ICs / PROMs, OTP PROM
  • 1 × AS6C4008 Memory ICs / Static RAM (SRAM)
  • 4 × 74HCT245 Logic IC
  • 1 × 8MHz Crystal CPU Crystal

View all 24 components

  • Building stage 2 board - a slight hickup

    Eric Lind12/14/2024 at 14:36 0 comments

    So after my son finally soldered the stage 2 board I started testing it, like checking all power connections, all grounds and generally check for shorts. And of course I found out that I had made a big mistake!

    The power pin and ground pin on the serial controller is connected to wrong pins. And if you look in the schematics you can see that I made the symbol for it wrong.

    Fortunately can it be "re-wired" to work. I will just bridge pin 44 to VCC, pin 40 is an unused input pin so it does not matter. And the ground had not been filled on pin 20 so that will not be a problem to just bridge pin 22 to GND. 

    Crisis adverted!

    I will continue to check connections before i populate the board and power it up. I have measured the voltage from the regulator and it is nicely holding on 5.0v. Soon it is Christmas Hollydays and I will be able to take more time to test this bord.

  • Sometimes life comes in between

    Eric Lind12/03/2024 at 09:56 0 comments

    Sadly I haven't soldered the stage 2 board yet, I've had birthdays and other family celebration preparations to tend to. But I still got time to do a visual inspection and found a couple of things that need fixing to stage 3. But none of them was a showstopper yet! 

    So what have I found so far:

    • I'm missing an chip name on U26 a GAL chip. Definitely not a deal-breaker!
    • Footprint on power switch SW1 is not correct (I made this my self and must have been holding my caliper upside down when i did it)
      The hold pins (pins that are not connected but just a part of the switch chassis) are to close to the other pins.
      The hole diameter is to small, the pins on the switch are quite large.
    • The USB socket is too far in to the board, it will not reach out of the case correctly.
    • The same goes to the power socket, but I'm looking for another type of socket for that.

    But none of these are bad enough to stop me from making a stage 2 machine to test on.

    When I finalized the basic tests and those are ok, I'm curious if any one else is interested in trying this computer? I will probably have 2 or 3 boards over after the I've made my prototypes. And I think I will be able to send them out if any one is interested in this project. The only thing I ask of is to get feedback and hope that you will share what you have been doing on it with the "community" (thats what I call my self for now).


  • Stage 2 has arrived!

    Eric Lind11/26/2024 at 19:36 0 comments

    Today I surprisingly received the stage 2 boards! They where supposed to arrive tomorrow! But I'm not sad! They look amazing! 

    Huge thanks to PCBWay who reached out to me and wanted to support this project. They made a great job with these boards and the service was amazingly fast. As the buffoon I am I mistakingly chose wrong on some options when I ordered, but the sent me an question in just an hour to verify my choices. And all was cleared and the bords sent to production almost immediately. 

    Now we will begin to assemble a board an hopefully we will be able to do tests this weekend! 

  • Stage 2 - On the way, the PCBWay!

    Eric Lind11/17/2024 at 18:17 0 comments

    This weekend we finally got around to do all testing on the IRQ prototype board, in order to be able to get the stage2 board. There were some difficulties (mostly bad thinking from our side) but we managed to get it running with some small modifications. So now, with some minor updates we were able to order a batch of stage2 boards. One major step towards the complete system.

    And you know what? I was actually contacted by a representative from PCBWay who showed interest in this project, so now they are actually sponsoring it! I'm really looking forward to this!

    So what did we need to update after prototype testing? 

    The output (the IRQ signal) is active high and the processor expects an active low signal, so here we got to insert the extra unused NOR-gate to invert it.

    The clock pulse was connected to an inverted read signal which means that it will not clock in an released interrupt in the register without reading it again. This was sorted by clocking it with Q, since that is a quarter pulse earlier than the read, it will always have fresh data in the register upon read.

    OE was connected to the read signal and since it is an active low input it needed to be inverted. So we reused the NOR-gate used for the previously used clock pulse.

    We also found that the NAND gates collecting the irq-levels (U5) was out of order so the interrupts came in in the wrong order.

  • One of the prototypes for stage 2 is tested!

    Eric Lind11/08/2024 at 21:45 0 comments

    Me and my son has tested the prototype for the joystick port controller. I had ordered prototype boards to be able to test the functionality of the joystick controller and the IRQ handler before ordering the stage 2 board. 

    We found that I had mixed up the 2 ChipSelect inputs so it was active the entire time, killing the bord. And when I fixed that (by inverting the signal from the logic GAL) we found that 2 of the input pins on joystick A was swapped. I have now updated the schematics for coming stages and will update the uploaded files later this weekend.

    Next up will be the interrupt handler!

  • So I did a thing...

    Eric Lind11/03/2024 at 08:41 0 comments

    So i decided to make a simple case to protect the board, it is not in any way done or perfect, but it is sufficient for prototyping. 

    Case for prototype

View all 6 project logs

Enjoy this project?

Share

Discussions

Frank Swygert wrote 12/09/2024 at 13:27 point

You might want to consider NitrOS-9 as a multi-tasking OS. It would have to be modified to run on your 6809 board, but it should be doable.

  Are you sure? yes | no

Eric Lind wrote 12/09/2024 at 17:20 point

I was actually thinking about that. I need to look in to what needs to be modified.

  Are you sure? yes | no

Alexey Vazhnov wrote 12/06/2024 at 22:32 point

MIT license— awesome!

  Are you sure? yes | no

Eric Lind wrote 12/09/2024 at 17:21 point

I have always been a strong supporter of open and free hardware/software.

  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