2018 Open Hardware Summit badge

Notes from the presentation by Drew Fustini (@pdp7) on the OHS18 badge at the Alternative Computing Club meeting in Chicago

7152801540053994087


What is #BadgeLife?

Screenshot from 2018-11-17 13-56-50

Motherboard article: “A History of Badgelife, Def Con’s Unlikely Obsession with Artistic Circuit Boards”

Badgelife documentary by Hackaday


2018 Open Hardware Summit at MIT

cropped-ohs2017

Here is my brief overview of the badge on stage at the Summit:


Hackaday.io project for the OHS18 badge

Screenshot from 2018-11-17 13-51-07

OSH Park and Screaming Circuits produced an electronic conference badges for the 2018 Open Hardware Summit. Hardware design by Alex Camilo based on concept from ESP trINKet by Mike Rankin. Features for the OHS18 badge: ESP32 microcontroller with built-in WiFi; E-Paper to display the badge wearer’s name; badge wearer can update the displayed text from phone, tablet or laptops. Powered by 2x AA batteries.


This project was developed by a team of wonderful people that came together on Hackaday.io, in particular, this badge could not have happened without Alex Camilo and Michael Welling!


OHS18 Badge documentation website

DsKg8H4WkAAFeB0

OHS18 Badge: MicroPython documentation

screenshot-from-2018-11-17-14-13-10 (2)

OHS18 Badge: Accelerometer demo

4936801540051902972

OHS18 Badge: Magic 8-Ball MicroPython game

Screenshot from 2018-11-17 14-23-23.png

Python REPL using the serial port

DosSfNPWwAE-ldB

To use the interactive Python prompt (REPL), press the menu button on the badge and select Serial REPL from the Available Apps menu.  The terminal emulator connected to the serial port should then display the interactive Python prompt (REPL).  You can type in MicroPython code to experiment.

MicroPython WebREPL

dqxvhfawoaal9hj (1)

he 2018 Open Hardware Summit badge runs MicroPython firmware which allows for an interactive programming experience known as the REPL:

Getting a MicroPython REPL prompt

REPL stands for Read Evaluate Print Loop, and is the name given to the interactive MicroPython prompt that you can access on the ESP8266. Using the REPL is by far the easiest way to test out your code and run commands.

There is an USB-to-serial adapter board which be used to access the REPL on the badge via the serial port.  However, a simpler option is to use the WebREPL:
webrepl-browser

Learn to Solder add-on board

41931822_10217675772634508_6864049649649451008_n (1)

The OHS18 badge also features the DefCon 26 #badgelife add-on header.  Andrew Sowa designed this OSHWA-themed Learn to Solder add-on board to connector the badge add-on header:

#badgelife add-on adapter for Adafruit LED matrix 


Programming jig to flash 300 badges

Alex Camilo created this wonderful programming jig!  Drew was able to use it to program all 300 badges and provision the names of the 150 people that pre-registered in time.  Thanks so much to Artisan’s Asylum makerspace near Boston for giving us a space to work on the badges before the Summit!

Brian Benchoff writes on Hackaday:

The Exquisite Badges Of Open Hardware Summit

The boards were made through OSH Park, and Screaming Circuits took care of the assembly. Anyone who has ever built a badge will tell you it isn’t the assembly that gets you — it’s the programming and provisioning. This is especially true since the Open Hardware Summit badge is distributed with the attendee’s names already preloaded. That’s a few hundred badges, all with unique firmware. This is a nightmare by any definition.

However, there’s always a good solution to a problem, and [Drew] from OSH Park showed me the best programming jig I’ve ever seen during the Summit pre-game at Artisan’s Asylum.

What you’re looking at is a 3D printed box loaded up with a touch-screen display, a Raspberry Pi Zero W, and a few pogo pins. This Raspberry Pi does all the heavy lifting by connecting to the Internet, pulling down the current version of the firmware, and loading that firmware onto the badge. There are a few more options thanks to the touch-screen interface, including provisioning all the badges with the names of the attendees — this can be done by reading a list of attendees and uploading the next one to the badge in the jig. All of this is wrapped up with a nice laser-cut cover that securely holds each badge exactly where it needs to be for the pogo pins to make contact.

This is, without question, the best programming jig I’ve seen. Any badge makers out there should take note: this is how you program a few hundred badges. The badge, itself, is great and just as this post is published there will be hundreds of eager hackers futzing about with this remarkable piece of hardware. If you want to check out the current progress of the badge hacking, check out the updates on Twitter


Lesson Learned:

  1. Badges should have built-in USB port:
    • USB connector makes it easy to multiple volunteers with laptops to flash firmware onto the badges in parallel, versus having just one programming jig
    • USB connector makes it easier for people attending the Summit to experiment with modifying the firmware and developing their own functionality
  2. Pretend that the deadline is 1 month before the event
    • We originally had the goal of being ready on September 1st for the September 27th conference, but we allowed ourselves to push the deadline for final firmware release to the day before the Summit.  That meant staying up all night to flash the updated firmware on to the badges
    • We should have identified the minimum feature set and simplified the functionality sooner in the design revision process
    • We should have planned that we would have 3 hardware revisions and allowed for it in the schedule


Bonus Material:

Video: E-Paper under microscope!

Video: solder paste reflow!

2018 Open Hardware Summit badge

