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.
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.
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() 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.
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.