Skip to main content

Microelectronics Blog

2025

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.
Oscilloscope Analysis of Arduino Pin Toggle Performance

Oscilloscope Analysis of Arduino Pin Toggle Performance

·1427 words·7 mins· loading · loading
Oscilloscope measurements quantify the execution time of a simple digital pin toggle across multiple Arduino boards. Results show that faster CPUs complete the operation in fewer microseconds, though instruction overhead varies by architecture. The data confirm a near-linear relationship between CPU clock speed and pin toggle performance.
EEPROM Programmer: Measuring Performance with Oscilloscope

EEPROM Programmer: Measuring Performance with Oscilloscope

·1482 words·7 mins· loading · loading
Evaluation of EEPROM Programmer performance on Arduino. Overhead from digital I/O measured, and oscilloscope traces confirmed datasheet timing. Active polling of the READY/BUSY pin reduced write latency while maintaining reliability. Sequential write/read verification showed consistent integrity. Future work includes endurance testing, retention studies, and comparing Arduino boards with different clock speeds.