The SparkFun Qwiic Twist is a digital RGB rotary encoder breakout that is also able to connect to our Qwiic Connect System. The Twist takes care of all the various interrupts, switches, PWM'ing of LEDs, and presents all those features over an easy-to-use I2C interface. The Qwiic Twist was designed to get rid of the large mass of wires that are needed to implement an RGB encoder in a breadboard enabling you to stop messing around with interrupt debugging and get back to your project! 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.
One rotation in the clockwise direction for the rotary encoder increases the overall count by 24 and -24 in the counter-clockwise direction. The number of 'ticks' or steps you have turned the knob are all transmitted over I2C. The red, green, and blue LEDs are all set via software commands and can be digitally mixed to achieve over 16 million colors!
We designed Qwiic Twist with an indent encoder which gives the user a great 'clicky' feel. Additionally, the encoder has a built in button so the user can select an GUI menu or element by pressing down on the it. The Qwiic Twist uses a 6mm shaft and works great with our Clear Plastic Knob listed in the Hookup Accessories below or any other 6mm knob.
We've also written an Arduino library for the Qwiic Twist showing off all the different features of the Twist and for easy interfacing to the breakout including a litany of examples!
Note: The I2C address of the Rotary Encoder is 0x3F and is jumper selectable to 0x3E (software-configurable to any address). A multiplexer/Mux is required to communicate to multiple Rotary Encoder sensors on a single bus. If you need to use more than one Rotary Encoder sensor consider using the Qwiic Mux Breakout.
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: Competent - You will be required to reference a datasheet or schematic to know how to use a component. Your knowledge of a datasheet will only require basic features like power requirements, pinouts, or communications type. Also, you may need a power supply that?s greater than 12V or more than 1A worth of current.
See all skill levels
Based on 2 ratings:
I had this up and running in my project doing everything I needed to do in only a couple hours. One issue I had was that the interrupt-based button press and knob turn functionality didn't update as quickly as needed, so I had to change over to a polling method. I've also noticed that very rarely, the knob seems to miss a tick when turning.
I've wanted to experiment with one of these as a user interface, so I got one and I really like it. I had no problems adding the library to my code. Probably one of the easiest things to implement. The center button needs to be debounced, but otherwise, it works beautifully.