Skip to main content

Microelectronics Blog

2026

EEPROM Programmer: Migrating from JSON-RPC to Binary Protocol

2022 words·10 mins· loading · loading
The EEPROM Programmer’s serial protocol was migrated from JSON-RPC (with ArduinoJson dependency) to a lightweight binary protocol. On Arduino DUE + AT28C64: reads are 4.4x faster (6.96s to 1.58s), full write cycles are 2.7x faster (33.74s to 12.70s), and flash usage dropped 31% (16KB saved). The protocol uses length-prefixed frames with CRC-16/CCITT integrity checking, a state machine receiver on the firmware side, and blocking serial reads on the Python side. ArduinoJson — the only external firmware dependency — was eliminated entirely.

DAC SPI: Wiring of AD1860

703 words·4 mins· loading · loading
The AD1860 DAC IC is correctly wired and produces a valid analog output. A reference schematic from the early 1990s is used to identify non-critical components, and a full-scale sawtooth waveform (±3 V) is generated on one channel using an Arduino. The hardware setup functions as expected; the remaining task is implementing a correct SPI interface capable of handling 18-bit transfers.

DAC SPI: How to Make a Positive/Negative Power Supply

978 words·5 mins· loading · loading
Several methods for generating ±5 V rails were evaluated, ranging from dual wall warts to regulator-based and buck-boost solutions, with stability, noise, and grounding complexity as the main trade-offs. The most practical approach for the DAC setup proved to be regulator-based supplies, while more complex configurations offered little benefit and higher power consumption.

2025

EEPROM Programmer: Supported Chips

1869 words·9 mins· loading · loading
The EEPROM Programmer now supports all available AT28C family chips: AT28C04, AT28C16, AT28C64, and AT28C256. Chip-specific features like RDY/BUSY polling and page-write mode enable major speedups on Arduino DUE but are not viable on MEGA. Performance measurements and wiring details are provided for each chip.

EEPROM Programmer: Implementing Serial JSON-RPC API

949 words·5 mins· loading · loading
A JSON-RPC API is implemented for the Arduino EEPROM programmer, with clean separation between protocol handling and application logic. The Arduino firmware exposes basic read/write primitives, while a Python CLI handles the business logic. Validation against the XGecu reference programmer confirms identical read and write behavior.

Project: Serial JSON-RPC for Arduino

970 words·5 mins· loading · loading
A reusable JSON-RPC library for Arduino Serial communication. Memory limits, encoding overhead, and debugging requirements shape the protocol design. Encapsulating JSON-RPC logic in a library simplifies development and improves maintainability despite higher resource costs.

How to Debug Misconfigured Arduino Pins

2011 words·10 mins· loading · loading
Misconfigured or uninitialized Arduino pins generate unstable voltage levels that vary with frequency and signal state. During board reset, all pins enter a floating state, producing undefined signals that can affect connected devices. This can lead to data corruption or unpredictable behavior in chips such as EEPROMs or DACs.