Burning Man 2017 Blinky Badge

Hello everyone! Burning Man starts in about six weeks, so it’s time
for an update on your blinky badge.

The good news is that the badges have finished production, and are
being prepared for shipment to Crowd Supply as I write this. The last
hurdle – and a major one – is clearing customs. I’ve had a string of
customs problems since the Trump administration came in, so I’m more
than a little worried the shipment will get bounced at the
border. This is part of the reason I pushed the factory hard to finish
production six full weeks before the burn. Wish me luck!

Production yield was good enough that there’s a badge for every
backer, plus hopefully sufficient spares to service any irregularities
or damaged units that might make their way through the remainder of
the supply chain.

The bad news – well, not bad news, perhaps expected but inconvenient
news – is that you’ll want to update the firmware on your badges. As
in 2015, I will be bringing the production tester to the playa, so
updating your badge will consist of:

Finding the tester at The Institute camp (4:00 and Esplanade) – it is the orange box with a clear plexi lid labeled “BM2017 Test Fixture” in the photo above

Plugging in USB power cable

Flipping the red toggle clamp

Pressing the green button

Waiting a few seconds until the blue light turns off; the badge
should reboot automatically. You can check the git version under
the “Settings” submenu

My apologies to the remote camps – I sent a couple extra badges to
the support managers as a pre-apology for the inconvenience of having
to make the trek and possibly have to interact with phagelings at The
Institute camp.

Note that the firmware as-shipped is usable, so you can go through the
burn without an update. However, the main issue that’s improved by the
firmware update is a bug in the radio receive FIFO. This bug would
cause the FIFO to jam if a corrupt packet length header was
received. I didn’t see this problem until I had a half dozen badges
running at the same time and had packets stomping on each other with
some regularity. The good news is the receive FIFO jam clears itself
every couple seconds thanks to a mode switch for transmitting a
location ping, but the bug makes blinky-sex a bit frustrating and
unreliable if there’s a lot of people around; the receive FIFO of your
mate will tend to be jammed by the surrounding noise.

So – if you want an easier time getting laid, update your badge (and
get your mate to update theirs too). But if you plan to turn on
anonymous mode the entire time and/or be celibate at Burning Man, you
can skip the update.

Other improvements in the update include a much larger free memory
pool, so you can see and track more friends; adjustment to transmit
power during sex, so as to avoid receiver front-end overload in case
you are too close (within a foot or so) of your mate (which causes sex
to be less reliable, ironically, if you’re too close to each other –
sometimes bigger isn’t better); a subtle fix to the “oscilloscope”
animation in the default mode; the addition of a “beta” feature which
allows you to record 5 minute loops of audio to an SD card; and the
removal of the “marble” app, which was necessary to make space to
install the audio recording app.

The audio loop recording feature is definitely in beta – it’s very
quirky, the UI is uninintuitive, and to listen to the audio you’ll
need to have a laptop on-playa. Don’t expect great things of it.
If you don’t understand the following instructions on how to try
this feature out, you probably shouldn’t be trying it; bad things
might happen.

But if you are ready to do some beta testing in the dust, follow these
instructions:

Acquire an SD card that can support continuous write streaming.
Crappy/fake/older/heavily used cards will not be able to support
continuous write streaming because they will have to pause frequently
to erase, trim, or re-allocate bad/worn out disk sectors.

Extract the template onto an SD card using this incantation on a Linux machine:

zcat bm2017-sd.img.gz | sudo dd of=/dev/sdX

Where /dev/sdX is the mount point of your SD card. Note that it’s not
/dev/sdX1, it’s /dev/sdX – this operation needs to overwrite the
partition table too. Once you’re done, no matter the original capacity
of the drive, it will show up as a 128MiB card with the volume label
BM2017.

Note if you’re not sure what a mount point is, don’t try this command,
because if you get it wrong, you’ll end up destroying your hard drive
instead of initializing your SD card.

Once you’ve prepped the SD card, you can load it into your badge and
use the recording app. You’ll be offered the ability to record a loop
into one of 6 WAV files, which you can copy off the card and listen to
later. The recording format is 16-bit mono, 32kHz WAV. So it’s
lossless and broadly compatible, but a slightly slower sampling rate
than CD quality (but the same spectral quality as a typical MP3).

The reason you have to initialize the SD card with a disk image is
that the badge doesn’t understand filesystems. I didn’t want to write
and test that code, so it just dumps the audio to a fixed set of block
offsets on the disk. So if the WAV files are not at exactly the
prescribed offsets, things will be very broken. This also means as you
extract data from the card, don’t delete or modify the files. If you
do, it’ll relocate their offsets and stuff will stop working – even
if you give them the exact same name as before.

Just copy the files off, and re-insert the card into your badge to
record over the existing WAV files.

If you hate how badly this feature is implemented: this wasn’t
promised as part of the campaign, and you paid about $0.20 for the
empty SD card holder + LED to provision the option for the feature. If
you’re mad about the $0.20, I’ll find you a new paradigms (sic) to
make up for it. Most of the effort (and risk) behind this feature was
in the firmware – glitch-free streaming of audio is difficult on a
100MHz CPU with 24k of RAM that’s also bitbanging an LED string,
rendering a frame buffer, managing a radio and other real-time
sensors. And it doesn’t help that the CPU has an erratum in the DMA
engine which makes offloading the copy of asynchronous, concurrent
data streams unreliable. In retrospect, I bit off more than I could
chew in trying for this feature, so a little indigestion is expected.

But! You will get a badge with the features promised in the campaign,
assuming the Trump administration is willing to cooperate with the
import of such indie hippie technology. I hope it keeps you safe at
night and brings you lots of love and positive vibes as you wind your
way through the cool crisp evening air, in search of your favorite art
car…

PS: Don’t forget to bring a charger and a microUSB cable for your badge!!!