What is the protocol for IR messages?

I’m investigating using an Android device with an IR blaster to transmit messages to a Blink. My hope is to emulate the standard Blink messaging protocol during gameplay, so something that the BlinkBIOS would interpret as a message from another Blink.

Android documentation for IR Blaster:


Any details on the protocol & IR frequencies used?



TLDR; It is going to be almost impossible to talk the standard blinks IR protocol without dedicated hardware. Lucky that extra hardware can potentially cost less than $1 and is already in the sketchbook, but if you want to do no-hardware then you will likely need to make a new (more forgiving) protocol.

Long answer to follow…

Ok, I see the docs for the android IR blaster. It looks like this is meant for transmitting to TVs and stuff like that using a modulated carrier in the kilohertz range. Blinks talk to each other using carefully spaced, very short (<10μs) flashes. These are very different protocols!

Here is an example of a Blink 2-byte IR packet transmission…

Note that the pulses are solid on time for the transmitting IR LED, no carrier. The timing must be +/-10% or the receiver will lose sync (that’s less than 20μs jitter).

Add to this that the protocol is 2-way with checksums and ACKs and I think it would be very hard if not impossible to support this on a phone.

That said, you could definitely write code on the blink to read normal IR protocols, and you could even likely make a slower protocol that used a blinking canvas on a Javascript webpage to send one-way data to a blink. This would be nice if you did not have a lot of data, so something like sequence of colors or a word or something like that.

LMK which path would work best for what you are trying to do and we will figure out best ways to support your efforts!


The timing width and ACKs is what I wasn’t sure about. Agree regarding the consumer Android hardware not being able to handling what the BlinkBIOS requires. Thanks for the detailed info.