Skip to main content

Microelectronics Blog

2026

DAC SPI: Wiring of AD1860

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

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

EEPROM Programmer: Supported Chips

·1869 words·9 mins· loading · loading
An Arduino-based EEPROM Programmer supporting AT28C devices is evaluated, highlighting wiring, performance, and hardware constraints. Advanced features like RDY/BUSY polling and page-write mode enable major speedups on DUE but are not viable on MEGA.
EEPROM Programmer: Data Corruption on Arduino Serial Connection Reset

EEPROM Programmer: Data Corruption on Arduino Serial Connection Reset

·1097 words·6 mins· loading · loading
When an Arduino establishes a serial connection, it triggers a board reset that produces transient voltage spikes on the EEPROM pins. These fluctuations can reach up to 2 V, enough to toggle the !WE pin and initiate unintended write operations. As a result, data corruption occurs unless the !WE pin is connected to VCC during read mode to disable writing.
EEPROM Programmer: Implementing Serial JSON-RPC API

EEPROM Programmer: Implementing Serial JSON-RPC API

·947 words·5 mins· loading · loading
Describes the design and implementation of a JSON-RPC–based API for an Arduino EEPROM programmer, focusing on clean separation between protocol handling and application logic. Details the interaction between the Arduino firmware and the Python CLI used for control and data transfer. Concludes with validation against the XGecu reference programmer to ensure identical read and write behavior.
Project: Serial JSON-RPC for Arduino

Project: Serial JSON-RPC for Arduino

·967 words·5 mins· loading · loading
Examines the challenges of implementing data transfer over Arduino Serial, focusing on the trade-offs between raw communication and JSON-RPC. Highlights how memory limits, encoding overhead, and debugging requirements shape protocol design. Demonstrates that encapsulating JSON-RPC logic in a reusable library simplifies development and improves maintainability despite higher resource costs.
How to Debug Misconfigured Arduino Pins

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.
EEPROM Programmer: Debugging Read Operations

EEPROM Programmer: Debugging Read Operations

·2485 words·12 mins· loading · loading
The EEPROM Programmer initially returned corrupted data. I tested wiring, bit ordering, and bus isolation, suspecting noise on the data lines. Oscilloscope traces suggested interference, but the root cause was software, several Arduino address pins were never initialized. These floating pins produced unstable signals that mimicked noise. After proper initialization, the API produced stable results identical to a reference programmer.