Keypads are very handy input devices, but who wants to tie up seven GPIO pins, wire up a handful of pull-up resistors, and write firmware that wastes valuable processing time scanning the keys for inputs? The SparkFun Qwiic Keypad comes fully assembled and makes the development process for adding a 12 button keypad easy. No voltage translation or figuring out which I2C pin is SDA or SCL, just plug and go! Utilizing our handy Qwiic system, no soldering is required to connect it to the rest of your system. However, we still have broken out 0.1"-spaced pins in case you prefer to use a breadboard.
Each of the keypad's 12 buttons has been labeled 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, *, and # and has been formatted to into the same layout as a telephone keypad with each keypress resistance ranging between 10 and 150 Ohms. The Qwiic Keypad reads and stores the last 15 button presses in a First-In, First-Out (FIFO) stack, so you don’t need to constantly poll the keypad from your microcontroller. This information, then, is accessible through the Qwiic interface. The SparkFun Qwiic Keypad even has a software configurable I2C address so you can have multiple I2C devices on the same bus.
The SparkFun Qwiic connect system is an ecosystem of I2C sensors, actuators, shields and cables that make prototyping faster and less prone to error. All Qwiic-enabled boards use a common 1mm pitch, 4-pin JST connector. This reduces the amount of required PCB space, and polarized connections mean you can’t hook it up wrong.
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels
Based on 5 ratings:
0 of 2 found this helpful:
This is pitched as a "easy to integrate" board, but it is anything but! You're probably better off finding any of the other keypads on the market and using the abundant documentation to connect them to your project. The documentation for this project is wrong in important ways and incomplete in others.
It probably took three minutes to go from opening the package to having keypad input in my project. I just wish there was a Qwiic version of the 16x2 LCD!
Example code makes it easy to get up and going quick!! Qwiic connection is convenient
I'm a newbe but have done some code many years ago. I was looking for a solution for i2c keypads. I already had a key pad with a i2c module hook to it. When I saw this I thought WOW this has everything. After I got it going I was surprised that it slowed down my sketch considerably. Now I understand that with the buffer I don't need to poll this as often, but apples to apples my sketch lost 18 minutes / 12hrs. I know this can be overcome, but for my project I returned to the previous keypad. However after I get a little more time I will re investigate this again. Bob
Overall, not bad. It does what it is supposed to do for a decent price. Offloading constant keypad scans to a side board is fairly nice and pretty convenient.
This keypad only works at an I2C speed of 100kbit/sec which makes it a bit of a pain to use alongside other I2C devices when high speed is required. You can change the I2C bus speed on most controllers on the fly, so this isn't the end of the world, but it does eat a few extra clock cycles to switch back and forth.
It would be nice to see a slightly faster processor on here that can handle 400kbit/sec and 1Mbit/sec speeds that are selectable via solder jumpers. While you wouldn't ever need to read button presses that fast, it would save a bit of processor time during the waits. You can reprogram the chip to run at a faster rate to get 400kbit/sec, but programming an already-soldered ATtiny85 is a bit of a pain.
It would also be nice to see the FIFO read simply be a read from a register. As is, you have to write a 1 to register 0x6 before a read. Again, this eats time as you have to multiple sets of writes in order to read one button. A sequential read to get all button presses would be nice too.
The last "meh" bit is more of a warning to anyone reading this: The library will currently reset the I2C bus speed to 100kbit/sec for you. I'm personally not a fan of this design choice as it can make for some difficult debug efforts for those who are new to writing firmware. This device is simple enough that either changing the library or just writing the 10 lines of code yourself is not a problem, but just know about this "feature".