- Developing an Open Hardware Device Programmer
Post Stastics
- This post has 591 words.
- Estimated read time is 2.81 minute(s).

Introduction
As an electronics enthusiast with over 50 years of experience, I’ve had the privilege of witnessing the dramatic evolution of computing systems. From the early days of 4 and 8-bit machines with minimal RAM to today’s powerful 64-bit computers with terabytes of storage, the progress has been nothing short of extraordinary. The same transformative journey has occurred in the realm of electronic circuit development tools, particularly in device programmers.
The Evolution of Device Programmers
In the late 1970s, EPROM programmers were complex beasts requiring multiple voltages, including negative ones, and were often limited to programming a narrow range of devices from specific manufacturers. By the 1980s, the standardization of signal and pin assignments for read-only memory devices began to take shape. This standardization paved the way for hobby-grade programmers capable of handling a broader range of devices, such as the 27xxx family of EPROM chips.
Fast forward to today, and we have an even greater variety of memory devices and programming methods. New read-only device types like EEPROMs have emerged, and while JEDEC standards have streamlined memory device pin assignments, microcontrollers (MCUs) present a myriad of programming standards. From parallel data and address signals to SPI interfaces and custom programming protocols, designing a versatile device programmer has become increasingly complex.
The Current Landscape
Among the popular device programmers on the market, the TL866 stands out. It’s notable for having its schematics available, unlike many others. However, newer versions of the TL866 are proprietary, with closed-source software that only runs on Windows. Although there is an open-source project aimed at creating cross-platform software for the TL866, supporting new devices often involves challenging reverse engineering.
My Open-Source/Open Hardware Journey
Inspired by the need for a more adaptable and open solution, I’ve embarked on a project to develop an Open-Source/Open Hardware device programmer. My goal is to create a device that not only matches the quality and ease of use of the TL866 but also surpasses it in terms of extensibility and openness.
Minimum Specifications
Here’s a glimpse of what this device programmer will offer:
- Variable VCC_DUT Output: Adjustable from 0VDC to 10VDC.
- Variable VPP_DUT Output: Adjustable from 0VDC to 30VDC.
- Selectable VLOG_DUT Logic Level Drive: adjustible from 0 to VCC_DUT.
- Pin Control: Each pin of the 48-pin ZIF socket can be driven with GND, VCC, VLOG, or VPP.
- SPI Interface: For future expansion.
- I2C Interfaces: Two I2C interfaces for additional expansion.
- GPIO Pins: Up to 16 general-purpose I/O pins for further customization.
- Power Supply: Operates from a single 5 to 12V DC input.
- Open Hardware and Software: Fully open to ensure transparency and adaptability.
- Firmware Compatibility: Compatible with the MiniPro project firmware, if possible.
- Software and Firmware: Open Source MIT License.
- Device Support: Initial support for 27XXX, 28XXX, AtMega, AT89XX, STM32XXX, and PADAUK families.
- CPU: Utilizes STM32F40XXX, in a 144 or 176 Pin LQFP package.
- Hardware: Uses hand solderable SMT components for optional manual assembly.
- Supported OSs: Linux, MAC, Windows
Given that this device programmer is designed for prototyping, hobbyist, and maker communities, performance speed is not a primary concern. The focus is on flexibility, ease of use, and extensibility.
Looking Ahead
I am excited about the potential of this project and the impact it could have on the electronics hobbyist and maker communities. By developing an open-source and open-hardware device programmer, I hope to contribute a valuable tool that supports a wide range of devices and encourages innovation in electronics design.
Stay tuned for more updates as this project progresses!