Welcome to CircuitPython!

Hello Hackaday Supercon Fans - we wanted to have a fun electronic item, that does more than just a sticker!

What you have in your hand is a Hallowing M0 Express with special thanks to Digi-Key for making it possible for 400 of these to make it to the event!


Python Powered?

Yep! This hardware comes pre-loaded with CircuitPython! CircuitPython is Adafruit's branch of MicroPython designed to simplify experimentation and education on low-cost microcontrollers. It makes it easier than ever to get prototyping by requiring no upfront desktop software downloads.

With CircuitPython you can write clean and simple Python 3 code to control hardware instead of having to use complex low-level languages like C or C++ (what Arduino uses for programming). It's great for beginners and is powerful for experts.

Simply plug the board into your computer or laptop and edit the code and files on the disk drive that appears.

What You Get

Each attendee will get a kit of the following:

This is Hallowing..this is Hallowing... Hallowing! Hallowing! Are you the kind of person who doesn't...
In Stock
This here is your standard A to micro-B USB cable, for USB 1.1 or 2.0. Perfect for connecting a PC to your Metro, Feather, Raspberry Pi or other dev-board or...
In Stock
Lithium ion polymer (also known as 'lipo' or 'lipoly') batteries are thin, light and powerful. The output ranges from 4.2V when completely charged to 3.7V. This battery...
In Stock

What Code Am I running?

On the device are images and code to get started:

  • code.py is the default code, its a slideshow that runs any 128 x 128 bitmap in the /images folder on the device.
  • slideshow_code.py is a copy of the above in case you lose it
  • qr_code.py makes the URL in the code a QR code to display, handy for your personal site or repo! Note this takes a few seconds to generate in pure python so give it some time.
  • touchslideshow_code.py is a version of the slide show that has forward and back and brightness by touching the metal teeth.

Whichever file is named code.py is the one that runs, change the name to change the program.

Once saved the device automatically restarted and runs that code!

Also included is a sample chapter from "Getting Started with Adafruit Circuit Playground Express: The Multipurpose Learning and Development Board from Adafruit" 1st Edition by Mike Barela

ONE MORE THING - there is a special discount code for attendees at hackaday supercon, it's 10% off in the Adafruit store, enjoy! check the readme file on your badge for the code!

Your HalloWing Hardware at a glance

You can get a lot more details on every part and pinout by visiting the Hallowing guide at https://learn.adafruit.com/adafruit-hallowing

A built in battery charger will keep the Lipoly topped-up while plugged into USB.

CircuitPython Quick Start

Changing the code is as easy as editing code.py in your favorite text editor.

Our recommended editor is Mu, which is great for simple projects, and comes with a built in REPL serial viewer! It is available for Mac, Windows & Linux



After the file is saved, CircuitPython will automatically reload the latest code.

Connecting to the serial port will give you access to sensor information, better error messages and an interactive CircuitPython (known as the REPL). On Windows we recommend Mu, Tera Term or PuTTY.

On Mac OSX and Linux, use Mu or 'screen' can be used from a terminal.

Your HalloWing is pre-loaded with a CircuitPython program that uses the Image SlideShow library.

If you need to re-download the files that were pre-loaded on your HalloWing, here's the repo.

Running a slideshow in CircuitPython on the HalloWing is dead easy! Here's the example code which automatically plays through all .bmp images in the /images directory on the board.

Change from when this guide was first written

To make new slideshows, Adafruit suggests following this more recent slideshow guide:

Creating Slideshows in CircuitPython

That code uses an updated version of the SlideShow library using new display drivers using the CircuitPython DisplayIO library. This makes it compatible with a wide range of displays.

Please do not use the code below if you are running CircuitPython 4 or later.

This code is only left in to show you the code for the original Hackaday Badge. Pleas follow the guide link above to make more modern slide shows with the same ease.

import board
from adafruit_slideshow import PlayBackOrder, SlideShow
import pulseio

# Create the slideshow object that plays through once alphabetically.
slideshow = SlideShow(board.DISPLAY, pulseio.PWMOut(board.TFT_BACKLIGHT),
					  folder="/images", loop=True,
					  order=PlayBackOrder.ALPHABETICAL, dwell=2.5)

while slideshow.update():

Making Images for Your Slide Show

Your images should be 128x128 pixels, 24 bit color, uncompressed BMP format only

BMPs in Windows

Microsoft Paint works really well!

Make your 128x128 image,

Save as... BMP picture

Save it to the badge filesystem /images folder as 24-bit Bitmap (*.bmp) and make sure the file name ends with .bmp as well

BMPs in Mac, Linux, etc.

There are several online image conversion websites which convert a file from one format to another. We'll show you one below but you can experiment with either other websites or Mac/Linux 3rd party image programs which may output BMP files.

We've used https://image.online-convert.com/convert-to-bmp to convert images to BMP format on the web. Take your 128x128 pixel color image file on your computer and drag/choose the file where indicated on the website.


Press the Start Conversion button below the file box.


If you need to tweak the settings, the site allows you options but it's best that you already have a color 128x128 pixel image to convert via the web.

When the conversion is done, a dialog should pop up in the browser to say where would you like to save the file (now converted with a .bmp file name extension).

Now you have a BMP file! To load onto your HalloWing, use your finder or linux file manager. Plug in your HalloWing to your computer via a good data USB cable. The board should show up as a flash drive named CIRCUITPY. Now copy the BMP into the directory on CIRCUITPY named /images. There you go, done!. You can go into the images directory and add / change / delete BMPs as you wish.

The full HalloWing guide is a great place to dive into details on your board. It will give you info on pinouts, powering the board, onboard sensors and more.

There, you'll also learn about setting up the HalloWing for use with Arduino IDE and CircuitPython.

Specialized Firmware

If you'd like to fire up the HalloWing in bootloader mode and drag on some fun, ready-to-go firmware .uf2 files, we've got you covered:

All of these projects can be customized and built from source as well if you'd like, there are details in each guide.

Find a Friend

Want to team up with one of your new found friends at Supercon and create a pair of synced eyeballs on two HalloWings? You can do it over I2C, as detailed in the Synchronized Eyes with Two HalloWings guide.

Here are a selection of case ideas for when you get in front of your 3D printer.

Full information on how to print them is contained in the respective guide linked on this page. 

Want to jump on one of the Design Lab's 3D printers and make a case for your HalloWing? Here are a couple of designs:

This guide was first published on Nov 01, 2018. It was last updated on Nov 01, 2018.