The Dazzler, in depth

Several people have asked for a technical summary of the Gameduino 3X Dazzler, so here goes.
Please let me know if you have any questions, thanks!


All the Gameduinos are SPI devices. They have a Bridgetek GPU and a display, the two models are a 4.3" LCD and a 7" LCD.

This image was deleted by MailChimp when they shut down TinyLetter.
You connect the Gameduino 3X to an Arduino. The Bridgetek GPUs have an OpenGL-like hardware API, and The Gameduino library is a thin layer on this API. When your program clears the screen with this command:

GD.Clear();
  The Gameduino library turns it into the 32-bit instruction:
27000007
  and sends it over SPI. And so on for all the opcodes supported by the hardware. The gd2-lib library supports both Arduino and Arduino-compatible platforms, like the excellent Teensy series. This year we have been working with the CircuitPython project, adding fast Gameduino 3X support to the core library.

This image was deleted by MailChimp when they shut down TinyLetter.
Dazzler builds on all of this. Out of the box it works like the LCD based Gameduinos, except that the display output is 720p HDMI. Audio is taken from the BT815 and supplied with the HDMI signal. There's no touch protocol on HDMI itself, of course, but the Dazzler Arduino board includes two Wii-compatible sockets, so you can plug in Wii classic remotes. The Dazzler itself scans the remotes, so the gamepads are accessible over SPI just like the graphics.


Under the hood


The key difference between Dazzler and the other Gameduino 3X parts is that the Dazzler has an on-board FPGA. (The LCD Gameduinos have no on-board brains - they're a GPU plus some support chips.)
This FPGA has plenty of power for doing HDMI video and audio, plus handling extra tasks that make the Dazzler a bit more special.


Some of these "extras" are:

Handling the Wii remotes. After booting, the Dazzler's CPU (a J1 running SwapForth) continuously scans the attached Wii remotes. So to the game programmer they appear as two blocks of registers in SPI memory -- much cleaner than having to deal with dual I2C busses.

A built-in startup sequence. This shows the boot screen on the output monitor -- very useful when you first power it on. There is also a BIOS-like boot menu that lets you run diagnostics and reconfigure your Dazzler using the Wii remotes.


A special mode to turn the Dazzler into a serial console. In this mode, the Dazzler monitors a serial line at 115200 baud and draws the text on the HDMI. It's great for microcontroller status displays, and is a "no programming" way of getting big screen output.


But that's not all. Every external pin on the Dazzler module connects to the FPGA. So any output interface you can imagine can be implemented in the FPGA fabric.

So for example 8-bit computer builders can add the Dazzler as a graphics peripheral, and it can interface as a proper 8-bit device on the 6502 or Z80 IO bus. The FPGA works as the "logic glue", so all that's required are some 5V level shifters.

Another idea  is a stand-alone presentation box. It would be instant-on, and have one job: displaying slides on the HDMI output. Imagine no more laptop flakery before every presentation! Using the Dazzler and an IR receiver, it should be quite straightforward to make something rock solid.

Another exciting idea is to use the Dazzler to make a stand-alone computer. With the addition of a CPU, keyboard and mouse, you get a fully-self contained computer which runs an interactive language of your choice. Like CircuitPython, Forth, Lua, Javascipt or even BASIC. Quite a few people have emailed me about this -- seems that the idea of a small "distraction free" self-contained computer appeals to a lot of us.

FAQ


Can you do 1080p or 4K?
The limiter is the clock speed of the BT815 chip. Its maximum frequency
limits it to 720p. However, the Bridgetek EVE chips have always
had high-quality antialiasing, so its output looks
surprisingly good at 720p.
How much memory is on the board?
  In the FPGA, 64 Kbytes of blockRAM.  In the BT815, 1Mbyte of graphics RAM.
Each has an 8 Mbyte flash chip attached on a high-bandwidth a interface.
What about capacitive touch signals?
The four signal are routed from the BT815 to the edge of the board,
so you can connect an external touch panel.
What's the pinout?
I'm still finalizing the boards, but it should be ready to publish in a couple of weeks.
The Dazzler module will be available as a part for CADsoft Eagle and KiCAD.
Thanks for reading. There will be some more video teasers next week.