A project log for Designing a PROM Programmer for the 24S41

Danny approached me to help with building a programmer some 24S41 PROM chips for an Apple III restoration project.

agp.cooperagp.cooper 07/12/2019 at 01:5722 Comments


I knocked up a schematic for the programmer:

And I tested the component values (for the 16v pulse):

The voltage/current is pushing it for the BC328 so it may be necessary to check output voltage before using the programmer in "anger".

Here is the schematic that I simulated:

I probably should add a pull down resistor on the base of T1 BC547.

Without the "bit" switch the output from the regulator would look like:

Best to let the dust settle on the design before I do a last check and knock up the PCB.


The minimum input voltage is 18.5v rather than 18v, and R2 should be increased from 180R to 200R.

Also worked out how to pull VCC to ground if it is a desired feature of the programmer.

I also "spat the dummy" with EasyEDA and have migrated to KiCAD.

Nearly as bad! How can you have a recommended install with no libraries.

It is a real headache for a novice to workout what libraries are required, where to put them, and how to link them in.

I will get there but why make it so *%#$^!? hard!


I don't actually have a need for this programmer so I will not be designing the PCB.

And Danny is keen to go the prototype path rather than the PCB path.



agp.cooper wrote 07/17/2019 at 01:32 point

Yes, I did think about it and I agree my approach was wrong.
I dumped V5 and installed V4. Under Mint there is a problem with the graphics library, the cursor ghosts very badly but eventuully I found a V4 version that works.
The V4 GUI is not as good as V5 but at least it works.

Its hard to believe that the developers could make such a mess of V5, and it sort of explains why the library does not come with the package anymore.

It was a similar problem with EasyEDA that made me "spit the dumb". They kept making changes to the library that broke previous and active designs. Something you discover after the board has been made, assembled and does not work. You find they changed the default LED and the router did not link it up and the design manger did not say anything. Recently they changed the default VCC and GND (i.e. the labels) and it is not recognised by the design manager as linked to the VCC or GND pins?!

The main problem with EasyEDA is that the server is not coping.

Anyway I now have something that works, it only took three days to install it!


  Are you sure? yes | no

Ken Yap wrote 07/17/2019 at 02:13 point

Libraries are usually in separate packages from the applications. One reason is that the application can be upgraded often but the libraries hardly. But this is a packager choice, not a developer choice. Not everybody wants every library. The 3D library is quite large and not everybody wants to download hundreds of MB for a realistic rendering.

It's a pity you didn't get v5 working, perhaps the folks in the forum can help. v4 is deprecated now and there won't be any futher improvements on it. In fact v5 is already up to 5.1.2, up from 5.0.x and 5.1.3 is around the corner.

Upgrading to v5 won't obsolete your projects. There is a mechanism which caches symbols from the library that was in use before the system library changed. The same mechanism allows you to share projects which have your own symbols not found in standard libraries.

  Are you sure? yes | no

Ken Yap wrote 07/16/2019 at 15:00 point

No, that's not the way to save a symbol edit. You are not supposed to modify standard libraries. Especially if the computer is a shared one in use by others, you would disrupt their work.

The correct way is to make a copy of the symbol, modify it, and save it in a project specific, user specific, or new global library.

You would also create a separate library if you created new symbols which cannot be found elsewhere.

Symbols and footprints are distinct concepts. A particular chip would have one symbol (usually) but might be bound to different footprints when placing it on a PCB depending on what package was selected, THT, SMT, SOIC, etc. In addition, generic footprints, e.g. 14 pin 0.1" pitch DIP 0.3" between rows can be associated with many different chips. Simple components like resistors and capacitors come in all form factors. So the symbol might have a default footprint but can be associated with another footprint. Roughly speaking, symbols are for the schematic, and footprints are for the PCB.

If you want to modify pin assignments, the symbol is what you edit.

You can modify or create footprints in a similar way to symbols. But it's less often needed. For example if I need a footprint for a nixie tube that isn't in the libraries.

Don't mix v4 with v5. No good can come of it. All the symbols and footprints in v4 were ported over to v5, and then some.

Might be an idea to ask the folks at about how to get a good v5 install from the packages for a Mint/Ubuntu system. I'm limited in what I can help to diagnose, having a different distro.

  Are you sure? yes | no

agp.cooper wrote 07/16/2019 at 03:03 point

Hi Ken,
I ran into a problem with KiCAD. I have used a diode and the image of the diode direction in the schematic is reverse to the image in the PCB.
Have you run into this before?

  Are you sure? yes | no

Ken Yap wrote 07/16/2019 at 04:10 point

Er, the position in the schematic has no relation to the postion on the PCB. The former is a symbolic representation of the nets while the latter is a realisation of the circuit.

You can orient the component on the PCB any way you like with the Rotate and Move commands (R and M keys) and the rats nest will follow.

Unless you mean the connections on the PCB differ from that in the schematic. I have never seen that happen. You can highlight a particular net on the schematic or on the PCB with the Highlight Net command (Ctrl-B), also on the RHS toolbar. It may be harder to see on the schematic, the net turns purple, whereas on the PCB all the traces and pads in the net are highlighted. You may have to zoom in to select the net.

  Are you sure? yes | no

agp.cooper wrote 07/16/2019 at 09:32 point

It seems to be a flipped image but ALL of them are the same thus my confusion. I suppose I was wondering how to change the pin numbers in the footprint. to make it right. I could work out how to do it.


I checked the Internet and the problem is:

"KiCad library parts changed to use pin 1 as cathode in line with IPC specs. The ngspice simulator uses pin 1 as anode. You can change the pin order on any symbol for use with ngspice."

So it appears to be a library problem in V5! Wonderful!!!!

