Important Note: Opening this device or using modified firmware may or may not change the legality for use in robotics competitions. Please refer to the rules of the specific competition you are using this device in before making modifications.
Important Note: Uploading custom code to the Blinkin requires opening the device. Please note that opening the device to upload code will void the warranty. REV Robotics is not liable for damage that may occur due to device modifications. Use at your own risk. For more details, please visit the REV Robotics Warranty Page.
This guide will use the programmer built into the Arduino Uno to target the Blinkin board. Be careful when following these instructions and wiring the device.
- Follow the diagram below to carefully wire the Blinkin board into an Arduino Uno
- Remove the main chip from the socket of the Arduino. This will cause the built-in Arduino programmer to target the Blinkin instead.
- Apply 12V to the Blinkin with an XT30 cable
- Plug the Arduino UNO into your computer with a USB-A to USB-B cable
- Download the Arduino IDE
- Install and open the IDE
- In the Tools tab, select "Arduino/Genuino Uno" under Board
- Again in the Tools tab, select the port the Arduino is located at
- Clone or download Blinkin-Firmware-master.zip from this GitHub repository
- Extract the contents into a folder named Blinkin-Firmware
- Open Blinkin-Firmware.ino in the Arduino IDE
- Download FastLED-master.zip and CircularBuffer-master.zip
- Under Include Library, located in the Sketch tab, click "Add .ZIP Library..."
- Locate FastLED-master.zip and CircularBuffer-master.zip and add both of them
- Press the Upload button at the top of the IDE to load the firmware onto the board
- Plug an LED strip into the Blinkin with the Blinkin LED cable adapter to see the output
- Hold the Mode button on the Blinkin board to enable setup mode
- Use the Mode and Strip Select buttons to cycle through the preset patterns
- Turn the left two potentiometers on the Blinkin to adjust the preset team colors (Used in patterns 49 through 79)
- Turn the rightmost potentiometer to adjust the length of the LED strip
- A list of the preset patterns can either be found in Blinkin-Firmware.ino or here
- In Blinkin-Firmware.ino, add
Serial.begin(115200);
in setup()
- Use
Serial.print();
orSerial.println();
anywhere in the code to print to the Serial Monitor - Press the Serial Monitor button at the top right corner of the IDE to open the Serial Monitor
- At the bottom right corner of the Serial Monitor, set the baud rate to 115200
- Open UserIO.ino
- Add
Serial.println(noSignalPatternDisplay);
at the locations in the screenshots below
- In Blinkin-Firmware.ino, there is an array of functions named
gPatterns
- Change the name of an existing function in this list of functions
- Then, to modify what it does, open the .ino file the function is located in (For this example, open PWM_1_Standard.ino)
- Now find the function that was renamed, and change its name to the new one here
- Inside the brackets next to the function is what runs when the function is selected
- Delete the contents in the brackets and add a new method
- Below, create the new method with the desired parameters and create what the function does inside the brackets
- In this example, the method makes the LED strip blink rapidly between two colors, similar to the strobe function
- Locate the folder your Arduino libraries are saved in (usually C:\Users\Username\Documents\Arduino\libraries)
- In FastLED-master, open colorpalettes.cpp and colorpalettes.h
- Add the definition for the new color palette in colorpalettes.h by adding
extern const TProgmemRGBPalette16 CustomPalette_p FL_PROGMEM;
- Create the palette in colorpalettes.cpp by adding
extern const TProgmemRGBPalette1 CustomPalette_p FL_PROGMEM = { };
, putting the desired colors in the brackets - In this example, the palette cycles through white, red, blue, green, and yellow, then blacks out the LEDs before starting the cycle over
- Save the two files and add the palettes into the Arduino code