An Improved MENSCH™ Microcomputer

For discussing the 65xx hardware itself or electronics projects.
Post Reply
User avatar
gilhad
Posts: 85
Joined: 26 Jan 2024
Location: Prague; Czech Republic; Europe; Earth
Contact:

Re: An Improved MENSCH™ Microcomputer

Post by gilhad »

It is also convenient for me to use Route Tracks in the Shove Mode, so all other tracks make place, when I am trying to get track laid with X :)
It is configured by selecting X (Route tracks) on PCB Editor, then Right click, select Interactive Router Settings from menu and select Shove Mode there (and play with the settings, so router helps you, not fight you :) )
(Took me long to discover this settings)
User avatar
gilhad
Posts: 85
Joined: 26 Jan 2024
Location: Prague; Czech Republic; Europe; Earth
Contact:

Re: An Improved MENSCH™ Microcomputer

Post by gilhad »

@plasmo: I am using autorouter too, but usually the result is not nice and while overall track lenght may be short, some important tracks are longer than needed and sometimes track have a lot of unnecessery corners and unelegant placing, so final corrections are plenty and long
gfoot
Posts: 871
Joined: 09 Jul 2021

Re: An Improved MENSCH™ Microcomputer

Post by gfoot »

plasmo wrote:
I’m surprised with last several posts about manual routing. Some proficient with manual routing is good, but surely most projects were done with auto router? Perhaps a bit of final touch up with manual routing. I’m not familiar with KiCad, but surely in 2025 it has a capable autorouter that can finish the board in a minute or two? The auto router in my 25-year old tool is fast enough to help me with component placement; I move/rotate components to reduce the efforts for the auto router.
Bill
Interesting, I've only ever done them by hand, partly because I enjoy the process - it's a bit like the worrying trend these days for generative AI to take over doing the things that are actually fun in our work, while we still have to do the menial clean-up work afterwards fixing all the mistakes.

So I personally haven't tried the autorouter at all. I might have to see what it does with my Fast PDIP design, but I have to say I'm extremely sceptical!
plasmo
Posts: 1273
Joined: 21 Dec 2018
Location: Albuquerque NM USA

Re: An Improved MENSCH™ Microcomputer

Post by plasmo »

The Cooper and Chayne auto router was from early 1990’s, so they have 35 years of maturing. It is now called Specctra router and very capable. For 100mm square PCB, you can pack DIP shoulder to shoulder and it can route successfully in 2 layers with 2mm traces. SMT needs more space around it, but the board currently in discussion can easily be done in 2 layers although I would go for 4 layers simply because the cost difference is insignificant.

I do highlight the clock and control signals post routing to make sure they are reasonable length, but 100mm square board is small enough that clock and controls seldom routed excessively long.
Bill
Martin_H
Posts: 837
Joined: 08 Jan 2014

Re: An Improved MENSCH™ Microcomputer

Post by Martin_H »

Thanks for the helpful feedback. Changes since I posted that image: XBUS is fully wired, moved power to the upper right, moved J2, J3, and J8 to the left closer to the pins they connect to.

@Bill, out of the box newer versions of KiCad don't include an auto router. There's a plugin called FreeRouter, but I haven't tried it.

@Gilhad, good idea with the J4 and J6 connectors. Thanks for the information on shove tracks. I have been manually breaking and rewiring.

@George, good idea with editing the footprint for no connect pins. Unfortunately, U1's pins are too fine a pitch for manual modification.

@Neil, I pushed updates to GitHub last night. That way I can always revert in case any ideas turns out to be bad ones. Thanks for confirming that repurposing no connect pads was too good to be true.

I violated the no connect with U2 pin 1 and connecting it to a17. The 256kB static RAM has the same pinout as the 128kB, except one is NC and the other is a17. To fix that I should probably route a17 to a solder pad under the IC, which the user can bridge to connect pin 1.

I tried moving the XBUS connect over 2.54mm and it doesn't buy that much.

Here's my todo list:

Code: Select all

* Swap J4 and J6 connectors as Gilhad suggested.
* Remove unnecessary vias near the XBUS connector once I am sure I don't need to run any left to right traces.
* Try converting board to 3 or 4 layers, and try some ideas George suggested.
* Install and try FreeRouter. If it is any good I will try alternate layouts with CPU orientation and XBUS location.
Martin_H
Posts: 837
Joined: 08 Jan 2014

Re: An Improved MENSCH™ Microcomputer

Post by Martin_H »

This picture shows the XBUS routing, moved power supply, and eliminating unnecessary vias.
Attachments
Board layout draft 100 by 100.png
User avatar
gilhad
Posts: 85
Joined: 26 Jan 2024
Location: Prague; Czech Republic; Europe; Earth
Contact:

Re: An Improved MENSCH™ Microcomputer

Post by gilhad »

All vias between U2 and XBUS can be easily eliminated :)
Just remove them and let the traces continue on the side (top/bottom) , from which they come. (Just pins 19 and 27 have to be approched from different side (right/left) )
Martin_H
Posts: 837
Joined: 08 Jan 2014

Re: An Improved MENSCH™ Microcomputer

Post by Martin_H »

gilhad, thank you for your contributions to the routing. It improved things considerably. I have since routed the traces for the 65c22 as well as some other control signals. That now leaves the bottom headers as the remaining area to need traces. GitHub is up to date.
Attachments
Board layout draft 100 by 100.png
Martin_H
Posts: 837
Joined: 08 Jan 2014

Re: An Improved MENSCH™ Microcomputer

Post by Martin_H »

I have routed all traces, and it looks mostly respectable. At least to me, but I've never done this before. I have also updated GitHub and an image is attached. But I have some questions:

Code: Select all

* I want to add a solder jump connected to a17 and U2 pin 1 to allow for 128k or 256k RAMS. I added the jumper and footprint. But I need to create a netlist and assign it to one end of the jumper and change pin 1 from no connect to that netlist. But I don't know where in the UI to do that. Alternatively, is there a better way to do this?
* I connected +5V to the FTDI jack pin 3. This allows powering the board from the USB adapter, and I have seen microcontroller boards do exactly this. But if batteries are connected power could back feed into the USB port if the adapter doesn't have a blocking diode. I am not sure how concerned to be about this.
* I distributed power and ground while remaining a two layer board. I am fairly sure there are no ground loops, is there a way to verify that?
* Are there any validation tools in KiCad to use to ensure the PCB doesn't contain glaring problems?
* What is done to sanity check a PCB design before fabrication?
Attachments
Board layout draft 100 by 100.png
User avatar
GARTHWILSON
Forum Moderator
Posts: 8773
Joined: 30 Aug 2002
Location: Southern California
Contact:

Re: An Improved MENSCH™ Microcomputer

Post by GARTHWILSON »

Martin_H wrote:
  • I distributed power and ground while remaining a two layer board. I am fairly sure there are no ground loops, is there a way to verify that?
  • Are there any validation tools in KiCad to use to ensure the PCB doesn't contain glaring problems?
  • What is done to sanity check a PCB design before fabrication?
These things are discussed in the custom-PC-board page of the 6502 primer, at http://wilsonminesco.com/6502primer/CustomPCB.html , and there's a link there also to this forum post where I describe a checking technique that has never failed me.
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
gfoot
Posts: 871
Joined: 09 Jul 2021

Re: An Improved MENSCH™ Microcomputer

Post by gfoot »

On the other questions -
Martin_H wrote:
* I want to add a solder jump connected to a17 and U2 pin 1 to allow for 128k or 256k RAMS. I added the jumper and footprint. But I need to create a netlist and assign it to one end of the jumper and change pin 1 from no connect to that netlist. But I don't know where in the UI to do that. Alternatively, is there a better way to do this?
The best way is just to add the jumper to the schematic as you would for any other component, then you can place it on the board and join up the pads as usual.
Quote:
* I connected +5V to the FTDI jack pin 3. This allows powering the board from the USB adapter, and I have seen microcontroller boards do exactly this. But if batteries are connected power could back feed into the USB port if the adapter doesn't have a blocking diode. I am not sure how concerned to be about this.
So long as you're careful there's no problem and a lot of cheap USB breakout boards (Arduino Nano etc) seem to just rely on the user not connecting both. But a cheap low tech way to protect it is to add a three-pin jumper to allow 5V to be connected at any time one way or the other but not both.

I have had some cases for circuits powered by cheap power supplies but connected to USB FTDI adaptors where even with 5V not connected, simply having the ground connected was causing errors on the PC. This was ultimately fixed by using a different FTDI board that had full isolation from my circuit. I've been considering building optocouplers in to future circuits on my side but I don't think it's critical in general - if your circuit can be powered by USB anyway then you don't have this problem.
User avatar
drogon
Posts: 1671
Joined: 14 Feb 2018
Location: Scotland
Contact:

Re: An Improved MENSCH™ Microcomputer

Post by drogon »

gfoot wrote:
Quote:
* I connected +5V to the FTDI jack pin 3. This allows powering the board from the USB adapter, and I have seen microcontroller boards do exactly this. But if batteries are connected power could back feed into the USB port if the adapter doesn't have a blocking diode. I am not sure how concerned to be about this.
So long as you're careful there's no problem and a lot of cheap USB breakout boards (Arduino Nano etc) seem to just rely on the user not connecting both. But a cheap low tech way to protect it is to add a three-pin jumper to allow 5V to be connected at any time one way or the other but not both.
This is what I do on almost all my little boards - the 3-way jumper selects 5v from the incoming USB serial or 5v via the other side of the jumper, so I can power the board externally by connecting a flying lead that goes back to a 5v supply.