#badgelife add-on adapter for Adafruit LED matrix

Dqu6j8vX0AAwGG4

Adapter board to attach Adafruit 8×8 LED Matrix board as #badgelife add-on (using the DC26 SAO 2×2 pin header)

KiCad design files:

OSH Park shared project:

#badgelife add-on adapter for Adafruit 8×8 LED matrix

d68231e20e8a38d08579fd6c33f80553 (1)

Order from OSH Park

MicroPython support:

 

Resources:

#badgelife add-on adapter for Adafruit LED matrix

Bring your Open Hardware Summit badge to Hackaday Supercon

Bring your Open Hardware Summit badge to Hackaday Supercon in Pasadena this weekend!

Drew Fustini will have the badge programming jig with updated firmware featuring like the MicroPython WebREPL, accelerometer demo, and Magic 8-Ball app by Steve Pomeroy

Screenshot from 2018-10-30 11-48-13.png

Drew Fustini will also have USB-to-serial adapter boards for badge to share!

dpuljnbw0aab7st1

 

Bring your Open Hardware Summit badge to Hackaday Supercon

MicroPython WebREPL on the Open Hardware Summit badge

The 2018 Open Hardware Summit badge runs MicroPython firmware which allows for an interactive programming experience known as the REPL:

Getting a MicroPython REPL prompt

REPL stands for Read Evaluate Print Loop, and is the name given to the interactive MicroPython prompt that you can access on the ESP8266. Using the REPL is by far the easiest way to test out your code and run commands.

There is an USB-to-serial adapter board which be used to access the REPL on the badge via the serial port.  However, a simpler option is to use the WebREPL:

WebREPL – a prompt over WiFi

WebREPL allows you to use the Python prompt over WiFi, connecting through a browser. The latest versions of Firefox and Chrome are supported.

For your convenience, WebREPL client is hosted at http://micropython.org/webrepl . Alternatively, you can install it locally from the the GitHub repository https://github.com/micropython/webrepl

Before connecting to WebREPL, you should set a password and enable it via a normal serial connection. Initial versions of MicroPython for ESP8266 came with WebREPL automatically enabled on the boot and with the ability to set a password via WiFi on the first connection, but as WebREPL was becoming more widely known and popular, the initial setup has switched to a wired connection for improved security:

import webrepl_setup

Follow the on-screen instructions and prompts. To make any changes active, you will need to reboot your device.

The MicroPython firmware for the badge has been updated to add WebREPL in the list of available apps.

You can order this USB to serial adapter board for the badge and then follow the instructions to build and flash the new firmware.  The WebREPL option will turn on WiFi and put the badge into AP mode.  Connect to it from your device, such as a laptop, and then connect to the badge using the WebREPL browser-based client.

Resources:

MicroPython WebREPL on the Open Hardware Summit badge

OHS18 badge: accelerometer demo, adapter board, Tindie listing

Updates for the 2018 Open Hardware Summit badge project:

MicroPython demo app for the Accelerometer

Want to use the KX122-1037 Accelerometer (datasheet) on the 2018 Open Hardware Summit badge?

USB-to-Serial adapter board

This adapter board to connects a USB-to-serial cable to the 2018 Open Hardware Summit badge.

Extra badges being sold on Tindie

The extra badges from the Summit are being sold here on Tindie as a fundraiser for the Ada Lovelace Fellowship which provides travel assistance to the Open Hardware Summit. All sales revenue will be 100% donated to the Open Source Hardware Association (OSHWA) for this purpose.

OHS18 badge: accelerometer demo, adapter board, Tindie listing

USB-to-serial adapter board for Open Hardware Summit badge

This adapter board to connects a USB-to-serial cable to the 2018 Open Hardware Summit badge.

DpulizcW0AABn7E

The badge features an ESP32 microcontroller running MicroPython firmware.  The firmware provides a Python interpreter prompt (REPL) on the serial port which allows interactive programming of the badge!

DpuljnbW0AAb7st

A previous blog post describes how to build and flash new MicroPython firmware to the badge:

 

The KiCad design files are shared on GitHub:

oshwabadge2018/adapter-board

Screenshot from 2018-10-20 02-25-11.pngThe board has been shared on OSH Park:

OSH Park: adapter board for USB-to-serial cable

Screenshot from 2018-10-18 00-02-21

Order from OSH Park

Bill of Materials (BoM)

  • Switch for programming mode
    • E-Switch EG1218
    • Slide Switch SPDT
    • Digi-Key: EG1903-ND
  • Pushbutton for reset
    • Omron B3F-1000
    • Tactile Switch SPST-NO
    • Digi-Key: SW400-ND
  • Header for FTDI usb-to-serial cable
    • TE AMP 9-146282-0-06
    • 1×6 Pin Header 0.1″ pitch
    • Digi-Key: A34253-06-ND
  • Header to connect J1 socket on badge
    • Harwin M20-9720345
    • 2×3 Pin Header 0.1″ pitch
    • Digi-Key: 952-1921-ND
  • J1 header socket on the badge
    • Harwin 952-1781-ND
    • 2×3 Header Socket 0.1″ pitch
    • Digi-Key: M20-7830346

Digi-Key shopping cart

Screenshot from 2018-10-20 02-28-43

Resources:

USB-to-serial adapter board for Open Hardware Summit badge