How to compile the firmware?


Hi, im new at blinkstick it’s realy a cool thing to control yout RGB-LEDs with your PC ;).
After some reading I found the firmware for the attiny 85 so i downloaded it and build a blinkstick :smiley: ,
now i have a big question how do I compile the programm to hex-file ? :weary:
I read more but i doesn’t find a tutorial :pensive: so i need urgent help with wich programm I compile it.
About me: I already did some project with atmel chips and bascom programming ( i know it’s not optimal but im only 17 :smile:)

So pleas help

Tank you in advance


BlinkStick Strip Flash Firmware

Do you have an AVR programmer like USBTinyISP or an Arduino? In order to compile you need AVR toolchain which you can download from the internet. Once you have AVR toolchain installed, all you need to do is run the following commands:

make clean hex
make deploy

And that should compile and upload firmware to ATTiny85 chip. If you are using a programmer different to USBTinyISP, you will have to update makefile with the programmer you are going to use.


OK I downloaded Atmelstudio 6.2 and the toolchain, I installed the toolchain and set it to standart. Now I opend the main.ccp and tried to build solution but it doesn’t work ? I do not have much experience in Atmel Studio. Can you help me plese ? :fearful: or can you send me a finished file ?




Which firmware do you need?

  • BlinkStick
  • BlinkStick Pro
  • BlinkStick Square
  • Blinkstick Strip


I need the firmware from blinkstick :smiley: .
It would be grate




I have made a small PCB and I will use it as blinkstick strip with a ws2812 module with 8 leds. I have flashed the attiny85 with the blinkstick pro firmware. Is there a different firmware for blinkstick strip? What are the differences? Where could I find and download all the firmwares?


@steffencad Do you need firmware for basic LED or WS2812?

@ioakar0 Firmware can only be compiled from source. The difference between Pro and Strip/Square firmwares are:

  • the API implementation correctly identifies devices
  • limits the functionality so you can’t set modes 0 and 1
  • Adds additional mode 3 for LED-mirror


when i, compile i was got error like this… :pensive: :pensive: :pensive: :pensive: :pensive: :pensive:

light_ws2812.h:40: warning: ‘ws2812_setleds_pin’ declared inline after being called
light_ws2812.h:40: warning: previous declaration of ‘ws2812_setleds_pin’ was here
light_ws2812.h:50: warning: ‘ws2812_sendarray_mask’ declared inline after being called
light_ws2812.h:50: warning: previous declaration of ‘ws2812_sendarray_mask’ was here


Hi arvydas,just a few questions so i dont keep posting,ive bought 3 blinksticks so i think i qualify to ask for the firmware for all the blinksticks,i just want to play around with some breadboard desighns just for my own use,ide like flex firmware square firmware and any others that arnt easy to find,also i can flash compile etc but i cant for the life of me make the eeprom file for the serial ive tryed make defaults ive tryed putting a text file in the folder where serial.txt-template is ime not sure how that works so ime just trying things,how does it make the eeprom and output it to same folder,for flashing does it make the serials up or do you do that at factory do i need to put my serial some where for it to make the eeprom hex for flashing?,the way ime doing it is i have a dump of one hex and i have to edit the hex find the part where the serial is change it depending on wich stick ime compiling,i use my own serials then set the end byte so it doesnt miss match its a long way around but only way i can do it not bad for a noob lol,ide like to know the proper way though? pleas try get back to me asap,thanks


Firmware for BlinkStick v1.1 is available here:
Firmware for BlinkStick Pro is available here:

I will be updating all resource file for BlinkStick very soon that will include firmware, Eagle design files and 3D cad files. It currently needs a very significant cleanup and I will be probably incorporating all firmwares into one source code release as they currently reside on separate branches.


Ok thanks ive got the two firmwares pro and 1.1,but wanted the others square etc but ile wait till there done,i did wonder if this was still work in progress,but thought ide ask as ime verry eager to have a play with all other firmwares too,but ile wait till its published,thanks for your time to comment :stuck_out_tongue_winking_eye:


@arvydas How do i make an eeprom file for the blinkstick from scratch and what detrmins the serial number for each stick,is it automatic or do you give them a number,i can compile the firmware fine above but it never makes the eeprom file,can you tell me how its done i would verry mutch apreciate it,thanks


@arvydas why do i get error,is this somthing to do with why it doesnt make eeprom,from what i can make out it is,does this convert a serial file somewhere and convert to eeprom hex? I would realy like to get eeprom working and understand how it works,whats the serial.txt-template for and why a 0 in it?


I can dump my eeprom from my blinkstick and convert the hex into text and change serial etc that way and paste it back in then change the end byte so it doesnt miss match,but its bugging me that i cant do it properly in firmware.


Repository now contains default EEPROM for BlinkSticks. Just rename it eeprom.hex and you should be good to go!


@arvydas so what makes the serial number for the eeprom then,say i made a board to use with the client and wanted to put a serial number in how would i do that,ide only use the serials i have,or if possible put a c in the serial like BSC0022-1.4 as to show its a clone then it wouldnt eccidently be someone elses serial if i was to use a random number for a cloned or differant version of blinkystick,See ime trying to make an RGB led project that takes an sd card wich is loaded with patterns in a hex file,ile be using boot 2 and also it will use an lcd screen as to select the right pattern hex file from a list it will have a loader and settings file too so the screen can be setup e.g contrast etc it will have an rgb led on board too and rgb outputs with mosfets as to use 12v strips and 5v neopixels,it will be good when its done,ive to learn c++ on the way or arduino :hushed:


You should look at

make deploy

command is the one that does all of the serial writing to eeprom.hex before it’s flashed to the device.

BlinkStick is not suitable for your project - it is extremely limited with the amount of resources including RAM, EEPROM and flash. You are very much better off with something like Arduino and base you project on that, because BlinkStick firmware is already using all of the available resources on the ATTIny85 chip :smiley: There will not be any more resources to run SD card and you need lot’s of RAM for something like LCD display. You should consider something like Arduino Mega.


@arvydas oh i know blinkstick its self is not suitable for the project i mentioned,i was just tinkering with the firmware as parts it could be the basis of somthing i could implement,i would be using mega or 32 or even 32u4 and maybe even mega like you said,and external eeprom,but ime verry far away from developing anything yet ive to master the basics of programming,ime just tinkering with ideas also ive made my own blinksticks on breadboard like blinkstick square etc,just mucking about learning whats what and how your project is made, its helped me loads and at the same time having fun doing it wich is mainly why i do it,but thanks for the heads up so far on the things ive asked,but with help from willing internet coding buddies i maybe able to start somthing off sooner,i do get frustrated somtimes trying to jump befor i can walk typ of thing,ive loads of ideas and projects in my head all planned out but just need to learn the c code,but ile get there :smiley:


@arvydas whats with the error code i posted above = cannot load such file wo_oo/util/hex,do i need to install a missing jem or wo_oo or somthing,it only gives this error on one of the still uploads the firmware etc


You need to install hex gem with

gem install hex