Even if I set the library to r/w everyone I still cannot save a footprint edit.
So it is "shit". Maybe V4 works. But this is still "shit".


  Are you sure? yes | no

agp.cooper wrote 07/16/2019 at 10:05 point

I am really really saying that the direction of the diode (graphic) in the schematic is the opposite of the diode graphic in the PCB. And it is wrong for two types I have tried. I have laid it out and routed the PCB but the graphic is wrong in two cases I tried. I just don't know if the footprints are wrong or I am missing something?

  Are you sure? yes | no

Ken Yap wrote 07/16/2019 at 09:50 point

The initial rats nest is just all the components jammed together. You have to decide how to spread the components out. You shouldn't change the pin numbers, especially not for complex parts, those are fixed in the footprint. Rather you reorient the part as needed. I suspect you may be coming from EDA software where the placement on the board bears some relation to the schematic. Not in Kicad.

After you have done the initial placement, if you make changes in the schematic, you use the tool Update PCB from schematic to propagate the changes and don't use the netlist export import again. (In fact it can be imported by Update the first time.)

  Are you sure? yes | no

Ken Yap wrote 07/16/2019 at 10:22 point

Ah, I didn't know you were simulating with ngspice. Or was it because of a mix of v4 and v5 libraries? I think you should chew out the Mint packagers.

There are a few places where the convention seems counterintuitive. Just wait till you see the arguments raging in the forum about Y increasing down the screen. Seems in the next version this will be a user choice.

  Are you sure? yes | no

agp.cooper wrote 07/15/2019 at 12:52 point

Hi Ken,
The link in your page that points to the FreeRouting tutorial is dead.
But really the program is pretty simple to work out.
So now it is just a case of learning how to use KiCAD efficiently.
I think linking in all the libraries was a mistake!

Regards AlanX

  Are you sure? yes | no

Ken Yap wrote 07/15/2019 at 23:46 point

Ah thanks for that. Peter changed his domain recently so has reorganised his material. I have updated the link.

Not sure what you mean by linking in all the libraries. The Kicad symbol and 3D rendering libraries are just seached on demand and don't occupy any RAM, unlike code libraries. The 3D libraries can be quite large, hundreds of MB, but you get nice views you can admire and show off.

  Are you sure? yes | no

agp.cooper wrote 07/16/2019 at 01:16 point

"Link" as in add to the Library Table. I added everything in the library directory which was probably a mistake as I have to wade through the list to find what I want.

Total size of the uncompressed libraries for the latest version was 5.4Gb!
Anyway I have to give credit that I have had no crashes with KiCAD, which is rather amazing!

  Are you sure? yes | no

Ken Yap wrote 07/16/2019 at 01:27 point

Looks like the packages for Mint were poorly organised. I didn't have to set up any tables. The libraries are installed in a standard system location and Kicad finds them when invoked.

When looking for a symbol it helps to know which category it's under and any keywords. You'll find yourself returning repeatedly to stock items like connector, resistor, etc

  Are you sure? yes | no

agp.cooper wrote 07/15/2019 at 12:48 point

The FreeRouting program works well. I just extracted the jar from the deb archive and dropped it in my KiCAD working area.

  Are you sure? yes | no

agp.cooper wrote 07/15/2019 at 04:43 point

Thanks, I was not looking forward to hand routing. I sometimes think I would be better off, I suspect the time difference would not be great. After all you have to position your components to make like easier for the auto-router if you want a result. And it was pretty rare to get a first time result with EasyEDA.

  Are you sure? yes | no

Ken Yap wrote 07/15/2019 at 04:55 point

Kicad has interactive routing features that help. But for a large number of nets I cannot do manual routing. In any case I also have to do component placement for other constraints (location of wires, switches, etc). I usually go through several iterations before arriving at a layout I am happy with, and the time spent running freeRouting is a small fraction. It's fun to sit back for a while and watch the optimiser labour away.

  Are you sure? yes | no

Ken Yap wrote 07/15/2019 at 03:01 point

My distro, openSUSE, was easier. I just did

zypper se kicad

zypper in <everything relevant>

Actually there is another step, I had to add the Electronics repo.

  Are you sure? yes | no

agp.cooper wrote 07/15/2019 at 04:27 point

Mint does not have the libraries. The problem is that I am unfamiliar with KiCAD and having to install missing libraries while I am working out how it works, this "shit". But I dumped EasyEDA so I have not much choice. The other thing is most of the guides are not for Version 5. Even the current documentation does not mention this problem.
Anyway I am tying to workout why the footprints are not working at the moment.
Had a problem with mixed libraries. Sorted now.
Okay, I  finished my first test PCB. No autorouter! Oh well.

  Are you sure? yes | no

Ken Yap wrote 07/15/2019 at 04:33 point

See my page about using freeRouting with Kicad.

  Are you sure? yes | no

agp.cooper wrote 07/15/2019 at 02:54 point

Damn shift-enter! ... Anyway the that last link said you have to download the libraries separately and install them yourself! Now I got the symbols installed but I am still working out how to install the footprints!

  Are you sure? yes | no

agp.cooper wrote 07/15/2019 at 02:42 point

I went to and followed the instruction for the recommended full install (for version 5)
I ran the studio and fired up the schematic editor. After typing in a project name it asked for the where the libraries are? The first option was not available. The other options were useless. Upon following the issued down the hole I found:

  Are you sure? yes | no

Ken Yap wrote 07/15/2019 at 02:16 point

>How can you have a recommended install with no libraries.

Don't know what OS you are running under but when I installed on Linux I took the Kicad library packages as well and all the basics were there and it just worked. For 3rd party libraries, e.g. Digikey, it's fairly simple to import them and keep them up to date with git; there are tutes on the Net.

  Are you sure? yes | no