Custom Blinklib v1.4.0 Released (Updated to 1.4.1)

After a long while, this one has a significant change that might be useful to developers: Custom face value types.

In the official Blinklib and my custom one (until now), face values were always represented by a byte (a.k.a uint8_t) which gives you 6 bits of information to play with in the official Blinklib and 8 in the custom one.

With this release, one can use arbitrary types as long as they support assignment (copy). The common use case will be to use uint16_t (16 bits) or uint32_t (32 bits) instead of byte, but creative minds can use any custom types that satisfies the requirement above.

Here is how to use it:

1 - Follow the instructions to install the Custom Blinklib and select it for your project.
2 - In the same directory that you have your sketch, add a config sub-directory.
3 - Inside this config sub-directory, create a file called blinklib_config.h
4 - Inside this file, add something like this:

#define BGA_CUSTOM_BLINKLIB_FACE_VALUE_TYPE uint16_t

And that is it. After doing the above, something like this will work as expected:

setValueSentOnAllFaces(65535);

Hope this helps.

New In This Release

  • Add support for custom face value types via the BGA_CUSTOM_BLINKLIB_FACE_VALUE_TYPE define. Default is byte.
  • Reduce storage a bit more.
1 Like

v1.4.1 adds a small feature but useful to anyone working on more complex games: Ability to control IR transmission related timeouts.

New In This Release

  • Add support for setting IR-related transmission timeouts: BGA_CUSTOM_BLINKLIB_SEND_PROBE_TIMEOUT_MS (sets the maximum time to wait without receiving any data to send a probe. Default is 150 ms) and BGA_CUSTOM_BLINKLIB_FACE_EXPIRATION_TIMEOUT_MS (sets the maximum time to wait without receiving any data to consider a face as expired/disconnected. Default is 200 ms).
  • Even more storage savings.
1 Like

If you updated the Blinklib before 5 minutes ago, please remove it and install it again. I forgot to push the commits for this version and had to recreate the release. It is still 1.4.1 but the actual package changed.

Sorry.