The ProtoCentral easyISO is a small adapter that galvanically isolates a Qwiic / STEMMA QT I²C link, both the data lines and the power. Your host plugs into one side and your sensor into the other. The sensor then has no electrical path to your computer’s ground, while your code, library and I²C address stay exactly as they were. This guide covers why you would want that, how to wire the board, how to check that it works, and the few ways isolation can be accidentally defeated.
Development tool — not a medical isolation barrier. easyISO is intended for evaluation, education and research. The voltage ratings below are the manufacturers’ ratings for the individual components, not a board-level safety certification. Do not use it as the patient-protection barrier in a device connected to a person who is also connected to mains-powered equipment.
Introduction
When a laptop is running on its charger, a small mains-frequency leakage current is coupled onto its USB ground. With a sensor that touches the body (ECG, EMG or GSR/EDA electrodes, for example), that current has a path through the person and shows up in the signal as 50/60 Hz hum, baseline wander, or a front end pushed into saturation. The usual workaround is to unplug the laptop and run from battery. easyISO lets you stay plugged in.
It does this with two parts that bridge the gap between the two halves of the board without any wire crossing it:
- Data: a Texas Instruments ISO1640 hot-swappable I²C isolator carries SDA and SCL bidirectionally across a silicon-dioxide capacitive barrier, at up to 1.7 MHz.
- Power: an MPS MIE1W0505BGLVH isolated DC-DC module generates a separate 3.3 V supply for the sensor side from the host’s supply.
Because the isolator is transparent to I²C, the host sees your sensor at its normal address. No library changes and no driver are needed.
Key Features
- Isolated I²C and isolated power in one adapter. The sensor side needs no separate supply.
- TI ISO1640 I²C isolator. Bidirectional SDA and SCL, hot-swappable, up to 1.7 MHz.
- Isolated 3.3 V rail for the connected sensor, up to about 75 mA.
- Qwiic / STEMMA QT connector plus a 0.1″ 4-pin header on each side.
- 10 kΩ I²C pull-ups on both sides, so the bus works with no external resistors.
- Compact 33 × 18.7 mm board with four M2 mounting holes.
- Open hardware (CERN-OHL-P v2).
What’s in the Box
| Qty | Item |
|---|---|
| 1 | ProtoCentral easyISO isolated Qwiic adapter |
Qwiic cables and sensors are not included.
Specifications
| Parameter | Value |
|---|---|
| I²C isolator | TI ISO1640BD (8-pin SOIC) |
| Isolator rating (component) | 3000 VRMS for 60 s per UL 1577; 450 VRMS working voltage; basic insulation |
| Isolated DC-DC | MPS MIE1W0505BGLVH, rated 2.5 kVRMS (component rating) |
| I²C speed | Up to 1.7 MHz (Standard-mode, Fast-mode and Fast-mode Plus) |
| Host side (IN) supply | 3.3 V from the Qwiic port |
| Isolated side (OUT) supply | 3.3 V output, up to about 75 mA |
| I²C pull-ups | 10 kΩ on SDA and SCL, on each side |
| Connectors | 2 × Qwiic / STEMMA QT (one per side), 2 × 0.1″ 4-pin header (one per side) |
| Board | 33 × 18.7 mm, 2-layer, 4 × M2 mounting holes |
Hardware Overview
The board is split down the middle by the isolation gap, the slot you can see between the two halves.
- IN (left side, top view) is the host side. It connects to your Arduino, ESP32, Raspberry Pi or other microcontroller, and it powers the whole board.
- OUT (right side, top view) is the isolated side. It connects to your sensor and supplies it with the isolated 3.3 V rail.
The direction matters: power only flows from IN to OUT. A host plugged into the OUT side will not power the board.
Header pinout
Each side has a 4-pin 0.1″ header. The pin labels are printed on the back of the board, and pin 1 (SCL) has the square pad.
| Pin | IN header (host side) | OUT header (isolated side) |
|---|---|---|
| 1 (square pad) | SCL | SCL (isolated) |
| 2 | SDA | SDA (isolated) |
| 3 | VCC — host 3.3 V in | VCC — isolated 3.3 V out |
| 4 | GND — host ground | GND — isolated ground |
The two GND pins are not connected to each other. That separation is the whole point of the board.
The Qwiic connectors carry the same four signals as the header on the same side, so you can use either one, or the header on one side and Qwiic on the other.
Wiring
Option 1 — Qwiic (recommended, solder-free)
- Connect a Qwiic cable from your microcontroller’s Qwiic / STEMMA QT port to the IN port on easyISO.
- Connect a second Qwiic cable from the OUT port to your sensor.
That’s all. The sensor is powered from the isolated 3.3 V rail, and its I²C lines pass through the isolator.
Option 2 — 0.1″ header to a breadboard
Solder a 4-pin header to the IN side and wire it to your microcontroller:
| easyISO IN pin | Arduino (3.3 V board) | ESP32 (default I²C) | Raspberry Pi |
|---|---|---|---|
| VCC | 3.3V | 3.3V | 3V3 (pin 1) |
| GND | GND | GND | GND (pin 6) |
| SDA | SDA | GPIO21 | GPIO2 / SDA (pin 3) |
| SCL | SCL | GPIO22 | GPIO3 / SCL (pin 5) |
Then connect your sensor to the OUT side, either through the OUT Qwiic port or through the OUT header (VCC, GND, SDA, SCL).
Supply voltage: feed the IN side 3.3 V, which is what every Qwiic port provides. The host-side I²C pull-ups go to this supply, so the host’s I²C logic level is 3.3 V too.
More than one sensor on the isolated side
There is one Qwiic port on each side. To run several sensors through one easyISO, connect them to the OUT port in a chain (most Qwiic boards have two ports), or through a Qwiic hub. The I²C bus is shared, so each sensor needs its own address.
Keep the total current of everything on the OUT side within the isolated rail’s budget of about 75 mA. Most I²C sensors draw a few milliamps, but boards with LEDs, heaters or radios can draw much more.
Checking that it works — I²C scanner
easyISO needs no library. The quickest test is an I²C scanner: if the sensor’s address shows up through the adapter, both the isolated power and the isolated data path are working.
Connect your host to IN and any Qwiic sensor to OUT, then upload this sketch:
#include <Wire.h>
void setup() {
Serial.begin(115200);
while (!Serial && millis() < 3000);
Wire.begin();
Serial.println(F("I2C scan through easyISO"));
}
void loop() {
uint8_t found = 0;
for (uint8_t addr = 1; addr < 127; addr++) {
Wire.beginTransmission(addr);
if (Wire.endTransmission() == 0) {
Serial.print(F("Device found at 0x"));
if (addr < 16) Serial.print('0');
Serial.println(addr, HEX);
found++;
}
}
if (found == 0) Serial.println(F("No I2C devices found"));
Serial.println();
delay(2000);
}
Open the Serial Monitor at 115200 baud. You should see your sensor’s address, the same address it reports when connected directly to the host. Then run the sensor’s own example sketch unchanged.
Keeping the isolation intact
easyISO only isolates the path that goes through it. Any other connection between the sensor side and the host side bypasses the barrier. Watch for these:
- A second power source on the sensor side. Don’t also power the sensor board from USB, or from a supply that shares ground with the host. Let easyISO’s OUT rail power it.
- Test equipment. An oscilloscope probe ground clipped to the OUT side ties it to mains earth through the scope.
- Shared wiring. Any extra wire between the two sides (an interrupt line, a shared ground, a shield) connects the grounds again.
- The person. If the person wearing the electrodes is also touching the host’s metal enclosure, USB shell or anything else grounded to the host, the current has another path.
Limitations
- I²C only. easyISO carries SDA and SCL. It does not isolate SPI, UART, or interrupt / data-ready lines, so SPI boards such as the ProtoCentral ADS1292R, ADS1293 and ADS1262 breakouts cannot run through it.
- Isolated power budget is about 75 mA at 3.3 V.
- Component ratings only. The ISO1640 and MIE1W0505BGLVH ratings describe those parts. The board as a whole has not been tested or certified to any isolation or medical-safety standard.
Troubleshooting
| Symptom | Likely cause | What to try |
|---|---|---|
| Scanner finds no devices | Host and sensor plugged into the wrong sides | The host must be on IN. Power only flows from IN to OUT. |
| Scanner finds no devices | Loose or damaged Qwiic cable | Reseat both cables; try the sensor directly on the host to confirm the cable and sensor are good. |
| Sensor resets or reads erratically | Isolated side drawing too much current | Add up the current of everything on OUT and keep it under about 75 mA. |
| Hum is still present | Isolation bypassed somewhere | Check the list under Keeping the isolation intact above. |
| Errors at high bus speeds | Long cables or many devices on the bus | Drop to 100 kHz or 400 kHz with Wire.setClock() and shorten the cables. |
Where next
- Product page: ProtoCentral easyISO — Isolated Qwiic Adapter
- Isolator datasheet: TI ISO1640
- Schematic and KiCad design files: schematic (PDF) · hardware repo on GitHub
- A sensor to try it with: the ProtoCentral tinyGSR v3, a Qwiic GSR/EDA board that benefits directly from an isolated link.

