Cracking the code of the ESC “Hello There!” badges

We're getting really close to the wire now but — at the time of this writing — you've still got time to throw your hat into the ring for a chance to win one of the wireless networked “Hello There!” badges that we'll be giving away at ESC Boston 2016.

Don’t forget that we will be giving the badges out at the Introducing the “Hello There!” Badge session in the ESC Engineering Theater at 10:00 a.m. on Wednesday April 13th.

Also, at 9:00 a.m. on Thursday April 14th, we'll be having our “Hello There!” Badge Meet-Up session. This is where we'll be telling you all about how to hack into the badges; we'll also be soliciting suggestions for additional games and applications we can add to our repertoire.

For the rest of this column, we're going to focus on the usage model for the first incarnation of the badge. Note that, as I pen these words, the code is still wet and sticky (I keep on having to wipe down my keyboard), so please excuse any minor changes that we may make between now and ESC Boston. Let's kick off the proceedings by reminding ourselves what the badge looks like.


(Source: Max Maxfield / Embedded.com)

The main On/Off switch is in the bottom right-hand corner. Also observe the USB-micro port located at the bottom left-hand corner (this port provides one mechanism for hacking the badge). Next up we see the Arduino-footprint headers, which can be used to attach off-the-shelf (3.3V) Arduino shields. Also observe the Reset button located just inside the bottom-left header.

In the middle, on the left-hand-side, we see the Synapse MCU/RF module, which provides all of the badge's processing and wireless networking capabilities. To the right of this we see an 8-bit DIP/DIL switch. Initially, all of these switches should be set to their Off (left) positions.

At the top of the badge we see an 8 x 8 array of LEDs. On either side of this array we find a momentary push-button; one marked 'L' and one marked 'R', indicating “Left” and “Right”, respectively.

Cunning application organization
The way the folks at Synapse — the designers of the badge — have implemented things is really rather clever. Knowing that many users won't be too familiar with Python (the language the apps are written in), they've architected the system in such a way that we can load any app into the badge as a standalone and then play with that app in isolation.



(Source: Max Maxfield / Embedded.com)

However, the way in which the badge will be presented at the show is with a bunch of apps pre-loaded, along with a “Master Controller” app that allows us to move between the individual apps as we wish.

By default, when the badge is powered up, the Master Controller automatically launches the first app. This is our ESC Scroller, which displays the message “ESC 2016.”

While in the ESC Scroller app, pressing and holding either the Left or Right button will cause the badge to display the current state of the battery (when you get close to 2.0V, it's time to start thinking about changing your batteries).

What turns you on?
Before we go any further, let's quickly return to look at the 8-bit DIP switch. Switches 1 through 6 are associated with STEM, Analog, Digital, Hardware, Software, and the IoT, respectively (don’t touch switches 7 or 8 just yet). You can set one or more of these switches to their On (right) positions to indicate that these are your areas of interest.

The first thing that will happen when you activate switches 1 through 6 is that their associated text will be appended to the end of the ESC Scroller text. Thus, if you were to activate the Digital, Hardware, and IoT switches, for example, your badge will now start scrolling “ESC 2016 … STEM … Hardware … IoT”.

By this means, everyone can tell what turns you on, tickles your fancy, and floats your boat from a surprising distance away. But there's more… let's suppose that you are wandering around and you approach another proud possessor of a “Hello There!” badge. It may be that this poor misguided fellow focuses on software. It's even possibly that (and I say this in hushed and horrified tones), he has taken the wibbly-wobbly path of analog in his career.

As you get closer, your badges will chat with each other to determine their owners' interests. Initially it seems that all is lost… but wait! Suppose turns out that this fine fellow also has an interest in the IoT. In this case, both of your badges will start displaying an animation associated with this common interest, thereby provoking great beaming smiles, hearty handshakes, and exclamations of “IoT? Well, I never… Hello There!” (FYI, the animation effect won’t be constantly triggered while you converse with a like-minded badge-wearer, but instead will appear at intervals. Also, if lots of badges are close together, the effect will be to cycle common interest animations.)

Having said all of this, if you turn Switch 8 to it’s On position, this puts you in “Antisocial Mode,” which means you can slip, slide, and slither through the conference without anyone knowing anything about you (well, apart from the fact that you are antisocial, of course).

Accessing the Master Controller
While in the ESC Scroller app, pressing and releasing both buttons simultaneously will take us up to the Master Controller app level, which will display the previously selected app — the ESC Scroller, in this case.



(Source: Max Maxfield / Embedded.com)

Yes, I know this may appear a bit cryptic at first, but having a canvas comprising only 8 x 8 pixels demands that we exercise our imaginations.

OK, remembering that we are now at the top (Master Controller) level, pressing the Right button will take us to a graphical depiction of the next app. Each time we press the Right button, we'll see a new app until, eventually, we will return to the ESC Scroller app. We can also press the Left button to go the other way around the “app ring.”

When we reach the app in which we are interested, pressing and releasing both buttons simultaneously will take us down into that app.

For the remainder of this column, we'll assume that our starting point was the ESC Scroller app, and that we are pressing the Right button to move around the app ring.

The “Enter Your Name” app
The first app to the “right” of the ESC Scroller app allows us to enter our own name or message, which will be automatically appended onto the end of the existing ESC Scroller message. This app boasts a smiley face icon as illustrated below.

(Source: Max Maxfield / Embedded.com)

Yes, this is a smiley face. Stop being so critical, for goodness sake. Pressing and releasing both buttons simultaneously (and briefly) will take you down into this app. Once you are in the app, repeatedly press the Right (or Left) buttons to traverse between the letters of the alphabet, numbers, punctuation symbols, and graphical icons. When you find a letter or whatever you're interested in, pressing and releasing both buttons simultaneously (and briefly) will select that letter and append it onto the end of your message.

Just in case you need it, selecting the left-arrow icon will delete the last letter you entered. Also note that selecting the double exclamation mark icon “!!” will cause you to exit the app and return to the Master Controller without saving any changes you've made (selecting the triple exclamation mark icon “!!!” will erase any existing name/message entry, but it won't cause you to exit the app).

