This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BOOSTXL-ADS1219: Driver Errors due to Hardware Setup Error?

Part Number: BOOSTXL-ADS1219
Other Parts Discussed in Thread: ADS1219

Hello there,

I'm trying to port a MicroPython driver to CircuitPython, but am getting the same strange Input/Output error over and over when trying to write to the device over I2C.

The steps required are very straightforward - I've done this many times in CircuitPython, which is why I'm confused.

I'm wondering if somehow I've missed some critical setup on the hardware side.



Here's a basic text-based schematic of how this is all connected:

Adafruit Feather Sense (nrf52840) => send out SDA & SCL, connect VDD (3.3V) and GND => connect to Breadboard

Breadboard => Has two pullup resistors between VDD and I2C (SDA, SCL), send out I2C, VDD, GND => BOOSTXL-ADS1219

(I attach a photo, below)


Wondering if I've missed something that's causing these errors - reasonably sure my code is sound.

Thanks so much!

  • Having been able to send a reset command, I no longer think this is a hardware error, but am extremely confused.

    In pseudocode, here is what I'm doing:

    1) Write 0x80 (WRITE command) and 0x60 (RESET command) over i2c. This works (pseudocode): i2c.writeto(0x80, 0x60)
    2) Try to Write 0x80 (WRITE command) and 0x20 (READ CONFIG REG) command over i2c. This does not work (pseudocode): i2c.writeto(0x80, 0x20)

    Can someone help me understand what I'm missing here?

  • Hi Sean,

    Welcome to the E2E forum! There are a couple of considerations.  First, it appears that you are selecting 5V for AVDD from the picture, but you don't have 5V connected to the LaunchPad.  Here try using 3.3V.

    Second, make sure you are using the correct set of commands.  For example, the RESET command is 0x06 and not 0x60.  Also, to read a config register requires both the command and the read of the data.  This is explained in the ADS1219 datasheet (see Figure 37).  So it appears that you are missing the I2C read (0x81, <read byte>) following the command write (0x80, 0x20).

    Best regards,

    Bob B

  • Hi Bob,

    Thanks so much for the reply. Haven't been able to test this yet, but will get back to you when I have.

    Since writing, I've also found that the XL-ads1219 appears to have two i2c addresses: 0x40 and 0x51. When I unplug the XL- ads, both disappear.

    Any guidance there?

    Thanks again!

  • Hi Bob,

    I've had this working since yesterday - Writing to thank you for your help, and to update the ticket in case anyone else runs into similar issues.

    The issue was indeed the power level jumper (JP2): The default is 5V, but (as you noticed) I'm using 3.3V. Moving the jumper fixed the issue immediately.

    What was puzzling me was that the D2 Led (indicating 3.3V) was lit - this led me to believe I didn't need to adjust the jumper. I'm sure we've both worked with silk screened labels that aren't quite accurate. Not saying anything bad about TI here, but rather to explain my confusion.

    A remaining question is the appearance of I2C address 0x51, which isn't expected. Not critical, but might be worth drilling down on. I'd appreciate any guidance on this.

    All together, I'm extremely grateful for the help; I didn't expect it to be so quick and precisely helpful.

    Thanks again!


    (PS The hex value I typed for the RESET command was a typo - thanks for noticing, hoping it's helpful for others.)

  • Hi Sean,

    There is a user's guide for the the BOOSTXL-1219 (see the link on ti.com at: https://www.ti.com/tool/BOOSTXL-ADS1219 ).  Although the user's guide is targeted for the GUI there is also hardware information as well as the board schematic.  The schematic shows that there are actually two I2C devices.  The first is the ADS1219 and the second is an EEPROM used to identify which device variant is on the board.  The EEPROM is used by the GUI and is not required in normal operation.

    Best regards,

    Bob B