The Arduino Uno is an incredibly popular microcontroller platform. By virtue of being simple to understand, and having just enough processing power to be dangerous, it’s won fans the world over. In recent times, there have been efforts to replace it with something more powerful. The Arduino Zero is just one such device attempting to take the crown, and [Nicola Wrachien] decided to try game development on the platform.
[Nicola] chose to use the uChip, which is a remix of the Arduino Zero into a smaller form factor. This was combined with a 160×128 TFT display and a handful of buttons for control. The uChip module, along with the TFT are fitted to [Nicola]’s custom PCB which ties everything together.
By overclocking the SPI port to 24 MHz, [Nicola] is able to run a basic 2D platformer in excess of 50 frames per second. The frame rate is capped at a round 40 fps to keep things smooth and stable, and the results are impressive. Gameplay is fluid and responsive, and the screen looks vibrant with 16 bits per pixel providing plenty of colors to play with.
We love to see game systems hewn out of raw microcontrollers and displays. [Nicola]’s work goes to show that with a little tinkering, significant performance improvements are yours for the taking. For similarly impressive DIY handheld hacks, check out Star Fox on the Arduboy. Video after the break.
8 thoughts on “Cortex M0 Becomes Platform-Game Platform”
Hehe reminds me of what I did for the Gamebuino Meta, based on the same setup : 160 x 128 pixels with the SAMD21 from the Arduino Zero
Using DMA and overclocking the SPI bus just under the the point where random pixels would start showing up :P
After long talks with the chip manufacturers and lots of benchmarks, we found out that the maximum SPI read speed is not the same as the write speed. So 24Mhz *writting* is allowed, the problem is the screen datasheet that is limited to 15Mhz.
We even pushed it further as we can stream video and WAV from the SD card.
I’m always impressed how much you can get from these little chips *__*
Check it out ???? https://gamebuino.com
Why do people use M0 development boards?
Development boards are expensive because they are produced in small numbers, and sold as single pieces.
Therefore, M4 development boards are only marginally more expensive to the hobby user than M0 boards.
Example: The nRF52840 dongle, M4, 1MB Flash, 256kB RAM, USB, Bluetooth 5, Arduino support, runs CircuitPython, costs only $10.
From the hackaday.io page: “I wanted to do something that could be challenging and, at the same time, funny.”
With regards to your comment:
“The nRF52840 dongle, M4, 1MB Flash, 256kB RAM, USB, Bluetooth 5, Arduino support, runs CircuitPython, costs only $10.”
Can you provide a link to this board?
You can ignore my post, as I found the board you mentioned:
No debug though, right?
nearly the same config, cotrex M0+ / OLED / 12MHz DMA SPI ==> 30 fps
I think that the difficult part is not getting a 30/40fps animation on such a display, but rather stuffing all that graphics in only 256 k or so of flash, and running a 40 fps dual playfield with several high resolution onscreen sprites.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)