QWIIC Joystick issues: 100% NACKs & button always reads zero

Using the Bus Pirate to read the joystick, got it working as long as I use 100 kHz or 50 kHz.

But every transaction results in a NACK, even tho I’m getting good reads:

I2C>[0x40 0x05 [0x41 r]

I2C START BIT

WRITE: 0x40 ACK

WRITE: 0x05 ACK

I2C START BIT

WRITE: 0x41 NACK

READ: 0x3E <= centered

NACK

I2C STOP BIT

I2C>

Any ideas?

Button reads 0 all the time, as does button status, and always with NACK:

I2C>[0x40 0x08 [0x41 r]

I2C START BIT

WRITE: 0x40 ACK

WRITE: 0x08 ACK

I2C START BIT

WRITE: 0x41 NACK

READ: 0x00

NACK

I2C STOP BIT

I have used the Pirate a bit on other things, seems great, but this joystick seems finicky.

Any firmware updates planned?

My version reads 0x0301, purchased three weeks ago.

I believe this is technically outside the scope of our support team, but the issue seems to be in your I2C transaction:

In the read part of the transaction you should be using the slave address followed by a write bit: [slave address (0x40)][write bit = 1]. However, it appears like you are adding a 1 to the 7-bit address, treating it as if it were the 8-bit version [slave address (0x41)][(probably with a) read bit = 0]. That is probably why you are getting that first NACK.