There is only one good way to learn to use a CAD program: trial and error. Or, in our parlance: ripup and
retry. And instead of going for the two transistor amplifier to be mounted on a single sided PCB, my target is
to create a processor module for an NSSBC (Not-So-Single Board Computer).
Some weeks ago I thought, that the ARM processor was the only processor that deserved my attention. That may
have been true, for a part, but in general, the ARM is a disaster area. It is targeted at the PIC and AVR
related markets, but the chip has the complexity of an 80386. A RISC instruction set that is so much reduced
that it could just as well have been called a super CISC set. And there are so many PDF files to wade through
that it is impossibe to find the details you are looking for. Only when you set out to limit yourself to 1
toolchain, the start is relatively easy.
Anyway, I decided to put my ARM adventures in the fridge and (for the rest of my life) will only use Zilog
processors for my thingies. Why Zilog? Because I know them and they have excellent documentation and
affordable development kits.
The NSSBC is a simple modular computer based on Zilog Z80 peripheral chips. Z80's are cheap and readily
available. In many sorts, ranging from the simple Z80A CPU's through the more complex eZ80F91 MPU's. The NSSBC
is intended to be extensible and made up of
Each NSSBC system should have 1 CPU board, one memory board plus as many of the other boards as one likes. The
full system will be open source for hard- and software. People may create their own extension boards, using
whatever technology they like. As long as it can be interfaced with the Z80.
- a CPU board, populated with a Z80 CPU and a Z80 DMA and some status information LED's
- a bus board, with bus amplifiers and 4 to 6 buffered expansion connectors
- a memory board, containing of 2 Megabyte Flash ROM and 2 Megabyte SRAM, with bankswitching control
- a blinkenlight hardware system monitor
- a serial board, bringing out 2 to 4 high speed RS232 interfaces, based on Z80 SIO or Z80 DART
- a parallel I/O board, bringing out 16 or 24 bidirectional I/O pins, based on the Z80 PIO
More about the NSSBC in a later stage in a seperate section of fruttenboel.
The Z80Ctrl board is based on the following:
The funny part of the Z80 DMA is, that it can simply be connected in parallel to the Z80 CPU. All Z80 DMA
outputs are tristated until a BusAcknowledge is valid. Then the CPU tristates itself and the DMA becomes
- board size 80 x 100 mm (so it can be made with Eagle Lite)
- 64 pole DIN 41612 connector, rowformat AC, that carries all signals and power
- Z80 CPU
- Z80 DMA
3 red/green bicolour LED's that give status information about the state of the
signals (red is active, green is inactive)
- The onboard Z80 DMA is the highest priority DMA and highest daisy chain interrupt priority of the system
Three unused (but decoded) IOport addresses are brought out to the expansion connector for use on other
cards (such as the memory board)
I constructed the board with Eagle Lite. Now I want to see how far we get with KiCad. Below are some screen
shots of the circuit drawing and the PCB layout.
This is all there is to say about Kicad for me. I did some tests and I come to the conclusion that Kicad and I
are not compatible. When you know two high grade PCB packages (Pads and Eagle) it's hard to go down to Kicad
level. The user interface is crowded with too smal icons. There's no real logic in the commands and
operations. Yes, the user interface works. You can compose drawings. You can make connections. You can make
netlists and open the board layout package. But you need a freshly bought magic wand to get Kicad to do what
you want. Below are the most important reasons for quitting Kicad:
Kicad is free of charge. And you get what you paid for. Unfortunately. Eagle is clearly superior in all
- very bad documentation (lots of PDF's, almost no HTML)
- operations are not intuitive, but this may be a result of 'i'
- user interface mimmicks Eagle but is too complicated
- library format is unclear and hard to understand
- each and every time you need to include the non standard libraries
- user interface is quirky, jumps up/down at certain moments
- too many functions and icons and menues
- too many manual operations for an eCAD tool
When having defined a bus 'A[0..15]' the automatic signalname function happily creates A16, A17, A18
etcetera when the Ins key is pressed. You can even tie an A0 address line into the D[0..7] bus. This is not
a CAD tool, this is a hobby project to study C++.
The idea behind the footprints is outdated by 20 years. It's called flexibility, but it just adds obscurity.
In Pads all footprints are included in the part library and while laying copper one can switch between them
with the F4 key. THAT was flexibility. Back in '92.
If you move a part with connections on it, the connections stay put and the part is moved, which makes a
very silly impression.
while laying PCB traces, you cannot
It's all a bit clumsy (if you know Eagle and Pads) and it seems that Kicad wants to paternize the user in
preventing him from stupid things, even when the user knows perfectly well what he is doing.
- cross existing traces in the same plane
- end the trace, for some obscure reason
- press a refresh ratsnest button
- move traces around with the mouse and the 'm' command
- at random places, all kinds of french words appear, which do not make things easier
Please be so kind to take a look in the gEDA section. gEDA is similar to KiCad, with one major difference: an
EXCELLENT documentation system. Lots and lots of HTML files in the weirdest of places. Just add them to your
localhost webserver and you're done. No need to browse the web for every little detail. The majority of things
is explained in detail on your ownb computer. Go for it. And then inform the KiCad people. They might be
interested to see how gEDA solved the things.
Page created on 7 March 2011 and