Once you've entered your name/message, pressing and holding both buttons simultaneously for between one and two seconds will save your entry and return you to the Master Controller app. If you subsequently re-enter this app and start entering more characters, these will automatically be appended to the end of your existing name/message (the limit is currently 80 characters).

A cornucopia of additional apps
Originally I was planning on describing all of the remaining apps in excruciating detail, but then I thought (a) it's more fun to explore these things on your own and (b) if I don’t finish this soon and start preparing the “Quick Start Guide” to accompany the badges, then there won’t be any badges anyway. On this basis, let's briefly list the remaining apps and note any particularly interesting points.

Rock – Paper – Scissors: If two or more badge-holders select this mode, hold their badges face-up in the palms of their hands, and then make the traditional “1-2-3-Show” gestures, the badges will each randomly pick Rock, Paper, or Scissors (be generous with our iconic representations) and then communicate with each other to determine the winner.

Note that, if you don’t flick your wrist hard enough, the on-badge accelerometer may not detect your gestures. The best solution to this is to gently slap the hand holding the badge into the palm of your other hand while making the gestures.

If you see a “wriggly animation,” this means your badge is waiting for someone else to finish making their “1-2-3-Show” gestures. In the event of a draw, those folks will go again until there's a winner. Speaking of which, the winner is the one whose badge displays a happy dance.

As a bonus, if all the players set their switch 7s to their On positions, then they will be able to play the soon-to-be-legendary Rock – Paper – Scissors – Lizard – Spock (in this case, you have to make “1-2-3-4-5-Show” gestures, of course, otherwise the whole thing would be a joke).

Snake: Use the Left and Right buttons to guide the snake towards any “food” dots that appear, but be careful not to run into the walls or your reptile will become an “ex-snake.”

Rollerball: Tilt your badge to “roll the ball” around the array. What happens if you quickly move your badge in a circular motion?

Breakout: Use the Left and Right buttons to control the 3-element “paddle” at the bottom of the display. If the “ball” lands on the center of your paddle, it will bounce straight up; if it hits either edge of the paddle, it will ricochet off at an angle.

Dice: Flick your wrist to “roll the dice” and generate a random number between 1 and 6 (this number will be presented graphically as “dice spots.” What happens if one or more additional badges in close proximity are also in the dice app when you roll your dice?

Reflex Test: Click either button to blank the display and commence a random delay. As soon as something appears on the display, click either button to see your reaction time displayed in milliseconds. Click either button to go again.

Spirit Level: This little scamp uses the on-badge accelerometer to detect the current angle of the badge, which is displayed as a two-digit value that is accurate to ~1 degree.

Spectrum Analyzer: This app provides a dynamic spectrum analysis of the current activity in the surrounding ISM (Industrial, Scientific, and Medical) 2.4GHz radio frequency range. Each column represents 1/8th of the ISM spectrum, with the bottom row of pixels representing the -90dBm “noise floor.”

Robot Controller: If you are fortunate enough to win one of the “Hello There!” robots we'll be giving away at the show (see Pssst! Want a free robot? ), then this mode will allow you to control the little rascal. Simply press and hold either of the buttons and tilt your badge in the direction you wish the robot to go (the buttons act as “Dead Man Switches,” so releasing the button will cause the robot to stop in its tracks).

Are you excited yet?
Well, I don’t know about you, but I'm bouncing off the walls with excitement. I've just been playing with the snake game trying to beat my high score, but I keep on driving it into the walls.

The great thing is that these badges are designed to be hackable, so we can “tweak” the existing apps and create new apps of our own. So, once again I ask you, have you entered to win one of these little beauties?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.