- Out-of-Stock
Products
Categories
- Main categories
-
- 3D PRINTING
- ARDUINO
- AUTOMATION
- BOOKS
- CYBERSECURITY
- EDUCATION
- ELECTRONICS
- Cables
- Cameras and accessories
- Communication
- Conductive materials
- Connectors
- ARK connectors (Terminal Block)
- Coaxial connectors (RF)
- Connectors
- Crocodile clip
- D-Sub drawer connectors
- DC power connectors
- FFC/FPC ZIF connectors
- Goldpin connectors
- IDC connectors
- JACK connectors
- JST connectors
- Jumpers
- Memory cards slots
- Other connectors
- Pogo pin
- RJ45 sockets
- Slip ring connector
- Supports
- Szybkozłącza
- USB connectors
- USB PD Adapters for Laptops
- Cooling
- Displays
- Electronic modules
- A/D and D/A converters
- Audio
- Barcode readers
- CAN converters
- Converters USB - UART / RS232
- Data logger
- DDS/PLL generators
- Digital potentiometers
- Encoders
- Expanders of the I/O
- Fingerprint readers
- HMI modules
- Image and video
- JTAG accessories
- Keyboards, buttons
- LED drivers
- Memory card readers
- Memory modules
- Modules with power outputs
- Motor controllers
- Power modules
- RS485 converters
- RTC modules
- Servo Controllers
- TSOP infrared receivers
- USB Converters - I2C / 1-Wire / SPI
- Voltage converters
- Gadgets
- GPS
- Intelligent clothes
- LED - diodes, displays, stripes
- Luminous wires and accessories
- Memory cards and other data storages
- Passive elements
- PC accessories
- Printers
- Prototype boards
- Relays
- Semiconductors
- A/C converters (ADC)
- Analog systems
- Audio systems
- Bridge rectifiers
- Button
- D/A Converters (DAC)
- DDS synthesizers
- Digital circuits
- Diodes
- Drivers of motors
- DSP microprocessors
- Energy counters
- Energy harvesting
- ESD security
- IGBT drivers and bridges
- Interface systems
- LED drivers
- Logic converters
- Memory
- Microcontrollers
- Optotriacs and optocouplers
- Other
- PLL generators
- Power systems
- Programmable systems
- Resetting systems
- RF systems
- RTC systems
- Sensors
- SoC systems
- Timery
- Touch sensors
- Transistors
- Sensors
- Accelerometers
- Air humidity sensors
- Air quality sensors
- Current sensors
- Distance sensors
- Flow sensors
- Gas sensors
- Gyroscopes
- Hall sensors
- Humidity sensors
- Infrared sensors
- Light and color sensors
- Liquid level sensors
- Magnetic sensors (compasses)
- Medical sensors
- Motion sensors
- PH sensors
- Position sensors
- Pressure sensors
- Pressure sensors
- Reflection sensors
- Sensors 6DOF/9DOF/10DOF
- Sensors of liquid quality
- Temperature sensors
- Vibration sensors
- Sound transducers
- Switches and buttons
- Cables
- FPGA DEVELOPMENT KITS
- Measuring devices
- MECHANICS
- MINICOMPUTERS (SBC)
- POWER
- RASPBERRY PI
- Accessories for Raspberry Pi
- Audio video cables for Raspberry Pi
- Case Raspberry Pi
- Cooling for Raspberry Pi
- Displays for Raspberry Pi
- Extension modules for Raspberry Pi
- Memory cards for Raspberry Pi
- Power for Raspberry Pi
- Raspberry Pi 3 model A+
- Raspberry Pi 3 model B
- Raspberry Pi 3 model B+
- Raspberry Pi 4 model B
- Raspberry Pi 400
- Raspberry Pi 5
- Raspberry Pi cameras
- Raspberry Pi Compute Module
- Raspberry Pi model A/ B+/2
- Raspberry Pi Pico
- Raspberry Pi prototyping
- Raspberry Pi Zero
- Raspberry Pi Zero 2 W
- RETIRED PRODUCTS
- SALE
- STARTER KITS, PROGRAMMERS, MODULES
- Atmel SAM
- Atmel Xplain
- AVR
- Coral
- DFRobot FireBeetle
- ESP32
- ESP8266
- Feather / Thing Plus
- Freedom (Kinetis)
- M5Stack
- Micro:bit
- Nordic nRF
- Other development kits
- Particle Photon
- Peripheral modules
- PIC
- Raspberry Pi RP2040
- RFID
- RISC-V
- Seeed Studio LinkIt
- Segger programmers
- SOFTWARE
- Sparkfun MicroMod
- STM32
- STM32 Discovery
- STM32 MP1
- STM32 Nucleo boards
- STM8
- Teensy
- Universal programmers
- WRTNode
- XIAO/Qt PY
- Atmel SAM
- WORKSHOP
- Adhesives and gluers
- Chemistry
- CNC milling machines
- Crimping tools
- Dispensing needles
- Heat-shrink tubing
- Insulation strippers
- Knives and scissors
- Laboratory power supplies
- Mikroskopy
- Mini drills and grindrers
- Organizers
- Power strips
- Power tools
- Safety glasses
- Soldering
- Antistatic mats and accessories (ESD)
- BGA balls
- BGA rework stations
- Brushes and ESD brushes
- Desoldering Wick
- Handles, magnifiers
- Heat guns
- Heaters and soldering irons
- Laminates
- Portable soldering irons
- Silicone Soldering Mats
- SMD Accessories
- Soldering accessories
- Soldering chemistry
- Soldering irons
- Soldering pastes
- Soldering pots
- Soldering stations
- Soldering tips
- Sponges and cleaners
- Stand for soldering irons
- Tin
- Tin extractors
- Ultrasonic cleaners
- Tapes (aluminum, kapton, copper, insulating)
- Tools
- Tweezers
- Vices
- 3D PRINTING
New products
New products
The ShiftBrite V2.0 is an RGB LED module with a built-in driver featuring 10-bit digital brightness control on each color channel (over one billion colors). Multiple modules can easily be chained together and controlled from a single microcontroller to create large LED displays. This version has several improvements over the original ShiftBrite, including mounting holes and better power handling.
Overview
ShiftBrites are modules by macetech that integrate the Allegro A6281 3-channel constant current LED driver with a large, high-brightness RGB LED. Using just three digital output pins and a simple protocol, your microcontroller can control a long chain of these modules. Each ShiftBrite in the chain can be independently changed to any of the 1,073,741,824 possible colors to create dynamic displays and decorations. Adjustable current for each color channel lets you correct for slight differences in brightness. In addition, the LED driver is protected from overheating by automatic over-temperature shutdown.
The ShiftBrite V2.0 offers the following key improvements:
- New mounting ears and large mounting holes for easier installation.
- Better indication of polarity and data direction on both top and bottom.
- Larger power traces for improved power handling and chaining.
- Additional power filtering capacitor.
Example ShiftBrite applications
Several ShiftBrite applications are shown below, including an example setup using a Micro Maestro as a ShiftBrite controller. In the Micro Maestro example, digital outputs 0, 1 and 2 are used to send the control signals to the clock, latch, and data lines, the enable line is connected directly to GND, and 6 V power to the Maestro is delivered from the ShiftBrite chain. Maestro source code to control a ShiftBrite is available in the Example Scripts section of the Maestro User’s Guide. Our Orangutan robot controllers can also be used to control ShiftBrites, as can the Arduino. Source code for the Orangutan is available at the bottom of this page.
Using the ShiftBrite V2.0
Since ShiftBrites are controlled by Allegro’s A6281 LED driver, careful reading of the A6281’s datasheet (315k pdf) is recommended. Each ShiftBrite input is buffered and output on the corresponding output pin. This allows you to chain together ShiftBrites without increasing the number of IO pins dedicated to controlling the modules. The picture below shows three ShiftBrites chained together.
Three ShiftBrites chained together. |
---|
Our 6", 12", and 24" cables for ShiftBrites make it easy to connect multiple modules, as shown below.
|
|
You can make your own shorter cables with our 3" wires with pre-crimped terminals and our 0.1" 6×1 crimp connector housings.
Pinout diagram for the ShiftBrite module. |
---|
Each ShiftBrite has a 32-bit shift register. When a rising edge is detected at the clock in pin (CI), the data in pin (DI) value is shifted onto the first bit of the shift register, and the last bit sets the value of the data out pin (DO). After you have loaded a 32-bit packet into the shift register of each ShiftBrite in the chain, bringing the latch in pin (LI) from low to high causes the data to take effect (changing the color or updating a configuration setting). LI must be brought low again before clocking in additional data.
The data packet format is shown in the picture below. For more details about the data packet format, as well as timing and other electrical parameters, see the A6281 datasheet (315k pdf). You can find further documentation and Arduino sample code at macetech’s ShiftBrite documentation page.
ShiftBrite packet diagram. The second row shows a color packet, while the third row shows a command packet. |
---|
To send data to the ShiftBrite, you need to use at least three digital I/O pins (four if you want to use the EI pin). Our Orangutan robot controllers work well for this. Here is some sample code for setting the colors of a chain of ShiftBrites using bit banging on the AVR. The chain can be arbitrarily long, but the changing color pattern will repeat on every sixth module.
// ShiftBrite communication for the AVR using bit banging. // // Pin Assignments (any four free digital I/O pins will do) // // Data PC2 // Latch PC3 // Enable PC4 // Clock PC5 // // Feel free to modify and use this code for your AVR. #include <avr/io.h> typedef union ShiftBritePacket { unsigned long value; struct { unsigned greenDotCorrect:7; unsigned clockMode:2; unsigned :1; unsigned redDotCorrect:7; unsigned :3; unsigned blueDotCorrect:7; }; struct { unsigned green:10; unsigned red:10; unsigned blue:10; unsigned command:1; }; } ShiftBritePacket; // colorPacket returns a ShiftBritePacket for setting color brightnesses // // red, green, and blue are brightness values from 0 to 1023. 0 is off, and // 1023 is brightest. ShiftBritePacket colorPacket(unsigned int red, unsigned int green, unsigned int blue) { //Make a packet and initialize all of the bits to zero. ShiftBritePacket shiftbrite_packet = {value:0}; shiftbrite_packet.red = red; shiftbrite_packet.green = green; shiftbrite_packet.blue = blue; return shiftbrite_packet; } // commandPacket returns a ShiftBritePacket for sending commands to the A6281. // // redDotCorrect, greenDotCorrect, and blueDotCorrect lets you control what // percentage of current is flowing to each color diode. // Refer to page 8 of the datasheet for more information. // clockMode lets you set the PWM frequency for the diodes. // Refer to page 7 of the datasheet for more information. ShiftBritePacket commandPacket(unsigned int redDotCorrect, unsigned int greenDotCorrect, unsigned int blueDotCorrect, unsigned char clockMode) { //Make a packet and initialize all of the bits to zero. ShiftBritePacket shiftbrite_packet = {value:0}; shiftbrite_packet.redDotCorrect = redDotCorrect; shiftbrite_packet.greenDotCorrect = greenDotCorrect; shiftbrite_packet.blueDotCorrect = blueDotCorrect; shiftbrite_packet.clockMode = clockMode; shiftbrite_packet.command = 1; return shiftbrite_packet; } void sendPacket(ShiftBritePacket shiftbrite_packet) { for(int i = 1; i < 32 + 1; i++) { //Set the appropriate Data In value according to the packet. if ((shiftbrite_packet.value >> (32 - i)) & 1) PORTC |= (1 << PORTC2); else PORTC &= ~(1 << PORTC2); //Toggle the clock bit twice. PORTC ^= (1 << PORTC5); PORTC ^= (1 << PORTC5); } } void latch() { // Set Latch high PORTC |= (1 << PORTC3); // Set Latch low PORTC &= ~(1 << PORTC3); } void sendColorWheelPacket(unsigned int location_on_wheel) { if (location_on_wheel < 400) sendPacket(colorPacket(400,(location_on_wheel % 400),0)); else if (location_on_wheel < 800) sendPacket(colorPacket(400-(location_on_wheel % 400),400,0)); else if (location_on_wheel < 1200) sendPacket(colorPacket(0,400,(location_on_wheel % 400))); else if (location_on_wheel < 1600) sendPacket(colorPacket(0,400-(location_on_wheel % 400),400)); else if (location_on_wheel < 2000) sendPacket(colorPacket((location_on_wheel % 400),0,400)); else if (location_on_wheel < 2400) sendPacket(colorPacket(400,0,400-(location_on_wheel % 400))); } int main() { // Set all to outputs. DDRC |= (1 << PORTC2); // Data In DDRC |= (1 << PORTC3); // Latch DDRC |= (1 << PORTC4); // Enable DDRC |= (1 << PORTC5); // Clock // Set the Enable output low to enable the ShiftBrites. PORTC &= ~(1 << PORTC4); //Have the ShiftBrites change from red to yellow to green to cyan to blue //to purple and back to red. while(1) { for (int i = 0; i < 2400; i++) { sendColorWheelPacket(i); sendColorWheelPacket((i+400) % 2400); sendColorWheelPacket((i+800) % 2400); sendColorWheelPacket((i+1200) % 2400); sendColorWheelPacket((i+1600) % 2400); sendColorWheelPacket((i+2000) % 2400); latch(); } } //Loop forever while(1); }
Other products in the same category (16)
Assembled controller for the rectifier. AVT3166 C
No product available!
ROSA3D filament made of thermoplastic polyurethane. 0.5 kg of filament with a diameter of 1.75 mm is wound on the spool. ROSA3D ROSA-Flex 96A Red
No product available!
Go far and beyond with the futuristic mini-model of a space conqueror Mars Rover from the Ugears collection of mechanical models.
Spare 30 minutes or so to enjoy the assembly of an ingenious mechanical space vehicle. Inspired by ever-exciting sci-fi and no less amazing recent developments in the space industry, Ugears engineers pay tribute to the final frontier romantics with a six-wheel mechanical space-rover, the Mars Rover. UGears 70165
No product available!
Cable with USB plugs type A and micro-USB type B, cable length 1m. The cable has a white nylon braid
No product available!
No product available!
Module with e-Paper display, 2.7" diagonal and 264x176 px resolution. Communication via SPI interface. Waveshare Pico-ePaper-2.7
No product available!
Genesis Krypton gaming mouse with an optical sensor of a maximum resolution of 4000 DPI. It is equipped with RGB backlight, which can be adjusted from a dedicated application. Genesis NMG-1409
No product available!
No product available!
No product available!
No product available!
No product available!
Module with DRV2605L vibration motor controller and Y axis LRA motor. It allows you to add haptic feedback (vibration effect). SparkFun ROB-15181
No product available!
PCB board and programmed Bluetooth wireless thermometer system. AVT1863 A +
No product available!
AVT kit for self-assembly of the controller - timer with 8 relays. AVT5588 B
No product available!
No product available!
No product available!