UNO R4 Wifi not detecting DS3502 chip

This is my first project with anything Arduino, so please forgive me in advance.
I'm trying to setup 2 Adafruit DS3502 10k POTs to use them to convert the inputs from a arcade joystick that uses 4 on/off microswitches into digital signals to mimic an analog signal on a different controller.

I'm running into a wall right away. No matter what I do, I can't get the UNO to detect the DS3502 chip. I've tried using the Qwiic connector and following the guide for the DS3502 has, running the code that is in the guide and from the downloaded libraries, all I get back is

"Adafruit DS3502 Test"
"Couldn't find DS3502 chip"

I saw on a forum that if you are going to use the Qwiic you need to set somewhere for it to use Wire1.

I tried without the Quiic connection, just wiring everything up with a breadboard and jumpers. Same Issue.

I've tried both POT's I have, the LED on the DS3502 lights up everytime, with the Qwiic or with jumpers, but no matter what I can't get the UNO R4 to detect the board. Any help would be greatly appreciated.

I like Adafruit stuff. I presume this is the test code?

DS3502 RW connected to A0 on the Arduino?

yes, ive read over the guide multiple times since i started yesterday, redoing connections and double checking I have everything plugged in right.

That Rx holes at the top are for the pot wipers.
Connect SDA to SDA and SCL to SCL on the Arduino. That is what begin() is checking.

oh my god thank you. I've been dooming about this for the past day. I'm still wondering why I can't get it to work with the Qwiic connector, but as long as it's working now I don't care about some extra wires

Glad I could help. I like digging into the library code.
If you plan on using 2 of those, it gets a bit more complex.

well, now that you mention it, I am trying to do exactly that. I'm not sure how address pins work. I'm completely new to coding and electronics like this.

That is what A0 and A1 are for. This explains the logic and addresses.

Once you do that, you start another instance using begin(0x29) or begin(0x30) with the address you selected with A0 and A1..

You are the man, I've been reading this stuff back and forth all since yesterday not knowing a damn thing, and you're just laying it out simple for me. Thank you.

where would I insert the "begin(0x29)" in the test code? Line 1, Line 14 after "Serial.begin(115200)"?

I know I'm trying to figure this all out in the wrong way and wrong order, but I just have such a hard time sitting down and watching videos for stuff.

This should do it. No guarantee. :wink:

Adafruit_DS3502 ds3502 = Adafruit_DS3502();
Adafruit_DS3502 ds3502B = Adafruit_DS3502();

  if (!ds3502.begin()) {
    Serial.println("Couldn't find DS3502 chip");
    while (1);
  }
  Serial.println("Found DS3502 chip");

  if (!ds3502B.begin(0x29)) {
    Serial.println("Couldn't find #2 DS3502 chip");
    while (1);
  }
  Serial.println("Found #2 DS3502 chip");
}

Thanks again. Now I just have to figure out how to program this with no coding experience. Thank you again, you got me past the first roadblock(s).

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.