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


UPDATE: this PCB design replaces the perf board version

The 2018 Open Hardware Summit 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!

This post describes how to connect an FTDI 3.3V USB to serial cable to the J1 header on the badge.  In addition to the serial console, this adapter board for the J1 header enable new MicroPython firmware to be flashed on to the badge.


First, solder a 2×3 pin header socket on to the badge at the J1.  Alternatively, a strip of 0.1″ header sockets could be cut into two 1×3 pieces.


Here is a Fritzing diagram (PDF) of how to solder this J1 adapter board onto a perf board:


Note: I re-purposed the OHS18 badge add-on proto dev board to act as a generic perf board.

The slide switch on the adapter board will allow the ESP32 to enter programming mode by connecting the IO0 pin on J1 to ground.  The push button on the adapter board will reset the board by connecting EN pin on J1 to ground.

If you have the serial port open in a terminal emulator, then you should see this after switching into programming mode and pressing the reset push button:

Screenshot from 2018-10-03 22-48-12

Build the MicroPython firmware for the ESP32 on the badge by following these directions in the GitHub repo README.

To flash the ESP32, close your terminal emulator program so that can open the serial port (which is /tty/USB0 on my Linux computer):


Switch from programming mode to serial console mode so that IO0 pin on J1 is no longer grounded.  Then open the serial port in your terminal emulator again (115200 baud, 8-N-1) and press the reset push button:


You should see the output from MicroPython firmware running.

To use the interactive Python prompt (REPL), press the menu button on the badge (the icon with pencil and paintbrush) and select Serial REPL from the Available Apps menu:

IMG_20181004_113042 (1)

The terminal emulator connected to the serial port should then display the interactive Python prompt (REPL).  You can type in MicroPython code to experiment:

Screenshot from 2018-10-04 11-39-40 (2)

Here is an exmaple that displays text on the e-paper and prints that values from the accelerometer:

import gxgde0213b1
import font16
import machine
import struct
from ohsbadge import epd
from ohsbadge import fb

epd.display_string_at(fb, 0, 0, "Welcome to OHS 2018!", font16, gxgde0213b1.COLORED)

i2c = machine.I2C(scl=machine.Pin(22), sda=machine.Pin(21))
ACCX = struct.unpack("h",i2c.readfrom_mem(30,0x6,2))
ACCY = struct.unpack("h",i2c.readfrom_mem(30,0x8,2))
ACCZ = struct.unpack("h",i2c.readfrom_mem(30,0x10,2))
print("x={0} y={1} z={2}".format(ACCX[0], ACCY[0], ACCZ[0]))

Photo of the text displayed on the e-paper:



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

One thought on “Open Hardware Summit badge: adapter board for USB-to-serial cable

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s