Releases: Move38/Blinks-SDK
Gold Master - Shipping BlinkOS (+ startup state feature)
Gold Master
Your Blinks arrived this holiday season with this FW on board. It has all of the same functionality as previous releases, plus a feature we haven't used yet for a game in this release, but are excited to use for games in future releases.
Startup State
The new feature is the ability to know whether you (the Blink) are responsible for seeding the game that we are all currently playing. From the onset, we wanted Blinks games to typically rely on distributed logic rather than a master/slave paradigm. This speaks to our values in addition to being technically more interesting. However, there are plenty of great reasons to want to be able to differentiate Blinks. We already provided access to the 8-byte UID that is on each Blink (not yet used for shipping games), and now one can use the Blink that is seeding the game to identify itself for any reason you can think of. Here a couple of reasons you might want to use this feature:
- Your game has different roles, the piece seeding the game might be a boss of sorts and so it can start in its correct role (Flic Flop could use this...)
- Your game sets up uniquely for different numbers of Blinks (i.e. the starting tile can take charge of counting and then reporting)
- Your game piece is responsible for scorekeeping or high scores... could be helpful to know that this tile is responsible for this game
Not sure of all of the reasons, but felt like a powerful tool to include, and if we didn't get it into the BIOS, it would have been more difficult to release games in the future that utilize this feature.
Fine Tuning
There are a bunch of items that have been tweaked and tuned and may continue to be tuned as we learn how people play best, but the short list here simply included proper coding of the battery warning (which is really set to only show terribly depleted batteries, you will notice that green most likely disappears before you get a warning), and the timing of the seed game mode lasts longer so you can read instructions and not miss the window for Blinks programming.
Enjoy these updates, next release will most likely be Examples cleanup, if you'd like to contribute to the examples, reach our at [email protected]
Gold Master - BlinkOS + Launch Games
Gold Master
It's here. We've tuned the FW to work with Blinks regardless of production model and in all playable conditions. The biggest change to this release is a more robust IR communication, which works with the best of components as well as the wide range of "in-tolerance" parts that the production Blinks need to rely on.
Game updates
Included in the build is 12 games that have been released previously, however, many of the games have seen refinements that make them even more enjoyable to play.
We recommend updating all of your dev-kit Blinks to this FW, this should work with any game you've been developing as we kept the API the same and simply made the under the hood parts more resilient.
Battery update
One thing we noticed during our events was the annoyance of receiving a low battery warning during gameplay. Surely the Blink would not die during the game, and so it felt a bit aggressive to interrupt a game to say, "hey, you'll need to change me soon." The new behaviour is for the Blink to only give battery warnings on wake up and we reduced its threshold so that you will most likely notice that the green LED will be dimming before the Blink lets you know the battery is low. We want to give you the most battery life possible as well as the best experience possible.
If you find bugs in this release, please report them as issues. We want to test this FW as much as possible so we don't miss something in the production run. Looking forward to seeing what you create with the BlinkOS, and next update will surely be some updated examples, which feels long overdue.
Release Candidate - Games, Games, Games
Games, Games, Games
You guessed it, this release has all 12 launch title games ready to go in the examples folder. Yes, you can see all of the games full development history in the github repo, but this way you have them all ready to go with the SDK. They all match the master branch for each game on 9/16/2019.
All games can be found while in Arduino by going to File/Examples/03. Getting Playful/. Best practice is to load all of the games onto different Blinks, then use each one to train the others how to play. This will ensure that all Blinks are running the latest BlinkOS.
So, what games are available to play.
Designed for 6 or more Blinks
Mortals
Be the final survivor in this post-apocalyptic action game. On a dying planet, two teams battle the clock, stealing time from each other. It’s the final countdown… and watch out for the Zombies!
Berry
Blue. Red. Yellow. Make all Blinks one color on your turn or be the first to score 10 points and you win. This unique strategy game favors the clever and punishes the greedy.
Bomb Brigade
Bomb Brigade is a tense, high-stakes game of chance where players must rely on their quick reflexes and courage to survive. There is really only one rule: don’t blow up.
PUZZLE 101
Challenge yourself or work with friends to solve an endless supply of self-generating puzzles! A terrific way to break from your screen and improve your spatial reasoning skills.
WHAM!
Set up your garden in any size and shape you like, then defend it from pesky moles who are out to snack on your patch. How long can you keep the increasingly aggressive pests at bay? Show them who's garden it really is
SpeedRacer
Your car is speeding down the road to nowhere. You’ve got to keep building as fast and furiously as you can, or you’re headed for a dead end. How long can you last in this endurance challenge?
Honey
This idle puzzle game challenges you to create the most optimum hive for your bees. The right combination of flowers, worker bees, and broods will keep the hive buzzing and the queen happy.
Widgets
The Blink becomes your favorite new game accessory! Light up your game night, whether for Blinks games or not. Need to roll dice, but don't have the space? Use the dice widget. Settle the score with a coin flip. Spin your own wheel of fortune. You could even use these widgets to invent your own game!
ZenFlow
Sometimes you need to relax and bliss out at your desk. Be mesmerized by swirling colors and patterns as Blinks share their happiness. Witness emergent behaviors and find your zen.
Astro
An asteroid field rich with rare space ore awaits you. Can you collect enough to fill your cargo hold before your competition does? This action-packed space adventure will get your jets going.
Designed for 12 or more Blinks
Fracture
Fracture is a new kind of abstract territory control. Players fracture and connect the board with each turn. From a simple set of rules emerges surprisingly complex strategy.
Flic Flop
It's shuffleboard from the future! Flick your Blinks across the table to score points, and take advantage of your opponent's mistakes to further your lead. You'll need accuracy, timing, and finesse to win this kinetic tabletop game.
Release Candidate - Battery Fix
Battery Fix
In short, we found a small but very serious bug in our previous release candidate in which Blinks were not entering the low power mode correctly during cold sleep. This meant that instead of draining effectively 0 battery, they were sipping slowly away at the battery making them last <2 months. We've tested this new FW extensively and know that this fixes the battery issue. Please put this FW directly on all of your Blinks to make sure they use battery as responsible citizens in their cluster of the Blinkiverse.
TL;DR
The battery life of Blinks are dependent on 3 things:
- active play
- warm sleep
- cold sleep
Active Play
Blinks are capable on average of ~40hrs of active play. This is accomplished with 200mAh CR2032 and the games running on Blinks requiring an active use of 3.2mA - 8.2mA. Since batteries last longer when the draw is smaller, this is not a linear relationship, but we can simplify it here to arrive at reasonably good estimated lifecycles.
Warm Sleep
When Blinks time out after 10 minute of inactivity, they go into a warm sleep. Similarly, the force-sleep 6 second hold puts Blinks into warm sleep. Blinks can then be woken by a single press or attaching to active play Blinks. They remain in warm sleep for 2 minutes, which allows them to be woken by neighbors. If they are not woken from their slumber, they will enter cold sleep. Warm sleep uses ~2mA
Cold Sleep
After being put to sleep and left undisturbed, Blinks enter a cold sleep where they use next to no power whatsoever. They maintain game state and work just like warm sleep Blinks except for the fact that they can no longer be woken by neighbors. Cold sleep Blinks can only be awakened by a single press. Cold sleep uses ~0.24µA or ~0.00024mA (this is the equivalent of 0 since the shelf life of the battery itself is not rated to last this long)
Release Candidate - BlinkOS + Games
NOTE: All of your Blinks will need to be updated to this BlinkOS before game transmission works properly
This release candidate does not communicate with the previous release candidate as they speak different IR protocols. All this means is that you'll want to upload to each your Blinks once, and then only upload to one of them to continue sharing your games during development.
The following features have been added to BlinkOS
- Simultaneous Sleep
- Hello/Goodbye Animations
- Battery Monitor
- Games
Simultaneous Sleep
Since Blinks manage their own power and wake and sleep collectively when together, but only know to stay awake for 10 minutes since the last button press, this has lead to games that end up with a single Blink timing out and going to sleep or many going to sleep but not all. This is very confusing during gameplay, and shouldn't happen, so here we introduce a feature that keeps all connected tiles awake for 10 minutes from the last button press of any/all connected Blinks (i.e. in a cluster). This could also be more accurately referred to as viral awakedness since each Blink is letting its fellow Blinks know that they shouldn't go to sleep earlier than 10 min since the last button press on any other Blink. The goal here is to have Blinks awake together and Blinks go to sleep together and not have gameplay interrupted by sleep (for the Blinks that is :).
Hello/Goodbye Animations
To feel like a collective, BlinkOS now has a built in wake and sleep animation that propagates a wave for both sleep and wake. Wake should be a stretching white glow and sleep is a yawning deep blue. It feels pretty good. Could use a little adjustments to be more symmetrical, but accomplishes the collective feel of signaling wake and sleep. This way you know when a Blink just went to sleep, and you will also know when you wake one, even if the display is set to OFF.
Battery Monitor
If your CR2032 voltage drops below 2.4v the Blink will signal with 2 red flashes that it needs a new battery. It won't allow you to continue playing with that tile and so you can either replace the battery or play with one Blink down. We made the decision that it is more important for you to be playing with reliable Blinks with reliable brightness and communications which do not perform as reliably once the battery has dropped below 2.4v. Note: This is around 95% of the total battery life, as the end of the battery's life drop voltage quickly.
Games
I can't believe you read all the way to this point! I guess this is the most exciting part. Instead of having to checkout all of our GitHub repos for each of the individual games, we are including them here in the Examples folder 03. Getting Playful. 10 of the 12 games are in this release and you should be able to test them out and bring up any bugs you may find. Additionally, pointing out needed instructions beyond our written ones on the readme files are welcome feedback.
Release Candidate - Blinks OS
Blinks OS - Release Candidate
The following features have been added to the Blinks OS
- Force sleep
- Wake neighbors
- Share sketch
Force Sleep
Holding the button down on a Blink for 7+ seconds puts the Blink to sleep and also sends out a message to all contiguous Blinks to go to sleep as well. The Blink will remain in a warm sleep so it can be woken by neighboring messages (i.e. bring an awake Blink in contact with a warm sleep Blink and it will be woken immediately). After a longer period of time the Blink will enter a cold sleep, in which case it will need its button pressed to be woken.
Wake Neighbors
Playing your favorite game and frustrated by having to constantly wake Blinks? Now you can simply wake one of them to have them all wake up.
Share sketch
This is a big one. Hold down a single Blink alone (no neighbors) with the game you want to spread programmed onto it for 6 seconds. The Blink will glitter blue at which point you should release your hold. The Blink should be brought back in contact with a group of Blinks that you want to learn this game. The game will then propagate to all contiguous Blinks.
How to use this feature: Upload a program to a single Blink and now it has the ability to share that program with all other Blinks. IMPORTANT: this capability requires that all Blinks be running the latest firmware and have the bootloader required to transmit games this way. This simply means that you will need to press upload with any sketch or any number of different sketches (we recommend loading 6 of our games: Fracture, Mortals, Berry, Bomb Brigade, Puzzle 101, WHAM!) Once they are all running the latest bootloader, you no longer need to reprogram them, they can then learn any game that any other Blink knows.
The easiest way to understand this is the following:
| Blink BIOS | Game (ROM) | Game (RAM) |
|---|---|---|
| memory | < 6kb | < 6kb |
| rewritable | NO | YES |
Stronger IR Comms
Merge pull request #47 from bigjosh/dev Improve IR reliability on blinks dev kits with silicone covers
Beta Dev Kits - August 1, 2018
This release provides a couple of new conveniences
- Keyword highlighting - when using the Arduino IDE, all of the API keywords such as constants and methods will highlight, almost as
- setColorOnFace( color, face ); now matches the communications style
Next update will focus on examples
IndieCade East 2018 Game Jam - Beta API
This release is designed for the IndieCade East 2018 Game Jam, hosted at Museum of Moving Image in Queens, NY on 2/17/2018.
Beyond Tabletop Game Jam - Beta API
This release is specifically for reference to games created during the Beyond Tabletop Game Jam, hosted at NuVu Studio in Cambridge, MA on 12/15/2017.