I’m adding an Arduino Nano as an I2C co-processor on my EZ-Robot Six Hexapod to offload a couple of distance sensors and some gait math. The Nano is wired to the EZ-B v4’s I2C header (SDA/SCL), common ground, and I’m powering the Nano from a separate 5V buck with ground tied to the EZ-B. I added the ArduinoComs robot skill in ARC, set the slave address to 0x08 (per the Help tab), and tried simple read/write tests. The ARC I2C scanner sees a device at 0x08 reliably, but ArduinoComs never shows valid data and my Arduino onReceive handler never fires; onRequest fires only occasionally. Here’s the minimal sketch I’m using:
#include <Wire.h>
volatile byte lastCmd = 0;
void receiveEvent(int howMany){ while (Wire.available()) lastCmd = Wire.read(); }
void requestEvent(){ Wire.write(lastCmd + 1); }
void setup(){ Serial.begin(115200); Wire.begin(0x08); Wire.onReceive(receiveEvent); Wire.onRequest(requestEvent); Serial.println("I2C slave ready"); }
void loop(){}
What I’ve tried: external 4.7k pull-ups on SDA/SCL, rerouting wires away from servo leads, bench testing with Six’s legs supported (low servo load), separate Arduino power, and swapping Nanos. Same behavior. A logic probe shows start/stop and ACKs during the ARC scanner sweep, but when I attempt a write/read from ArduinoComs, I see a write followed by a repeated start and a read without my onReceive triggering.
Does ArduinoComs use 7-bit or 8-bit addressing and does it expect a register byte framing before reads, plus what I2C clock speed does the EZ-B v4 master use and could someone share a known-working Arduino sketch and the exact ArduinoComs settings for a simple echo test on a Six?

I'd say don't use arduinocomms at all. it hasn't been maintained in several years and to be frank, i don't really know what it's purpose was at the start
. But i'd use just the regular UART script commands. Having the arduino act as a way to obtain distance sensors values is smart because the ezb delays when reading, so it slows things down a bit.
just make a protocol where there's a start bit, a bunch of distance values, and a parity bit.
You’re right to question ArduinoComs here - the proven approach in ARC is to avoid that skill unless you absolutely need it.
Short answer
Why your current sketch is likely failing
Your sketch:
This is fine for a basic slave echo test, but if ARC/ArduinoComs is doing a write followed immediately by a read, then:
onReceive()may get only a command byteonRequest()must already have the next response preparedAlso, on the Arduino Nano, I2C slaves are 7-bit addressed.
So
0x08is correct as a 7-bit slave address.Important ARC note
The EZ-B v4 I2C master typically uses the standard I2C bus behavior and the default ARC I2C timing is generally 100 kHz unless changed in the connection settings. That’s the first thing I’d standardize on for troubleshooting.
Recommended path: use a simple custom I2C protocol
Instead of ArduinoComs, do this:
That is much more robust than relying on ArduinoComs behavior.
Known-good Arduino slave example
Here’s a simple I2C slave that supports:
start,value,checksumARC side approach
In ARC, instead of ArduinoComs, use scripting with the normal I2C methods.
Example JavaScript:
If you want to validate the checksum:
Settings to verify in ARC
In the EZB Connection skill for the EZ-B v4:
You can adjust these in the skill’s kebab menu if needed.
Why I’d avoid UART for this specific use case
UART is great for logging and debugging, but since you’re already wired for I2C and need multiple sensor values on a shared bus, I2C is still a valid choice - just with a clean protocol.
Best practice for Six
For a hexapod, don’t use the co-processor to "control gait math" unless you have a strong reason. In ARC, it’s usually better to:
That keeps the project easier to debug and maintain.
Questions so I can point you to the right setup
Are you trying to use the Nano mainly for:
In ARC, are you reading from the Nano using ArduinoComs only, or have you tried the built-in I2C commands in a script?
What exact sensor(s) are connected to the Nano?
If you want, I can give you a complete ARC JavaScript master script + Nano sketch pair for a reliable echo/read test on Six.