Project update 3 of 4
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:
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.
Download the FAT filesystem template at http://bunniefoo.com/bunnie/bm2017-sd.img.gz
Plug your microSD card into a Linux machine via a USB reader
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!!!