Comments: SparkFun Qwiic Button Hookup Guide


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • dmckernan / about 4 months ago * / 1

    Hi, I'm having a hard time wiring up a simple momentary button to this board. The button has two leads on it that essentially close the circuit when the button is pressed.

    Based on this image I think I'm mean to wire it to via 2 and 4, but I am not totally sure if that is right (in any case, the python package doesn't see that as a press when closed)

    For more info on my project, I'm using the hyperpixel4 as a screen which has an i2c breakout. It creates a virtual i2c in /dev (for me it shows up as /dev/i2c-22, I believe the qwiic board is being detected as the i2c-22 only shows up when its plugged in). I have also created a symbolic link from /dev/i2c-22 to /dev/i2c-1 as I did not see a way in the python package to change i2c mount points).

    Am I on the right track here? I'm not an electrical engineer, just a tinkerer, so forgive my ignorance if this is obvious ( I can't read or make sense of the provided schematic). What two vias am I meant to close to have the package see it as a button press?

  • Member #1814505 / about a year ago / 1

    How can I connect this to the OpenLog Artemis? How do I upload custom modified firmware? I tried compiling the Qwiic button examples from the github repository, but all I get is "Device did not acknowledge! Freezing.".

  • Zanith / about 4 years ago / 1

    Once in awhile a button will stop working for me, I looked into it and it seems sometimes the Debounce time gets set to 62000-65000 ms. I don't know why or how it happens, but I find adding code in the setup to set the debounce to 20 ms will fix the problem upon power cycling.

    • El Duderino / about 4 years ago / 2

      Hi Zanith,

      That is a really weird issue I haven't seen before. My guess is the "How" is somehow data is getting written to the buttonDebounceTime register. The "62000-65000" value makes me think there is something writing a max (or near max) value for that 16-bit integer that is somehow getting written to that debounce register. The "Why" is a mystery to me outside of possibly something in the code you are using might be messing with the register map data saved in EEPROM.

      The tutorial comments aren't the best place for Technical Assistance to troubleshoot issues like this so if you would like us to help try and figure out what is causing it please post this issue in the SparkFun Forums and our Tech Support team can help you out. Any extra information you could provide in your Forum post like number of boards this is happening to along with what code and microcontroller you are using would be very useful to troubleshoot this issue with you.

  • BrentBoren / about 4 years ago / 1

    I'm disappointed that you don't share the ATTiny source code for this as you do on the qwiic keypad. I'm porting over the qwwic keypad code to modify for my changes, but it would have been good to see what you guys are doing for a starting point - just so I can keep it reasonably compatible with the rest of the codebase.

    Thanks as always for a good product.

    • El Duderino / about 4 years ago / 3

      Hi BrentBoren,

      Sorry for the confusion here. We certainly have the Qwiic Button firmware available in the Hardware GitHub Repository for you to download and modify if you'd like. I also went ahead and modified the ATTiny84 section in this guide to provide links to it as well as a tutorial to help users re-program an ATTiny.

      • BrentBoren / about 4 years ago / 1

        El Duderino,

        Thanks again! The EEPROM erase program clued me in on where I was getting hung up. I reprogrammed the qwiic_button into a 4x5 matrix qwiic_keypad for use in another project. The ATMEGA328 was working great, but I couldn't get the ATTiny working. Turns out you guys were using more EEPROM than I anticipated. After clearing it out and reloading my code everything worked great.

        Don't know how I missed the code earlier. I had actually looked for it, but clearly not in the right place.

        I appreciate the help!


      • BrentBoren / about 4 years ago / 1

        Mr Lebowski (Sorry - I mean El Duderino),

        I must have been looking in the wrong GitHub repository earlier. I can see the code now and I appreciate the update.

        Best regards, Brent

If you've found an issue with this tutorial content, please send us your feedback!