Can anyone explain why, after taking 2 brand new BitsyX boards and performing the exact same OS upgrade on each, one boots correctly and one yields the following errors on the serial debug port? This is the result we get on about 60% of the 400 BitsyX boards we have purchased.
This error message comes from the legacy I2C bus driver under a few possible conditions. The legacy driver was especially non-forgiving if you attempt to communicate with a device address that did not exist on the bus or if a bus error occurred. This could be what you're seeing here. We'd need more detail on exactly what your app is doing at startup with the bus.
After reviewing an email mark sent to Support. I noticed that you are using a managed code application. This brings up a couple important points:
ADS CE 4.2 devices typically contain two I2C bus drivers. One is a legacy driver and is referenced via the port name "IIC1:" the newer driver is referenced via the port name "I2C1:". The new driver has has significant work and testing done on it. The legacy driver has had very little and has only been kept in the builds to prevent breaking existing applications that might be using it. We recommend that all new development use the new driver (I2C1:) instead of the old driver (IIC1:).
The structure of the legacy driver data is not conducive to use with managed code. The structure contains a pointer that the marshaller does not know about, and the result is that the pointer is invalid in the context of the driver's process (device.exe) and working around this limitation is extremely difficult. This was one of the primary reasons we rewrote the driver.
The legacy driver is very picky about the bus and any kind of hiccup or glitch can throw it into a not-so-good state. To make matters worse, it cannot recover from errors - once an error has occurred, a power cycle is usually required to recover the bus.