I did this with my 6507 board and xmas-tree lights so I could hang the board on the tree powered via a USB power bank thing (Which worked rather well and lasted 2 days between charges!)

-Gordon
--
Gordon Henderson.
See my Ruby 6502 and 65816 SBC projects here: https://projects.drogon.net/ruby/
User avatar
gilhad
Posts: 85
Joined: 26 Jan 2024
Location: Prague; Czech Republic; Europe; Earth
Contact:

Re: An Improved MENSCH™ Microcomputer

Post by gilhad »

Martin_H wrote:
I have routed all traces, and it looks mostly respectable. At least to me, but I've never done this before. I have also updated GitHub and an image is attached. But I have some questions:

Code: Select all

* I want to add a solder jump connected to a17 and U2 pin 1 to allow for 128k or 256k RAMS. I added the jumper and footprint. But I need to create a netlist and assign it to one end of the jumper and change pin 1 from no connect to that netlist. But I don't know where in the UI to do that. Alternatively, is there a better way to do this?
* I connected +5V to the FTDI jack pin 3. This allows powering the board from the USB adapter, and I have seen microcontroller boards do exactly this. But if batteries are connected power could back feed into the USB port if the adapter doesn't have a blocking diode. I am not sure how concerned to be about this.
* I distributed power and ground while remaining a two layer board. I am fairly sure there are no ground loops, is there a way to verify that?
* Are there any validation tools in KiCad to use to ensure the PCB doesn't contain glaring problems?
* What is done to sanity check a PCB design before fabrication?
I use lot of solder jumps, I simply add it to the schema, assing footprint, then go to the PCB and run Tools/Update PCB from schematic (F8)

Loops - on PCB I click one wire (GND, +5V etc) and use Right Click / Net Inspection Tools / Highlight Net to see, where the wire is connected - Right Click / Clear Net Highlighting (~) returns to normal colors

Validation - Schema - Inspect / Electrical Rules Checker
PCB - Inspect / Design Rule Checker

Each check the respective part (schema/pcb) for violation of rules. PCB restrictions can be modified in File/Board Setup (like minimal trace width and everything else)
It usually show lot of Errors and Warnings, which are usually easy to fix (something is not connected yes, some parts overlap etc etc)

Some errors/warnings are not fatal (like overlaping silkscreen with something - if send to manufacture, the affected part od silkscreen will be simply ignored like text over pad - the text befor and after pad is still there, the part over soldering place (say half of character) is erased so soldering can be done, clipped of silkscreen (out of board) is also not problem)
Sometimes some Error are even done on purpose (overlap of socket for IC and parts inside the socked, some overlapping, when I plan to solder one or other part, but not both ... etc etc)

You may ignore the Errors/ Warnings, the Markers pointing to them may be cleared int the checker windows (Delete All Markers), the do not affect export / manufacturing. But it is wise to consider all of them an fix as much as make sense.
The Checkers are fast and cheap and easy to use (and have icons ont the top bar too), they usually find hundreds of "issues" on first run but usually it is easy to fix nearly all really fast.
I use the checkers all the time (like every couple of minutes sometimes), and I "got eye" for what I can ignore now and fix later and what may be problem. It helps me to keep the project working and clean and points out many obvious mistakes, which I could find even without it, but this way it is faster and more convenient. (It is my tool, not my Master :) )
barnacle
Posts: 1831
Joined: 19 Jan 2004
Location: Potsdam, DE
Contact:

Re: An Improved MENSCH™ Microcomputer

Post by barnacle »

Just for amusement value, I laid it out from your github. I moved one or two components, and _most_ of the components and headers are on the same grid now (obviously I have PCBOCD). I've put a link in for A17/U2.
Screenshot from 2025-09-09 16-56-39.png
I have tried to follow my usual rule of up-down on one side and left-right on the other, but chips with pins on four sides tend to break that so the bottom half of the board is still a bit messy.

Neil
plasmo
Posts: 1273
Joined: 21 Dec 2018
Location: Albuquerque NM USA

Re: An Improved MENSCH™ Microcomputer

Post by plasmo »

It is actual important to put through hole components on 0.1” grid. This way a daughter board can be added to expand capability, to provide logic analyzer interface, or to repair mistakes in design.
Since this is 2-layer board, you may want to inspect the ground trace to make sure there are multiple direct return paths from fast components. Short, multiple, direct ground paths between CPU, RAM, ROM can help reducing noises.
Bill
Post Reply