Skip to content

Sterility Not Working As Expected #100

Description

@bigjosh

REPORTED BY @jbobrow:

Looks like I didn’t think to thoroughly test the way sterility was implemented, as I just thought to test how it is working in a number of different scenarios and realized there are some very likely problematic ones.

The desired behavior is that the Blink that is sterile can never transmit its code to another Blink (unless it is of course flashed w/ a developer publish tool). Consider the Blank running "sterile blank sketch” in the following scenario of how the Blinks currently behave, but not the desired behavior:

I have a 6-pack of Blanks, I break them out to play, they animate, look pretty and can be put to sleep. The don’t really do anything else, but they are ready to accept another game to play. I pull our ZenFlow and load it up. It transmits to all of my Blanks and then all of my Blanks are playing ZenFlow. At this point, I pick up one of my Blanks and I hold it down for 3 seconds while alone. This Blanks is running ZenFlow, since it recently learned ZenFlow, and so the Blank enters program mode. This Blank is now ready to teach other Blinks the code it knows, so I attach it and it loads onto all other Blinks and Blanks alike. This code that was shared is the “sterile blank sketch.” At this point I have a lot of Blinks and Blanks that don’t have the ability to enter program mode, so I am stuck. I have to take out a battery to return or find another Blink to program with and get out of this situation.

The desired behavior is the following: A blank that is running ZenFlow when held for 3 seconds should not enter Program mode. It should simply bypass that and go to sleep. Alternatively, if that is not possible, it should enter program mode and immediately cancel it, so there is no chance of propagation of the sterile code. Under no circumstance should someone be able to seed a sterile sketch to other Blinks.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions