Slashdot Mirror


Open Flash/EEPROM/EPROM Writers?

Karim Yaghmour asks: "Flash/EEPROM programmers tend to be expensive (especially if you want support for many devices). I am trying to find a Flash/EEPROM programmer for which the schematics and software are available in Open Source form on the web. The projects I have found are rather basic and do not provide support for a wide range of memory devices. Does anyone have any recommendations? Is anyone working on such an Open Source project? Something like the Bitscope project (an 'Open Source' Oscilloscope) mentioned earlier on Slashdot, but for device programmers. If not, is anyone interested in starting such a project?"

2 of 12 comments (clear)

  1. Re:Have you bothered to actually look? by jcwren · · Score: 5, Informative

    If you look closely, the key phrase was "support a wide variety of devices". There are a number of projects that will support a small class, maybe 15 or 20 different devices. Finding a programmer implementation that can support something like the range of a Needham, Data I/O or BP Micro is completely different.

    There are two problems. One is that the hardware tends not to be cheap because of pin driver issues. To support a wide range of devices, you need a high pin driver count, and each pin driver needs to be capable of supporting at a minimum 3.3 volts, 5 volts, and 12 volts. And that won't handle the more esoteric 2.7 volt parts. In addition to supporting voltage, a *good* programmer needs to be able to measure current on each pin, so that if a part being programmed is inserted incorrectly that can be detected, along with able to detect general part faults.

    Now you get to the software issue. Many parts don't have their programming algorithms well documented. Even programmer manufacturers that get their data straight from the device manufacturer sometimes have problems in their algorithms. And the part manufacturers aren't well known for providing timely support to the little guys. They'd rather hand the documentation over to BP Micro and Data I/O instead of the small guys. I know this from having talked to the engineers at Needhams several times.

    By the time you've built your own hardware, it would have been cheaper to just drop $500 for a Needham, Tribal, or other low-end programmer that's capable of support several thousand parts.

    Now, if you want to make an impact, here's my theory. I once wrote an open letter to the top 7 programmer manufacturers. I suggested that instead of proprietary software for the programmers, they keep their low-level algorithms private, and expose a common interface, so that a 3rd party company could write an application that would be consistent across all programmers.

    I've used BP Micros quite a bit, and generally like their interface, especially when compared to any of the others. Not perfect, but good. Needhams makes a nicely priced programmer, but their DOS software is an eyesore, and the macro capability is a complete joke. Data I/O programs every part under the sun, but has an interface so horrid that flies die in mid-air over the programmer. My general complaint was they all did everything differently. I'd rather be able to whip out my customized interface on any programmer I walk up to. Kind of like bringing your own copy of .bashrc where ever you go.

    So why focus on developing programming algorithms, and instead, let XYZ Corp or the OSS groups write the nice user interface that runs under Windows, *nix, or Macs? Then you get a quality programming algorithm, the cost should be able to go down slightly because the company isn't focussing on user-interface issues, and we get a usable interface. Naturally, I never got a reply.

    --jcwren

  2. Serial devices only by cyr · · Score: 2, Informative

    Most projects only support serial devices such as PIC/AVR microcontrollers, serial EEPROMs etc. Supporting parallell devices means a lot more hardware (more pin drivers).

    The best way (IMHO) to do a truly universal programmer would be to have a intelligent base unit (powered by say a PIC16F87x, plus maybe some SRAM or EEPROM storage) with a couple of variable voltage outputs (Vdd and Vpp) and a number of simple tri-state I/Os.

    For each family of devices you then create a cheap addon module, with the right type of socket(s) and drivers for pins that need it.