Skip to main content
I2C EEPROM programming setup with Aardvark adapter and development board

I2C EEPROM Batch Programming with the Aardvark Adapter

GSAS Engineering · · 2 min read

Programming I2C EEPROMs is one of the most common tasks for the Aardvark I2C/SPI Host Adapter. While Control Center Serial Software provides an interactive GUI for single read/write operations, its XML Batch Mode enables scripted, repeatable programming sequences that are essential for production workflows. This guide walks through programming an AT24C02 I2C EEPROM using batch mode.

Hardware Setup

The AT24C02 is a 256-byte (2 Kbit) I2C EEPROM with 8-byte page write capability. It is the EEPROM included on the I2C/SPI Activity Board.

Connections

Aardvark PinSignalAT24C02 Pin
Pin 4SCLSCL (clock)
Pin 6SDASDA (data)
Pin 9GNDGND, A0, A1, A2, WP
Pin 10VCCVCC (3.3V)

The AT24C02’s address pins (A0, A1, A2) are tied to ground, setting the device’s I2C address to 0x50 (binary 1010000). The Write Protect (WP) pin is also grounded to enable write operations.

Control Center Configuration

Open Control Center Serial Software and configure the Aardvark:

1. Enable I2C: check the I2C checkbox in the adapter configuration.
2. Enable pullups: the Activity Board has on-board pullup resistors, but enabling the Aardvark’s internal pullups provides additional bus drive capability.
3. Enable target power: supplies 3.3V from the Aardvark to the Activity Board.
4. Set bitrate: 100 kHz is a safe starting point for EEPROM operations.

Writing with XML Batch Mode

Control Center’s Batch Mode executes a sequence of I2C/SPI commands defined in an XML file. For EEPROM programming, the XML script contains a series of I2C write commands, one per byte or page.

Batch Configuration

The XML batch script begins with an adapter configuration block:

```

```

Page Write Operation

Each write command sends a memory address byte followed by the data byte to the EEPROM’s I2C address:

```
00 AA
```

This writes the value 0xAA to EEPROM address 0x00. The first byte (0x00) is the word address inside the EEPROM; the second byte (0xAA) is the data.

To program the entire 256-byte EEPROM, the batch script contains 256 write commands, one per address. A 5 ms delay between writes ensures the EEPROM’s internal write cycle completes:

```
00 00

01 01


FF FF
```

This writes address 0x00 = 0x00, address 0x01 = 0x01, through address 0xFF = 0xFF, filling the EEPROM with its own address values for easy verification.

Sequential Read Operation

Reading back the EEPROM uses a two-step I2C sequence:

1. Set the address pointer: write the starting address to the EEPROM without sending a STOP condition.
2. Read the data: perform a read operation that retrieves bytes sequentially from the current address pointer.

In batch XML:

```
00

```

The `nostop=“1”` parameter on the write command generates an I2C Repeated Start instead of a Stop + Start sequence, which is required by most I2C EEPROMs for the “Set Address then Read” operation. The subsequent 256-byte read retrieves the entire EEPROM contents starting from address 0x00.

Verifying the Data

Compare the read-back data against the expected pattern. If you programmed address = data (0x00 at 0x00, 0x01 at 0x01, etc.), the read-back should produce an ascending sequence from 0x00 to 0xFF.

Moving to Production

For production programming workflows, the same operations can be automated through the Aardvark API in Python, C, or LabVIEW, reading firmware images from files and programming them into EEPROMs with pass/fail logging and serial number traceability. Flash Center Software also provides a GUI-based alternative that handles the entire read/program/verify cycle without writing any code.

GSAS Micro Systems provides the Aardvark alongside the I2C/SPI Activity Board for I2C EEPROM programming workshops and production test integration support across India.

Interested in Total Phase tools?

Talk to our application engineers for personalized tool recommendations.

Stay in the Loop

Get monthly compliance updates, product insights, and engineering best practices delivered to your inbox.

Related Articles

Master and slave roles on a 100BASE-T1 link: the master PHY times its transmitter from a local clock, the slave recovers the clock from the received signal, with the both-master and both-slave misconfigurations that leave the link down, from GSAS Micro Systems India
Automotive Ethernet Automotive & Mobility

100BASE-T1 Link Won't Come Up: A Vendor-Neutral Checklist

A 100BASE-T1 link that will not come up is almost never a mystery, but the answers on the web are written per silicon vendor and do not transfer. This is the ordered bring-up checklist that holds regardless of which PHY, switch or SoC you have: physical layer first, then the PHY over MDIO, then the master and slave pairing, then the causes of a link that comes up and drops. The standards and tooling claims trace to IEEE 802.3 task force records, the Linux ethtool and kernel documentation or published test material. Written by the GSAS Micro Systems engineering team in India.

29 Aug 2026 · 14 min read
Storage sizing ladder for automotive data logging: four rungs stepping from an aggregate link rate of 1 Gbit/s to 125 MB per second, then 450 GB per hour, then 3.6 TB per eight-hour shift, then 18 TB per five-day week, in decimal units, from GSAS Micro Systems India
Automotive Ethernet Automotive & Mobility

Automotive Data Loggers: Capture Without Loss

Search for an automotive data logger and the results split into cheap OBD dongles at one end and enterprise ADAS recorders at the other, with nothing in between explaining the engineering that decides whether you lose frames. This is the loss budget end to end: mirror oversubscription upstream of the logger, encapsulation overhead on the capture path, sustained write rate against burst rate, rotation stalls, and storage arithmetic worked in full so you can redo it with your own numbers instead of trusting ours. Written by the GSAS Micro Systems engineering team in India.

29 Aug 2026 · 13 min read
DoIP handshake sequence between tester and DoIP entity: vehicle identification, TCP connect, routing activation request and the accept-or-reject response code with its denial causes, then diagnostic messages, from GSAS Micro Systems India
Automotive Ethernet Automotive & Mobility

DoIP Routing Activation Failures: The Response Code Table

A DoIP routing activation denial is one byte, and that byte names the cause exactly. This article puts every published response code in one table, cross-checked across the AUTOSAR Classic Platform DoIP specification, the Wireshark dissector and two open-source client libraries, then gives the order a DoIP entity applies its checks so you can read a denial backwards to the configuration value that produced it. Written by the GSAS Micro Systems engineering team in India for diagnostics and validation benches in Bengaluru, Pune, Chennai and Hyderabad.

29 Aug 2026 · 13 min read