Adafruit PyGamer for MakeCode Arcade, CircuitPython or Arduino
What fits in your pocket, is fully Open Source, and can run CircuitPython, MakeCode Arcade or Arduino games you write yourself? That's right, it's the Adafruit PyGamer! We wanted to make an entry-level gaming handheld for DIY gaming, and maybe a little retro-emulation. It's not the fastest and best of everything but it is an all-in-one dev board with a lot of possibilities!
The PyGamer is powered by our favorite chip, the ATSAMD51, with 512KB of flash and 192KB of RAM. We add 8 MB of QSPI flash for file storage, handy for images, fonts, sounds, or game assets.
On the front you get a 1.8" 160x128 color TFT display with dimmable backlight - we have fast DMA support for drawing so updates are incredibly fast. A dual-potentiometer analog stick gives you great control, with easy diagonal movement - or really any direction you like. There's also 4 square-top buttons, which fit our square top button caps. The buttons are arranged to mimic a gaming handheld, with 2 menu-select buttons and 2 fire-action buttons. There's also 5 NeoPixel LEDs to dazzle or track activity.
On the back we have a full Feather-compatible header socket set, so you can plug in any FeatherWing to expand the capabilities of the PyGamer. There's also 3 STEMMA connectors - two 3-pin with ADC/PWM capability and one 4-pin that connects to I2C - you can use this for Grove sensors as well.
For built in sensors, there's a light sensor that points out the front, and a 3-axis accelerometer that can detect taps and free-fall. To make bleeps and bloops, plug in any set of stereo headphones. For projects where you need more volume, you can plug in one of our 8 ohm speakers. The PyGamer will auto-switch to headphones when they're plugged in, otherwise play through the speaker.
You can power the PyGamer from any of our LiPoly batteries, but we like this 350mAh one which will fit into the acrylic case. An on-off switch will save battery power when not in use. Or power from the Micro USB port - it will also charge up the battery if one is attached.
Now, how to program it? Well you've got a lot of options!
- MakeCode Arcade is the easiest to start for making games, you can drag-and-drop blocks and load games over the disk-drive bootloader
- CircuitPython lets you draw graphics, play wave files and print out text in any fonts - all in Python! There's tons of sensor support as well.
- Arduino is low level, powerful, but a little more challenging. You can use Adafruit Arcada to interface with the hardware and it will abstract some of the nitty-gritty details like reading buttons for you.
Here's a list of everything you get
- ATSAMD51J19 @ 120MHz with 3.3V logic/power - 512KB of FLASH + 192KB of RAM
- 8 MB of QSPI Flash for storing images, sounds, animations, whatever!
- Micro SD Card Slot for storing even more stuff when the QSPI flash isn't enough
- 1.8" 160x128 Color TFT Display connected to its own SPI port
- 1 x Analog Thumbstick with X and Y analog inputs
- 4 x Game/Control Buttons with square tops
- 5 x NeoPixels for dazzle, or game score-keeping
- Triple-axis accelerometer (motion sensor)
- Light sensor, reverse-mount so that it points out the front
- Stereo headphone jack
- Mono Class-D speaker driver for 4-8 ohm speakers, up to 2 Watts
- LiPoly battery port with built in recharging capability
- USB port for battery charging, programming and debugging
- Two female header strips with Feather-compatible pinout so you can plug any FeatherWings in
- JST ports for NeoPixels, sensor input, and I2C (you can fit I2C Grove connectors in here)
- Reset button
- On-Off switch