AMG8833 Breakout Board Not Working

Breakout boards, sensors, Drawdio, Game of Life, other Adafruit kits, etc.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
sastorer
 
Posts: 5
Joined: Tue Nov 24, 2020 1:38 am

AMG8833 Breakout Board Not Working

Post by sastorer »

I ordered 2 AMG8833 breakout boards and connected them according to the Fritzing diagram on the tutorial. Upon uploading the thermistor test to my Arduino Uno WiFi V2 I got a lot of very negative numbers. However the numbers were not stuck at 0xFF, 0xFF (same as -127.94 deg C) as they were changing and holding pretty steady at -118/-119. This means things are wired correctly and something more sinister is happening. Upon further inspection into the registers and the documentation I've come to the conclusion that at the very least the 0x0F (Sign and upper 3 bits of the thermistor value) register on the board is broken and 0x0E (Lower 8 bits of the thermistor value) register is not reliable.

See attached image for relevant documentation to the thermistor registers on the AMG8833.

Here are some sample values with I2C_DEBUG defined in the library:
(This output lists the contents of the 0x0E register and the 0x0F register then the calculated value after converting the relevant 12 bits to a signed float and multiplying by the constant given in the documentation)

Thermistor Temperature = [$E, $F] -> 0x7F, 0xFF,
-119.94 *C
Thermistor Temperature = [$E, $F] -> 0xFF, 0xFF,
-127.94 *C
Thermistor Temperature = [$E, $F] -> 0x7F, 0xFF,
-119.94 *C
Thermistor Temperature = [$E, $F] -> 0xFF, 0xFF,
-127.94 *C
Thermistor Temperature = [$E, $F] -> 0x56, 0x1F,
-117.37 *C
Thermistor Temperature = [$E, $F] -> 0x3F, 0xFF,
-115.94 *C
Thermistor Temperature = [$E, $F] -> 0x57, 0xFF,
-117.44 *C
Thermistor Temperature = [$E, $F] -> 0x57, 0xFF,
-117.44 *C
Thermistor Temperature = [$E, $F] -> 0x5F, 0xFF,
-117.94 *C
Thermistor Temperature = [$E, $F] -> 0x55, 0xFF,
-117.31 *C
Thermistor Temperature = [$E, $F] -> 0x57, 0xFF,
-117.44 *C

Notice how the 0x0F register is almost always 0xFF. This implies that my room is very negative as the 0x0F register handles the sign and the top 3 bits.

Attempting to hack my way to a solution I tried fixing the 0x0F register to a value of 0x01 since my temperature will always be positive and rarely over room temperature. This helped me prove out that 0x0E wasn't very reliable either. Most of the time the 0x0E register gives reasonable numbers that correspond to room temperature. However, in the output above you can see that occasionally 0x0E has a value of 0xFF as well. This implies that room temperature jumps to ~31 deg C which is definitely not true in the Seattle winters where its about ~5 deg C outside and usually ~21 deg C inside.

Something is really wrong with the values in these registers. These findings are true for BOTH boards I received today. What are the odds?

What should my next steps be?
Attachments
thermistor.PNG
thermistor.PNG (145.89 KiB) Viewed 201 times

User avatar
adafruit_support_bill
 
Posts: 84637
Joined: Sat Feb 07, 2009 10:11 am

Re: AMG8833 Breakout Board Not Working

Post by adafruit_support_bill »

Please post some photos showing your soldering and wiring to the boards.

User avatar
sastorer
 
Posts: 5
Joined: Tue Nov 24, 2020 1:38 am

Re: AMG8833 Breakout Board Not Working

Post by sastorer »

Here are the requested pictures!
Attachments
Zoomed out wiring with Arduino. Of note, the two pins the green wires are connected to are SDA and SCL. Thus, SDA->SDA, SCL->SCL, Vin->5V, and GND->GND
Zoomed out wiring with Arduino. Of note, the two pins the green wires are connected to are SDA and SCL. Thus, SDA->SDA, SCL->SCL, Vin->5V, and GND->GND
Board2-min.jpg (482.11 KiB) Viewed 188 times
Showing the solder joints and up close wiring
Showing the solder joints and up close wiring
Board1-min.jpg (422.13 KiB) Viewed 188 times

