Hello,
I am having issues with my qwiic buzzer connecting to my nora thing plus. I have tried a few example sketches in the sparkfun library, but I keep getting an error that buzzer.begin() is false. I am able to work the buzzer on the arduino R4 (with the change of Wire to Wire1). Additionally, when doing an I2C scan on the thing plus, I get a result for a peripheral at every address. When I do the same scan on the R4, I only get one peripheral at 0x34 (default buzzer address). I should also note the only wires connected is the Qwiic buzzer to the thing plus (via the Qwiic connector). Other Qwiic peripherals are working via the Qwiic ports on the same board.
Any advice would be helpful.
Thanks
Is more than one peripheral hooked up simultaneously? I suspect pull-up resistance might be an issue
I initially had a Qwiic OLED connected as well but I still get the issue if the buzzer is the only peripheral connected.
Gotcha. To clarify, do the other peripherals work with the Thing Plus or only the R4?
Yes, the other peripherals work on the thing plus. For the OLED, if I plug in the buzzer via the Qwiic connector while running a graphics test, the display immediately pauses and the board freezes up. Additionally, if I power off the board and turn it back on with both the OLED and buzzer connected, it freezes up. I did cut the I2C jumper on the buzzer but not the OLED so far. This didn’t seem to change anything.
Ok, well it’s good the other items work with the Thing Plus. At this point I think the buzzer is defective - Was it purchased from us? If so head over to Return Policy - SparkFun Electronics (contact vendor if purchased elsewhere) and we’ll get ya squared away
Hmm, I have a total of 3 buzzers purchased directly from you guys… none of them are working with the Thing Plus. I’m wondering if the board is somehow defective. I have tried a few different Qwiic cables as well. I attached an image of my setup just in case I’m missing something trivial.
(FYI the code I’m running is ”Example_04_Buzz_Volume” from SparkFun_Qwiic_Buzzer_Arduino_Library.h)
One more thing to note is when doing an I2C scan on the Nora Thing Plus, I am getting a hit for a peripheral at every address.
Thanks
Ok, I’m back to suspecting the Thing Plus. Does pressing the reset button change anything? Do the other examples work?
Does that happen with nothing plugged into the qwiic connector?
1 Like
Reset button doesn’t change anything. I’ve also tried a hard reset by holding the boot button and pressing the reset button. The board will reset, but the problem is still there. Other examples are not working.
Yeah it does. Doesn’t matter if any other peripheral is plugged in or not
doing an I2C scan on the Nora Thing Plus, I am getting a hit for a peripheral at every address.
Does that happen with nothing plugged into the qwiic connector?
Yeah it does. Doesn’t matter if any other peripheral is plugged in or not
That’s suspicious. Makes me wonder if your I2C bus is configured incorrectly or something. Do you have any other I2C devices you can test?
Other Qwiic peripherals are working via the Qwiic ports on the same board.
Doh, I should read the whole thread, sorry.
Do you have any other development boards you can test the buzzer with?
Just tested the same buzzer with the same Qwiic cable on the arduino R4. Works perfectly fine. Are there any other I2C busses on the Thing Plus I could try? I tried Wire1 but that doesn’t exist… so I’m guessing probably not. I havent looked much at the datasheet to see
Thanks for testing that, glad to know the buzzer at least works!
Sounds like from all your testing, the Qwiic Buzzer works by itself, and the Thing Plus NORA works with other I2C devices, so I’m not sure why the Thing Plus NORA would fail to work with the Qwiic Buzzer. I’ve not used the Thing Plus NORA myself, so I don’t know if there is another I2C bus available. I’ll see if I can find one lying around the office to play with.
1 Like
Ok, thank you! I’m very confused at this point. The only other thing I noticed is the I2C scanner, at one point, was correct and showed me the two addresses with the buzzer and the OLED. I did try to factory reset the board a couple times so maybe that is the problem? Let me know if you have any success
Please run the following code:
#include <SparkFun_Qwiic_Buzzer_Arduino_Library.h>
QwiicBuzzer buzzer;
void setup() {
Serial.begin(115200);
Serial.println("Qwiic Buzzer Example_01_Buzz");
Wire.begin(); //Join I2C bus
//check if buzzer will connect over I2C
if (buzzer.begin() == false) {
Serial.println("Begin: FAIL!");
}
else {
Serial.println("Begin: SUCCESS!");
}
Serial.println("Buzzer connected.");
}
void loop() {
buzzer.on();
delay(1000);
buzzer.off();
delay(1000);
}
Then tell me 2 things:
- Do you see
Begin: FAIL!
or Begin: SUCCESS!
in the Serial Monitor?
- Does the buzzer actually make a sound?
I grabbed a Thing Plus NORA and a Qwiic Buzzer, ran the first example, which printed that the buzzer didn’t connect.
So I ran the I2C scan example, which printed 0x36
with the buzzer disconnected (expected, that’s the I2C Fuel Gauge address), and 0x34
with the buzzer connected (also expected, that’s its address). Curiously, I also got a few other spontaneous responses at 0x15
, 0x67
, and 0x0E
, but I’m ignoring that for now.
Since the I2C scan worked correctly (mostly), I wonder if buzzer.begin()
is incorrectly returning false
, so my code above is a simple modification of the first example, which just continues even if buzzer.begin()
returns false
. On my end, it prints Begin: FAIL!
, but the buzzer does actually make sound.
1 Like
That worked! Good thinking. The Serial monitor does show “Begin: FAIL!” but it does buzz. I wonder why that function returns false only on the Nora. I would still like to figure some way to make sure the buzzer begins before proceeding, but I can probably figure something out. As long as the OLED works with the buzzer, I’m happy. Thanks for investigating