Setup Adafruit Circuit Playground Express for CircuitPython
We'll need to get our board setup so we can run CircuitPython code. First thing we'll need to do is connect the board to your computer with a microUSB cable. Then double-click on the reset button to put it in "UF2" boot-loader mode. The NeoPixels will turn green. The board will then show up as a USB storage device on your computer named "CPLAYBOOT".
Follow the guide below to setup the firmware, once complete, come back here and proceed.
Editing Code
You'll want to use the Mu python editor to modify the code. Mu is a simple code editor that works with the Adafruit CircuitPython boards. It's written in Python and works on Windows, MacOS, Linux and Raspberry Pi. The serial console is built right in so you get immediate feedback from your board's serial output! See the guide below to for download and setup instructions.
To use with CircuitPython, you need to first install a few libraries, into the lib folder on your CIRCUITPY drive. Then you need to update code.py with the example script.
Thankfully, we can do this in one go. In the example below, click the Download Project Bundle button below to download the necessary libraries and the code.py file in a zip file. Extract the contents of the zip file, open the directory CircuitPlayground_Christmas_Tree/ and then click on the directory that matches the version of CircuitPython you're using and copy the contents of that directory to your CIRCUITPY drive.
Your CIRCUITPY drive should now look similar to the following image:

# SPDX-FileCopyrightText: 2018 Kattni Rembor for Adafruit Industries # # SPDX-License-Identifier: MIT import time import board import neopixel # On CircuitPlayground Express, and boards with built in status NeoPixel -> board.NEOPIXEL # Otherwise choose an open pin connected to the Data In of the NeoPixel strip, i.e. board.D1 pixel_pin = board.NEOPIXEL # On a Raspberry pi, use this instead, not all pins are supported # pixel_pin = board.D18 # The number of NeoPixels num_pixels = 10 # Increase or decrease between 0 and 1 to increase or decrease the brightness of the LEDs brightness = 0.6 # The order of the pixel colors - RGB or GRB. Some NeoPixels have red and green reversed! # For RGBW NeoPixels, simply change the ORDER to RGBW or GRBW. ORDER = neopixel.GRB pixels = neopixel.NeoPixel(pixel_pin, num_pixels, brightness=brightness, auto_write=False, pixel_order=ORDER) def colorwheel(pos): # Input a value 0 to 255 to get a color value. # The colours are a transition r - g - b - back to r. # Works with RGB or RGBW LEDs. if pos < 0 or pos > 255: r = g = b = 0 elif pos < 85: r = int(pos * 3) g = int(255 - pos * 3) b = 0 elif pos < 170: pos -= 85 r = int(255 - pos * 3) g = 0 b = int(pos * 3) else: pos -= 170 r = 0 g = int(pos * 3) b = int(255 - pos * 3) return (r, g, b) if ORDER in (neopixel.RGB, neopixel.GRB) else (r, g, b, 0) def rainbow_swirl(wait): for j in range(255): for i in range(num_pixels): pixel_index = (i * 256 // num_pixels) + j pixels[i] = colorwheel(pixel_index & 255) pixels.show() time.sleep(wait) def rainbow_fill(wait): for j in range(255): for i in range(num_pixels): pixel_index = int(i + j) pixels[i] = colorwheel(pixel_index & 255) pixels.show() time.sleep(wait) def christmas_flash(duration): pixels.fill((255, 0, 0)) pixels.show() time.sleep(duration) pixels.fill((255, 255, 255)) pixels.show() time.sleep(duration) while True: for _ in range(5): christmas_flash(0.5) for _ in range(5): christmas_flash(0.1) pixels.fill((255, 0, 0)) pixels.show() time.sleep(1) rainbow_fill(0.001) # Increase the number to slow down the rainbow pixels.fill((0, 0, 0)) pixels.show() time.sleep(1) rainbow_swirl(0.001) # Increase the number to slow down the rainbow
Page last edited January 19, 2025
Text editor powered by tinymce.