# Cartoon Character Clock

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/135/286/medium800/lcds___displays_cartoon_clock_hero.png?1739405717)

https://youtu.be/AKKWfvOVaks?si=oSc-6TATvNbzYD0_

The [GC9A01A round displays](https://www.adafruit.com/product/6178) are perfect for displaying a clock face. This fun clock uses the [Display Analog Clock library](https://github.com/adafruit/Adafruit_CircuitPython_Display_AnalogClock) along with some customized assets [inspired by an early 20th-century public domain cartoon](https://web.law.duke.edu/cspd/mickey/). The arms act as the hour and minute hands of the clock, rotating around to point at the different numbers.

The speaker on top plays jingles from the cartoon. It can be configured to play hourly like a chime, or at a specific time as an alarm. The&nbsp;[QTPY ESP32-S2](https://www.adafruit.com/product/5325)'s WiFi connection allows the clock to sync with online NTP servers.

## Parts
### Adafruit QT Py ESP32-S2 WiFi Dev Board with STEMMA QT

[Adafruit QT Py ESP32-S2 WiFi Dev Board with STEMMA QT](https://www.adafruit.com/product/5325)
What has your favorite Espressif WiFi microcontroller, comes with&nbsp;[our favorite connector - the STEMMA QT](http://adafruit.com/stemma), a chainable I2C port, and has lots of Flash and RAM memory for your next IoT project? What will make your next IoT project flyyyyy? What a...

In Stock
[Buy Now](https://www.adafruit.com/product/5325)
[Related Guides to the Product](https://learn.adafruit.com/products/5325/guides)
![Angled shot of small square purple dev board.](https://cdn-shop.adafruit.com/640x480/5325-12.jpg)

### Adafruit 1.28" 240x240 Round TFT LCD Display with MicroSD

[Adafruit 1.28" 240x240 Round TFT LCD Display with MicroSD](https://www.adafruit.com/product/6178)
'Round these parts we enjoy unusually-shaped displays. And this one certainly fits the description - it's a 1.28" diagonal TFT that comes in a round shape and contains a high density 220 ppi, 240x240 pixel RGB display with full-angle viewing. It _looks_ a lot like our <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/6178)
[Related Guides to the Product](https://learn.adafruit.com/products/6178/guides)
![Video of a round TFT display assembled onto a breadboard with a microcontroller. The TFT shows a blinking eyeball animation.](https://cdn-shop.adafruit.com/product-videos/640x480/6178-04.jpg)

### Adafruit EYESPI BFF for QT Py or Xiao - 18 Pin FPC Connector

[Adafruit EYESPI BFF for QT Py or Xiao - 18 Pin FPC Connector](https://www.adafruit.com/product/5772)
Our QT Py boards are a great way to make very small microcontroller projects that pack a ton of power - and now we have a way for you to add a small, colorful, and bright display to any project.

Our most recent [display...](https://www.adafruit.com/?q=eyespi&sort=BestMatch)

In Stock
[Buy Now](https://www.adafruit.com/product/5772)
[Related Guides to the Product](https://learn.adafruit.com/products/5772/guides)
![Adafruit EYESPI BFF for QT Py or Xiao - 18 Pin FPC Connector.](https://cdn-shop.adafruit.com/640x480/5772-00.jpg)

### Adafruit I2S Amplifier BFF Add-On for QT Py and Xiao

[Adafruit I2S Amplifier BFF Add-On for QT Py and Xiao](https://www.adafruit.com/product/5770)
Our QT Py boards are a great way to make very small microcontroller projects that pack a ton of power - and now we have a way for you to add an I2S 3 Watt amplifier, for high quality audio playback,&nbsp;that can fit on the back of your miniature dev board. It uses just three GPIO pins that do...

In Stock
[Buy Now](https://www.adafruit.com/product/5770)
[Related Guides to the Product](https://learn.adafruit.com/products/5770/guides)
![Adafruit I2S Amplifier BFF Add-On for QT Py and Xiao.](https://cdn-shop.adafruit.com/640x480/5770-00.jpg)

### Speaker - 40mm Diameter - 4 Ohm 5 Watt

[Speaker - 40mm Diameter - 4 Ohm 5 Watt](https://www.adafruit.com/product/3968)
Hear the good news! This speaker&nbsp;is a great addition to any audio project where you need a&nbsp;4 Ohm impedance and 3W or less of power.

At **40mm diameter** it has a more square-ish shape, but a smaller face. Sound quality and volume are nicely sandwiched between our...

In Stock
[Buy Now](https://www.adafruit.com/product/3968)
[Related Guides to the Product](https://learn.adafruit.com/products/3968/guides)
![Angled Shot of the Speaker - 40mm Diameter - 4 Ohm 3 Watt.](https://cdn-shop.adafruit.com/640x480/3968-03.jpg)

### Stacking Headers for Raspberry Pi Pico - 2 x 20 Pin

[Stacking Headers for Raspberry Pi Pico - 2 x 20 Pin](https://www.adafruit.com/product/5582)
These two&nbsp; **Stacking**** &nbsp;Headers**&nbsp;alone are, well, lonely. But pair them with the&nbsp;[Raspberry Pi Pico](https://www.adafruit.com/category/875), and you're in business!

What do they do? They stack. Put the headers through your...

Out of Stock
[Buy Now](https://www.adafruit.com/product/5582)
[Related Guides to the Product](https://learn.adafruit.com/products/5582/guides)
![Angled shot of two 20-pin stacking headers.](https://cdn-shop.adafruit.com/640x480/5582-00.jpg)

### Molex PicoBlade 2-pin Cable - 200mm

[Molex PicoBlade 2-pin Cable - 200mm](https://www.adafruit.com/product/3922)
When 0.1" is too big, and JST PH's too chunky, the ultra-slim "PicoBlade" is a reliable alternative. These are only 1.25mm pitch, but have a nice clicky connection.

This cable is nice and long, 200mm in fact. It's got both small form factor (won't take up a lot...

In Stock
[Buy Now](https://www.adafruit.com/product/3922)
[Related Guides to the Product](https://learn.adafruit.com/products/3922/guides)
![Molex Pico Blade 2-pin Cable pigtail ](https://cdn-shop.adafruit.com/640x480/3922-05.jpg)

### EYESPI Cable - 18 Pin 100mm long Flex PCB (FPC) A-B type

[EYESPI Cable - 18 Pin 100mm long Flex PCB (FPC) A-B type](https://www.adafruit.com/product/5239)
Connect this to that when a 18-pin FPC connector is needed. This 25 cm long cable is made of a flexible PCB. It's A-B style which means that pin one on one side will match with pin one on the other side. How handy!

<a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/5239)
[Related Guides to the Product](https://learn.adafruit.com/products/5239/guides)
![Angled shot of a EYESPI Cable - 18 Pin 100mm long Flex PCB (FPC) A-B type. ](https://cdn-shop.adafruit.com/640x480/5239-00.jpg)

### Part: USB Type A to Type C Cable
quantity: 1
Approx 1 meter / 3 ft long
[USB Type A to Type C Cable](https://www.adafruit.com/product/4474)

# Cartoon Character Clock

## 3D Printing

### 3D Printed Box

STL files for 3D printing will need to be oriented for print using either FDM or SLS machines.&nbsp;Parts were built with PLA filament.&nbsp;

STL file for printing may be downloaded using the link below.

The box was sliced with CURA using the settings below

- PLA filament 205c extruder
- 0.35 layer height
- No supports

![lcds___displays_3dprint_box_front_angle.png](https://cdn-learn.adafruit.com/assets/assets/000/135/246/medium640/lcds___displays_3dprint_box_front_angle.png?1739286924)

![lcds___displays_3dprint_box_top_angle.png](https://cdn-learn.adafruit.com/assets/assets/000/135/247/medium640/lcds___displays_3dprint_box_top_angle.png?1739286945)

[round_eyespi_display_box.stl](https://cdn-learn.adafruit.com/assets/assets/000/135/248/original/round_eyespi_display_box.stl?1739287153)
## Original Design File

The box was designed using [OpenScad](https://openscad.org/), find the source code for it below.

```auto
wall_thickness = 1.6;
short_wall_height = 25;

difference(){
    
    cube([50+(wall_thickness*2),50+(wall_thickness*2),42+1], center=true);
    translate([0,0,1]){
        cube([50,50,42+1], center=true);
    }
    
    translate([0,20,0])
    rotate([90,0,0]){
        cylinder(r=36/2, h=30, center=true, $fn=80);
    } 
    
    translate([
        -10,
        -(50+(wall_thickness*2))/2 + 9/2 + 4,
        -(42+1)/2 + 18/2 + 1]){
    
        hull(){
            translate([0,0,-4.5])
            rotate([0,90,])
            cylinder(r=9/2, h=40, center=true, , $fn=30);
            
            translate([0,0,4.5])
            rotate([0,90,0])
            cylinder(r=9/2, h=40, center=true, $fn=30);
        }
        //cube([40,9,18], center=true);
    }
}


translate([-(50+(wall_thickness*2))/2 + 40/2,
    ((50+(wall_thickness*2))/2) - wall_thickness/2 - 8,
    -(43/2)+(short_wall_height/2)])
cube([40,wall_thickness,short_wall_height], center=true);


translate([(50+(wall_thickness*2))/2 - 40/2,
    ((50+(wall_thickness*2))/2) - wall_thickness/2 - 8 - 4,
    -(43/2)+(short_wall_height/2)])
cube([40,wall_thickness,short_wall_height], center=true);


/*
translate([0,-5,0])
cube([22, 32, 18], center=true);
*/
```

# Cartoon Character Clock

## Assembly

The QT Py, BFFs, and EYESPI display make this project easy to assemble. The only soldering required is the headers on the BFFs and QT Py, and the molex picoblade connector wires to the speaker.

## Solder Headers

First solder the following header types to the BFFs and QT Py. Make sure that you have the appropriate header paired with the correct board and that the header is facing the proper direction relative to the board. We [have a learn guide](https://learn.adafruit.com/how-to-solder-headers/overview) that covers soldering headers if you're new to the process or want a refresher.

- QT Py ESP32-S2 - Standard male header pins
- I2S Audio BFF - Stacking female header pins
- EYESPI BFF - Standard female header pins

### QT Py ESP32-S2

Standard male header with the pins going down on the side opposite the USB-C connector.

![lcds___displays_qtpy_top_angle.png](https://cdn-learn.adafruit.com/assets/assets/000/135/084/medium640/lcds___displays_qtpy_top_angle.png?1738964376)

![lcds___displays_qtpy_top.png](https://cdn-learn.adafruit.com/assets/assets/000/135/085/medium640/lcds___displays_qtpy_top.png?1738964400)

![lcds___displays_qtpy_bottom.png](https://cdn-learn.adafruit.com/assets/assets/000/135/086/medium640/lcds___displays_qtpy_bottom.png?1738964432)

### I2S Audio BFF

Stacking female header with the female header on the opposite side of the board from the speaker connection.

![lcds___displays_audiobff_top_angle.png](https://cdn-learn.adafruit.com/assets/assets/000/135/079/medium640/lcds___displays_audiobff_top_angle.png?1738963634)

![lcds___displays_audiobff_top.png](https://cdn-learn.adafruit.com/assets/assets/000/135/080/medium640/lcds___displays_audiobff_top.png?1738963669)

![lcds___displays_audiobff_bottom.png](https://cdn-learn.adafruit.com/assets/assets/000/135/081/medium640/lcds___displays_audiobff_bottom.png?1738963714)

### EYESPI BFF

Standard female header with the female header on the opposite side of the board from the EYESPI ribbon cable connector.

![lcds___displays_eyespibff_top_angle.png](https://cdn-learn.adafruit.com/assets/assets/000/135/218/medium640/lcds___displays_eyespibff_top_angle.png?1739229732)

![lcds___displays_eyespibff_top.png](https://cdn-learn.adafruit.com/assets/assets/000/135/219/medium640/lcds___displays_eyespibff_top.png?1739229752)

![lcds___displays_eyespibff_bottom.png](https://cdn-learn.adafruit.com/assets/assets/000/135/220/medium640/lcds___displays_eyespibff_bottom.png?1739229769)

## Solder Speaker Connector

&nbsp;

Strip an additional 1/4" or so of the insulation off the ends of the picoblade molex connector wires. Then loop the stripped wire sections through the holes on the speaker, fold it back on itself and solder the connection.&nbsp;

![lcds___displays_speaker_connector_solder.png](https://cdn-learn.adafruit.com/assets/assets/000/135/221/medium640/lcds___displays_speaker_connector_solder.png?1739230888)

![lcds___displays_speaker_connection_full.png](https://cdn-learn.adafruit.com/assets/assets/000/135/222/medium640/lcds___displays_speaker_connection_full.png?1739230912)

## Connect Speaker & Display
### Speaker

Connect the picoblade molex connector to the Audio BFF.

![lcds___displays_audiobff_speaker_connector.png](https://cdn-learn.adafruit.com/assets/assets/000/135/229/medium640/lcds___displays_audiobff_speaker_connector.png?1739231341)

![lcds___displays_audiobff_speaker_connector_full.png](https://cdn-learn.adafruit.com/assets/assets/000/135/230/medium640/lcds___displays_audiobff_speaker_connector_full.png?1739231381)

### Display

First you must carefully flip up the dark grey flap that secures the ribbon. Gently slip your fingernail or a small flat head screw driver under it, then carefully pry upward. The flap is delicate so be careful, it should not require much force once you've got something up underneath it.

- Connect one end of the EYESPI ribbon cable to the EYESPI BFF.&nbsp;
- Connect the other end of the EYESPI ribbon cable to the GC9A01A breakout.

Both connections should have the blue tab facing upward.&nbsp;Insert the ribbon cable, then push down the flap to secure it.

![lcds___displays_eyespibff_ribbon_connected.png](https://cdn-learn.adafruit.com/assets/assets/000/135/231/medium640/lcds___displays_eyespibff_ribbon_connected.png?1739231711)

![lcds___displays_gc9a01a_ribbon_connected.png](https://cdn-learn.adafruit.com/assets/assets/000/135/232/medium640/lcds___displays_gc9a01a_ribbon_connected.png?1739231729)

![lcds___displays_eyespibff_ribbon_display_full.png](https://cdn-learn.adafruit.com/assets/assets/000/135/233/medium640/lcds___displays_eyespibff_ribbon_display_full.png?1739231751)

## Final Assembly
### Stack QT Py & BFFs

Connect the QT Py male header pins to the stacking female headers on the Audio BFF. Connect the standard female header pins on the EYESPI BFF to the stacking header pins on the Audio BFF.&nbsp;

The final stack should have the QT Py with its USB C connector face up on one side, and the ribbon cable connector on the EYESPI BFF facing up on the opposite side. The audio BFF with red and black wires coming out is in the middle.

![lcds___displays_final_assemble_fullstack_qtpy_side.png](https://cdn-learn.adafruit.com/assets/assets/000/135/234/medium640/lcds___displays_final_assemble_fullstack_qtpy_side.png?1739232853)

![lcds___displays_final_assemble_fullstack_eyespibff_side.png](https://cdn-learn.adafruit.com/assets/assets/000/135/235/medium640/lcds___displays_final_assemble_fullstack_eyespibff_side.png?1739232870)

![lcds___displays_final_assemble_fullstack_all.png](https://cdn-learn.adafruit.com/assets/assets/000/135/236/medium640/lcds___displays_final_assemble_fullstack_all.png?1739232897)

### Place into box

Carefully place the display into its slot at the front of the box, feeding the EYESPI ribbon cable down into its channel made by the two offset walls.

Set the QT Py and BFF stack into the open space behind the offset walls with the USB C connector pointing towards the USB Cable hole cut out of the side of the box. Plug in your desired USB C cable to power the project, feeding it through the hole.

Tuck the any extra speaker wire into the box and set the speaker on top of the QT Py and BFF stack.

![lcds___displays_box_display_qtpy_light.png](https://cdn-learn.adafruit.com/assets/assets/000/135/249/medium640/lcds___displays_box_display_qtpy_light.png?1739287924)

![lcds___displays_box_final.png](https://cdn-learn.adafruit.com/assets/assets/000/135/250/medium640/lcds___displays_box_final.png?1739288047)

# Cartoon Character Clock

## Project Setup

Are you new to using CircuitPython? No worries,&nbsp;[there is a full getting-started guide here](https://learn.adafruit.com/welcome-to-circuitpython "Welcome to CircuitPython").

Plug the device into your computer with a known good USB cable (not a charge-only cable). The device will appear to your computer in File Explorer or Finder (depending on your operating system) as a flash drive named&nbsp; **CIRCUITPY**. If the drive does not appear, you can&nbsp;[install CircuitPython](https://learn.adafruit.com/welcome-to-circuitpython/installing-circuitpython)&nbsp;on your device and then return here.

Download the project files with the Download Project Bundle button below.&nbsp;Unzip the file and copy/paste the&nbsp; **code.py** &nbsp;and other project files to your&nbsp; **CIRCUITPY** &nbsp;drive using File Explorer or Finder (depending on your operating system).

## Connect to WiFi

In order to communicate with the NTP servers your CircuitPython device needs to be connected to the internet. The easiest way to do this is to include your WiFi network credentials in a&nbsp; **settings.toml** file. If that file doesn't exist, then create it. Add these entries to the file and fill in the details for your own WiFi network. See [this guide page](https://learn.adafruit.com/pico-w-wifi-with-circuitpython/create-your-settings-toml-file) for more info about creating the **settings.toml** file

```auto
CIRCUITPY_WIFI_SSID="network_name"
CIRCUITPY_WIFI_PASSWORD="network_password"
```

Once that file is saved reboot your device and it will automatically connect to WiFi.

## Drive Structure

After copying the files, your drive should look like the listing below. It can contain other files as well, but must contain these at a minimum.

![CIRCUITPY](https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/folder-images/Cartoon_Character_Clock.png?raw=true )

## Code

The **code.py** for the project is shown below.

There are 3 variables near the top which you can modify to change the clocks behavior.

- `UTC_OFFSET` - Set it to a negative or positive whole number to shift the time by relative to UTC.
- `HOURLY_CHIME` - Set it to `True` to enable the chime and `False` to disable.
- `ALARM_TIME` - Set it to None to disable the alarm, or a tuple containing hour and minute values for the alarm to go off at. These are in the local time after the `UTC_OFFSET` has been applied.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Cartoon_Character_Clock/code.py


## Featured Products

### Adafruit QT Py ESP32-S2 WiFi Dev Board with STEMMA QT

[Adafruit QT Py ESP32-S2 WiFi Dev Board with STEMMA QT](https://www.adafruit.com/product/5325)
What has your favorite Espressif WiFi microcontroller, comes with&nbsp;[our favorite connector - the STEMMA QT](http://adafruit.com/stemma), a chainable I2C port, and has lots of Flash and RAM memory for your next IoT project? What will make your next IoT project flyyyyy? What a...

In Stock
[Buy Now](https://www.adafruit.com/product/5325)
[Related Guides to the Product](https://learn.adafruit.com/products/5325/guides)
### Adafruit 1.28" 240x240 Round TFT LCD Display with MicroSD

[Adafruit 1.28" 240x240 Round TFT LCD Display with MicroSD](https://www.adafruit.com/product/6178)
'Round these parts we enjoy unusually-shaped displays. And this one certainly fits the description - it's a 1.28" diagonal TFT that comes in a round shape and contains a high density 220 ppi, 240x240 pixel RGB display with full-angle viewing. It _looks_ a lot like our <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/6178)
[Related Guides to the Product](https://learn.adafruit.com/products/6178/guides)
### Adafruit EYESPI BFF for QT Py or Xiao - 18 Pin FPC Connector

[Adafruit EYESPI BFF for QT Py or Xiao - 18 Pin FPC Connector](https://www.adafruit.com/product/5772)
Our QT Py boards are a great way to make very small microcontroller projects that pack a ton of power - and now we have a way for you to add a small, colorful, and bright display to any project.

Our most recent [display...](https://www.adafruit.com/?q=eyespi&sort=BestMatch)

In Stock
[Buy Now](https://www.adafruit.com/product/5772)
[Related Guides to the Product](https://learn.adafruit.com/products/5772/guides)
### Adafruit I2S Amplifier BFF Add-On for QT Py and Xiao

[Adafruit I2S Amplifier BFF Add-On for QT Py and Xiao](https://www.adafruit.com/product/5770)
Our QT Py boards are a great way to make very small microcontroller projects that pack a ton of power - and now we have a way for you to add an I2S 3 Watt amplifier, for high quality audio playback,&nbsp;that can fit on the back of your miniature dev board. It uses just three GPIO pins that do...

In Stock
[Buy Now](https://www.adafruit.com/product/5770)
[Related Guides to the Product](https://learn.adafruit.com/products/5770/guides)
### Speaker - 40mm Diameter - 4 Ohm 5 Watt

[Speaker - 40mm Diameter - 4 Ohm 5 Watt](https://www.adafruit.com/product/3968)
Hear the good news! This speaker&nbsp;is a great addition to any audio project where you need a&nbsp;4 Ohm impedance and 3W or less of power.

At **40mm diameter** it has a more square-ish shape, but a smaller face. Sound quality and volume are nicely sandwiched between our...

In Stock
[Buy Now](https://www.adafruit.com/product/3968)
[Related Guides to the Product](https://learn.adafruit.com/products/3968/guides)
### Stacking Headers for Raspberry Pi Pico - 2 x 20 Pin

[Stacking Headers for Raspberry Pi Pico - 2 x 20 Pin](https://www.adafruit.com/product/5582)
These two&nbsp; **Stacking**** &nbsp;Headers**&nbsp;alone are, well, lonely. But pair them with the&nbsp;[Raspberry Pi Pico](https://www.adafruit.com/category/875), and you're in business!

What do they do? They stack. Put the headers through your...

Out of Stock
[Buy Now](https://www.adafruit.com/product/5582)
[Related Guides to the Product](https://learn.adafruit.com/products/5582/guides)
### Molex PicoBlade 2-pin Cable - 200mm

[Molex PicoBlade 2-pin Cable - 200mm](https://www.adafruit.com/product/3922)
When 0.1" is too big, and JST PH's too chunky, the ultra-slim "PicoBlade" is a reliable alternative. These are only 1.25mm pitch, but have a nice clicky connection.

This cable is nice and long, 200mm in fact. It's got both small form factor (won't take up a lot...

In Stock
[Buy Now](https://www.adafruit.com/product/3922)
[Related Guides to the Product](https://learn.adafruit.com/products/3922/guides)
### EYESPI Cable - 18 Pin 100mm long Flex PCB (FPC) A-B type

[EYESPI Cable - 18 Pin 100mm long Flex PCB (FPC) A-B type](https://www.adafruit.com/product/5239)
Connect this to that when a 18-pin FPC connector is needed. This 25 cm long cable is made of a flexible PCB. It's A-B style which means that pin one on one side will match with pin one on the other side. How handy!

<a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/5239)
[Related Guides to the Product](https://learn.adafruit.com/products/5239/guides)

## Related Guides

- [Adafruit QT Py ESP32-S2 and QT Py ESP32-S2 with uFL Antenna](https://learn.adafruit.com/adafruit-qt-py-esp32-s2.md)
- [Adafruit I2S Amplifier BFF](https://learn.adafruit.com/i2s-amplifier-bff.md)
- [Adafruit EYESPI BFF](https://learn.adafruit.com/adafruit-eyespi-bff.md)
- [Adafruit 1.28" 240x240 Round TFT LCD](https://learn.adafruit.com/adafruit-1-28-240x240-round-tft-lcd.md)
- [Asteroid Tracker](https://learn.adafruit.com/asteroid-tracker.md)
- [CircuitPython Web Workflow Code Editor Quick Start](https://learn.adafruit.com/getting-started-with-web-workflow-using-the-code-editor.md)
- [QT Py S2 Round Display Compass](https://learn.adafruit.com/qt-py-s2-round-display-compass.md)
- [Scrolling Countdown Timer](https://learn.adafruit.com/scrolling-countdown-timer.md)
- [LED Matrix Alarm Clock](https://learn.adafruit.com/led-matrix-alarm-clock.md)
- [Traffic Light Conference Badge](https://learn.adafruit.com/traffic-light-conference-badge.md)
- [Audio Synthesis with CircuitPython synthio](https://learn.adafruit.com/audio-synthesis-with-circuitpython-synthio.md)
- [QT Py CH32V203 eInk / ePaper Daily Calendar and Clock](https://learn.adafruit.com/ch32v203-eink-epaper-calendar-and-clock.md)
- [Raspberry Pi Azure IoT Hub Dashboard with CircuitPython](https://learn.adafruit.com/raspberry-pi-iot-dashboard-with-azure-and-circuitpython.md)
- [IoT Moon Phase Guide](https://learn.adafruit.com/moon-phase.md)
- [DeviceScript, TypeScript for Microcontrollers](https://learn.adafruit.com/devicescript.md)
- [PlayStation Spinner Controller](https://learn.adafruit.com/playstation-spinner-controller.md)
- [Adafruit ENS160 MOX Gas Sensor](https://learn.adafruit.com/adafruit-ens160-mox-gas-sensor.md)