User avatar
adafruit_support_bill
 
Posts: 84637
Joined: Sat Feb 07, 2009 10:11 am

Re: AMG8833 Breakout Board Not Working

Post by adafruit_support_bill »

The solder looks OK. But two bad boards is statistically highly improbable. Try re-wiring on a different section of the breadboard.

Breadboard connections can be flakey and a marginal SDA connection can sometimes result in results like you are seeing since the pullups on the i2c bus default to logic HIGH.

User avatar
sastorer
 
Posts: 5
Joined: Tue Nov 24, 2020 1:38 am

Re: AMG8833 Breakout Board Not Working

Post by sastorer »

Same results on a different section of breadboard and same results on a known working breadboard. Also same results continue to happen with the second board. Logic analyzer look at the SDA and SCL line is attached.
Attachments
LogicAnalyzer.PNG
LogicAnalyzer.PNG (46.59 KiB) Viewed 178 times

User avatar
sastorer
 
Posts: 5
Joined: Tue Nov 24, 2020 1:38 am

Re: AMG8833 Breakout Board Not Working

Post by sastorer »

Hello all!

I switched out the arduino from an Arduino Uno WiFi Rev2 to an Sainsmart Mega 2560 and the Mega makes the numbers correct from the board!
The Arduino Uno WiFi Rev2 has an ATmega4809 instead of the usual ATmega328P. Would this different memory layout break the library support? Something of note I found on the Arduino forums: "Be aware that an Uno WiFi Rev2 is not an Uno; 3rd party libraries that directly access processor registers might not 'work'." (However it seems the AMG88xx library by Adafruit doesn't do that at least at first glance.)

The Arduino page for the Uno WiFi Rev2 claims "This board has the Microchip ATmega4809 microcontroller, but thanks to the compatibility layer included in the core, you can run all the sketches made for the UNO's ATmega328P microcontroller on the ATmega4809."

Other things it could be are the layout differences between the Mega and the Uno WiFi Rev2? Maybe different or missing pullup resistors?
Here is a link to the Arduino Uno WiFi Rev2 board's page on Arduino.com: https://store.arduino.cc/usa/arduino-uno-wifi-rev2
Here is the link to the Sainsmart Mega 2560 that I'm using to make the sensors make sense: https://www.sainsmart.com/products/mega ... compatible

Trying to figure out if the sensor or sensor+library combination is not compatible with the Arduino Uno WiFi Rev2 or if my board is broken.

User avatar
adafruit_support_bill
 
Posts: 84637
Joined: Sat Feb 07, 2009 10:11 am

Re: AMG8833 Breakout Board Not Working

Post by adafruit_support_bill »

We have had a lot of reports of compatibility issues with the UNO WiFi Rev2. We don't carry that board, so we don't have any hands-on experience with it. It does require a different Wire library due to a different i2c architecture. But the IDE should select the correct Wire library for the board. And you would be getting compile time errors if you had the wrong one.

Pullups should not be an issue. The bus voltage for both the UNO WiFi Rev2 and the Mega 2560 is 5v. And the breakout boards have pullups and level shifting FETs on both SDA and SCL.

One bad sensor chip is conceivable. But 2 in the same order is somewhere beyond improbable. Given that they work with the Mega, I'd have to conclude that it is a compatibility issue with the WiFi Rev 2.

User avatar
sastorer
 
Posts: 5
Joined: Tue Nov 24, 2020 1:38 am

Re: AMG8833 Breakout Board Not Working

Post by sastorer »

For anyone interested in following along, I've moved the compatibility investigation to the Arduino forums.

Link: https://forum.arduino.cc/index.php?topic=715419.0

Link to the breakout board and chip reference documentation: https://cdn-learn.adafruit.com/assets/a ... nce%29.pdf

Locked
Please be positive and constructive with your questions and comments.

Return to “Other Products from Adafruit”