Dazzler Ships

Posted by codepope on Sunday, March 7, 2021
Last Modified on Saturday, August 31, 2024

The Dazzler boards have arrived in my Development Hell. These boards, from James Bowman’s Excamera, are a continuation of the Gameduino family of devices which strapped a GPU and a Touchscreen to an Arduino to make a more than functional, graphically rich hand held games device.

With the Dazzler, James has taken the Gameduino-3X GPU and moved it to a standalone board which also has an FPGA programmed up to manage more of the work and generate an HDMI signal.

The first Dazzler boards to arrive had adaptors with the classic Arduino pin layout; you can also get the Dazzler board on its own to integrate into your own board design. I’ve been playing with these after signing up with the Crowdsupply campaign for them and using the Arduino toolchain on both Arduinos and the Adafruit Metro Express M4 and M4 Airlift.

Pico Dazzler

The latest generation of adaptors are now arriving, with the first landing for the Raspberry Pi Pico. And more are on the way for the Teensy 4.x and Feather M4 Express.

CircuitPython support

The latest improvement is that the CircuitPython support for all the Gameduino 3X devices has arrived. This lets you drive the Dazzler from CircuitPython with an uncomplicated API. Here’s some code:

import random
import bteve as eve
import time

rr = random.randrange

gd = eve.Gameduino()
gd.init()
x=gd.w/2
y=gd.h/2

while True:
    gd.Clear()
    gd.VertexFormat(2)                      # full-screen
    gd.Begin(eve.POINTS)
    gd.ColorRGB(rr(256), rr(256), rr(256))
    gd.PointSize(100)
    gd.Vertex2f(x, y)
    g1=gd.controllers()[0]
    if g1.buttons.home:
        x=gd.w/2
        y=gd.h/2
    x=x+(g1.joysticks.lx-32)//4
    y=y-(g1.joysticks.ly-32)//4
    gd.swap()
    time.sleep(0.05)

This lets you move a psychadelic circle around the screen using the Nintendo Classic Pro controller’s left joystick - and recenter the circle with the home button. That’s only scratching the surface of the capabilities though.

The low-level functions like Drawing, Bitmaps, Stencils/Masks and colour management are complemented with higher (and lower) level cmd_ functions which include drawing buttons, gauges, toggles, scrollbars, dials, progress bars, sliders and spinners and of course text.

All tied together with a micro-SD card reader for storing your graphical assets and a dual buffered display for maximum smoothness, its all quite the package. For documentation, there’s a e-book covering the Arduino API functionality which maps pretty well to the Python package too.

Bedazzled…

For the Pico, the Dazzler is a game changer. While there are RGB display boards for the Pico, there’s nothing like the Dazzler for getting HDMI 1280x720 graphics out of it. And the CircuitPython support makes it super discoverable; I’ve already found myself at the Python REPL exploring functions interactively.

You can find the various Gameduinos and Dazzlers (along with James’s splendid SPIDriver and I2CDriver) on the Excamera Store.

The featured image is a Dazzle camouflaged aircraft carrier from 1944 via Wikimedia Commons. Read more about Dazzle camouflage at the Smithsonian.