Ralph Yamamoto
Published © MIT

Paw Patrol Communicator

A Wristwatch Style Paw Patrol Communicator Using M5Dial V1.1

IntermediateShowcase (no instructions)20 hours115
Paw Patrol Communicator

Things used in this project

Hardware components

M5Dial
M5Stack M5Dial
×1
M5StickC Plus2 with Watch Accessories
M5Stack M5StickC Plus2 with Watch Accessories
×1
3.7V 30mAh 301215 Lipo Battery
×1

Software apps and online services

M5Stack UiFlow2
MicroPython
MicroPython
OpenSCAD

Hand tools and fabrication machines

AnyCubic Kobra2

Story

Read more

Custom parts and enclosures

M5Dial_Base

Watch Housing for M5Dial Paw Patrol Communicator

Sketchfab still processing.

M5Dial_Strap

Adapts M5Dial_Base to mount on wrist strap from M5StickC Plus2 kit

Sketchfab still processing.

Schematics

M5Dial V1.1 Schematic

Code

paw_patrol_images.py

MicroPython
Custom Micropython script to display Paw Patrol Pup images on M5Dial. Images selected using rotary dial.
import M5
from M5 import *
from M5 import Widgets
from hardware import Rotary


# === Initialize the system ===
M5.begin()

# === Global variables ===
image_paths = [
    "/flash/res/img/milo.jpg",
    "/flash/res/img/chase.jpg",
    "/flash/res/img/everest.jpg",
    "/flash/res/img/liberty.jpg",
    "/flash/res/img/marshall.jpg",
    "/flash/res/img/rocky.jpg",
    "/flash/res/img/rubble.jpg",
    "/flash/res/img/skye.jpg",
    "/flash/res/img/zuma.jpg"
]


index = 0

# === Display first image ===
img = Widgets.Image(image_paths[index], 0, 0)

rot = Rotary()  # Initialize encoder
rot.reset_rotary_value()

# Define and use rotary value polling in loop
while True:
    M5.update()
    if rot.get_rotary_status():
        diff = rot.get_rotary_increments()
        index = (index + (1 if diff > 0 else -1)) % len(image_paths)
        img.setImage(image_paths[index])

Credits

Ralph Yamamoto
12 projects • 21 followers

Comments