I just purchased this shield to put on a Arduino Mega. I assumed that the SDA and SCL pins from the Mega would be connected to the four Qwiic connectors on this header board. Unfortunately when I connect the header board on top of the Mega and use a Qwiic connector between my device and the header board, I can’t find the device on the bus.
If I use a Qwiic connector which has male pins on the end, I can connect to the header board 3.3 V, GND, SDA and SCL pins and the board is then found on the I2C bus.
Does this header board connect the Arduino I2C bus to the I2C connectors on the board? I did pull out the continuity checker and looked at the schematic and I can’t tell if they extend the I2C bus or just create a new I2C bus?
Hopefully I have explained what I am seeing well enough. Thank you in advance for any guidance.
OK, so I have taken some pictures. The first two pictures 1A and 1B show that I can use the QWIIC connector on my 3rd party board to link to the Mega. This is working perfectly.
2A shows the QWIIC Shield. I’d like to use this so I can get away from the Male pins and use a QWIIC jumper for a solid connection. So I’d like to put this shield board on top of the Mega, which I assumed would extend the SDA/SCL bus via the headers from the Mega on to the QWIIC ports on the shield board.
So in test case one, I attach the shield and using the QWIIC to Male Pins, I can just move the connectors to the shield header and all is good. No pictures as I can only attach 3 images.
In test case two, I assume that the 4 QWIIC ports on the shield are connected to the Mega via the header. If I try to connect my third party device to the shield using two QWIIC ports with the shield on the Mega, it looks like the 4 ports on the side of the shield are NOT connected to the Mega SDA/SCL bus. No pictures here. I tried a continuity test from the SDA/SCL header pins on the shield to the QWIIC and looking at the board, they look like they are not connected.
Now I have gotten a Sparkfun SerLCD panel with a QWIIC connector for simple testing, assuming your QWIIC implementations would be standard and just to avoid the third party QWIIC connector. I have not done any testing yet, but that is an option for the future.
Hopefully this starts to make a little more sense as to what I was expecting.
Thanks. There are a number of thoughts that come to mind which could cause this:
The shield is not placed correctly on the Mega. Although I have the feeling you know what you are doing, we can’t rule it out 100%. (maybe a picture ??)
The shield is placed correctly, but does not connect correctly.
There is a short circuit on the pins soldering on the shield
The SDA and SCL lines have a level converter on the shield. They convert between the 3v3 and 5V and maybe your device does not like that. I have had that before with other devices and converters that use the same circuit. A converter on the device connected to a converter like on the shield caused an issue at that time.
The shield is defective somewhere.
The Qwicc cable is defective.
To test:
Put the shield on the Mega.
Connect the Qwiic male pins to exactly the same place as you would without the shield on top.
Now test if the device still works: If that works we can rule out thoughts 1 and 2
Check for the 5V and 3v3 to be correct while the shield is on top: if that works we can rule out thought 3.
To rule out thoughts 4, 5 or 6: connect your serial LCD and see what happens. If it works it is caused by thought 4. Else thoughts 4, 5 or 6 are still valid. You will need a logic analyzer of scope to determine the real root cause.
I was trying to find which device you have and thus maybe the schematics, but was not able to.
So picture “1” shows the shield mounted on the Mega. It is hard to mess that up. And if I connect to the headers on the shield, the i2c bus works fine and recognizes my 3rd board for communication.
In picture 2, I have the shield on the Mega and I connect one of the 4 QWIIC ports on it to the QWIIC on the ArduSimple simpleRTK2B GPS board. I2c communications fail. Like nothing is connected to the Mega i2c.
So in picture 3, I decided to use my male connector - to QWIIC connector and jump the SDA/SCL to the 4 port QWIIC on the shield. When I connected this up, everything on the i2c is working again.
I still feel the the SDA/SCL ports on the shield header are in no way connected to the SDA/SCL pins on the four ports on the shield. I can trace the GND and 3.3V back to the headers, but I can’t trace the QWIIC SDA/SCL pins back to the header. It is like they are just hanging there not connected……
So at least I get the sense that what I assumed to be a shield to extend the I2C bus to the 4 QWIIC connectors was what should have happened. However, for at least this board, that is not how it looks to be.
I did order this directly from Sparkfun so this did come out of your inventory. I just wanted you to know that I didn’t pick this up from a 3rd party.
I think the problem is that your device and the onboard level converters do not work together.
What you did with “So in picture 3, I decided to use my male connector - to QWIIC connector and jump the SDA/SCL to the 4 port QWIIC on the shield. When I connected this up, everything on the i2c is working again.” is by-passing the converters. These are made up of 2 little transistors and 4 resistors on the side of the board.
Options :
It could still be that the converters/shield has a problem and you can try to get it replaced.
Else if you really need to use multiple QWIIC ports couple of options:
A. Take a number of “QWICC to pins” wires and solder the pin-sides together
B. Make modifications to the QWICC shield,by removing the resistors and transistors. Then connect a wire to the previous resistors’ right-hand side as shown in the attached picture. The yellow wire is for SCL the blue is SDA
Personally, I would consider the options in the order listed above. Of course, with option 2B you lose all warranties and are on your own, BUT it is an option
P.s. Looking at the simpleRTK2B V3 board specifications, you do not need to connect the 3v3 wire from QWICC as that is not used to power the board
just a thought to add. In the hookup guide (https://www.ardusimple.com/simplertk2b-v3-hookup-guide/) there is a remark about IOREF. Maybe your device is providing output on 5V level instead of 3V3 and thus they maybe not work. The converters on the QWICC shield expect 3V3. From the same webpage :
If you want to connect wires to the listed pins and 3.3V is OK for you, you just need to enable the switch “IOREF=3.3V”
I went for some easier testing. The SparkFun Display should be compatible with the SparkFun I2C QWIIC Shield. Seems simple.
First, I direct connected the IC2 from the Mega to the display. Works like a champ with the demo code from GitHub. See picture 1.
Second, I moved the display to the IC2 connectors on the board. I only get the LCD power lights and the Arduino test code does not find and run the display. This is picture 2.
Third, I have sent you a picture of the shield to see the trace’s there. This is picture 3. So is the board the issue. This is as simple as I can get.
For my project, I really need the program space the Mega has so I can’t go back to the base Arduino Uno.
Let me know your thoughts. Your help is greatly appreciated.
Don’t know if this has changed but the last time I played with this shield the i2c pins were on a4 and a5 so it worked on an uno but not a mega. You might need to run jumpers from the uno i2c pins over to the mega pins.