steve shumaker wrote:
> I'd be interested in building one!
Kenneth L. Owen wrote:
> I am interested.
OK; that's two (besides me). The project has begun! :-)
Terry Gulczynski is sending me his ID-4801 to play with. That will let
me see how it actually looks and works. It will also give me the
original firmware. It hasn't arrived yet, but I'm looking forward to it.
In the meantime, I entered the schematic (attached) into Orcad; the
program I use for PCB layout. In doing so, I found a few more errors
(differences between the schematic and x-ray layout printed in the Heath
manual. The corrections can be determined by looking at the actual hardware.
I've also started placing parts. It's a big board -- 7.5" x 13.5"! Since
PCBs sell by the square inch, and I can significantly lower the parts
count with newer parts, I'm wondering if I should down-size it.
- Should I keep it the same size for "nostalgia", and so it will
fit the Heath case in case someone needs a spare or upgrade?
- Or (like many of our new H8 boards), should I downsize it to
go into a smaller case? Maybe use a "filler" panel if it needs
to go into an old Heath case?
I also haven't decided how MUCH to upgrade it. There's a "slippery
slope" here. If I make too few changes, it's just an old limited
programmer of little use, instead of the fun of building a kit. If I
make too many changes, it's no longer the same, and many wouldn't enjoy
it as a retro-Heathkit.
At the moment, these are the hardware changes I see making:
1. Replace the six 74LS259 LED drivers with 74HC259. This eliminates
the heavy loading on the Z80's D0 and A0-A3 lines. It also saves
200ma of supply current.
2. Replace the 48 series resistors (one per LED segment!) with a
single 3v display regulator. Use this regulator and the inherent
output resistance of the 74HC259's to control LED current.
3. Add a 5v bypass capacitor for the EPROM being programmed.
4. Downsize the +/-15v supplies to +/12v. They are only used for
the RS-232 interface, and the chips used are only rated for 12v
(15v is the "absolute maximum" on the data sheets).
5. Add a transistor to pull down A15 (instead of 1K resistor R11).
1K isn't lower enough to get a good logic low for the LS chips
on this line.
6. Debounce the switches on the INT and NMI interrupt lines.
I see these as actual errors that should be corrected in the Heath
design. It (obviously) works without them; but they eliminate some
worst-case and reliability problems.
I also can't help "playing engineer", and trying to improve it. Here are
the hardware changes I would like to make.
7. Replace the 5 RAM chips (totalling 16k) with one 32k RAM chip.
It saves parts, lowers cost, doubles RAM, cuts power, and allows
programming bigger parts.
8. Replace the 74LS04 TTL crystal oscillator with a 74HC04 oscillator.
HC oscillators work a lot better.
9. Replace the old 741 opamp and transistor 25v regulator with an
LM317 circuit. Way less parts, better regulation, and more flexible
to get different programming voltages.
10. Rewire the halfwave voltage doubler for the 25v supply as a
fullwave bridge circuit. This reduces the transformer and
filter capacitor cost and size.
11. Move the power transformer, EMI filter, and on/off switch on-board.
I couldn't find a chassis mount transformer with the right voltages,
but I *did* find one that mounts on a PC board. It's a big board
anyway, there's lots of room, and it saves a lot of off-board
hand-wiring. A cover can be fitted to prevent shock hazards when
playing with a "naked" board.
12. Add support for programming 3-supply +12v/+5v/-5v EPROMs.
Changing the RS-232 supplies to 12v automatically provides
a 12v supply; so only a new -5v regulator would be needed.
13. Increase the size of the firmware EPROM (from 4k to 8k)?
Allows room for the program to grow.
14. Add a RAM just for the program (say, 8k). The firmware manages
to work without RAM (all RAM is used for EPROM burn memory),
but it would be *far* easier to write code with RAM for stacks
and variables. RAM would also allow Z80 programs to be loaded
and run (for testing, new features, etc.)
15. Add support for newer (larger) EPROMs and/or other chips.
The big question is how far to go with this. Adding a bigger
RAM and EPROM socket is easy, so this is mainly a software
issue. Someone has to find the programming algorithms and
add support for them. There are already cheap programmers for
newer chips, so there may be no incentive to do this (except
to have an open-source upgradeable and fixable programmer).
16. Serial port: There are several possibilities here. Use a MAX232
to eliminate the discrete +/-12v supplies. Add a socket for an
FT-232 USB-to-serial converter, so it could be connected to PCs
with only USB ports.
Software:
The present firmware is fairly limited. For example, it only loads and
saves hex files for EPROM programming. All other operations are
controlled by the programmer's keypad. It would be nice to be able to
*control* all programming functions from a PC.
A fixed 50msec programming pulse is used. But this can be made software
selectable to just about anything. Many "smart" EPROM programming
algorithms do things like apply short pulses until the EPROM verifies,
then "hit" it with a 3x longer programming pulse to insure it is
reliable. This lets you program good parts much faster, and programs
weak parts that need a bit more.
Keep in mind that this thing is in reality a general-purpose Z80
"trainer" with RAM, ROM, keypad, hex LED display, serial port, and 3
parallel ports (that just happen to be used for EPROM programming).
There are a lot of other things that can be done with this hardware!
Am I getting too "techie" with this? Should I take these discussions
off-list?
--
If we knew what we were doing, it wouldn't be called research, would it?