I’m looking for a recommendation on an ARM dev board. My end goal is to make a low-to-medium power handheld device that runs the Uxn virtual machine by @neauoire, writing an OS to manage multiple ROMs and provide misc. other basic services. The number of ARM dev boards and configurations out there is staggering and I think I’m a bit paralyzed from spending a few days pouring through all the options.
- Low power: I’m guessing that Cortex A stuff is just overkill; I’m not trying to run Android. The Playdate has a Cortex M7, which I think is roughly in line with the amount of computing power that is appropriate for this device.
- Understandable: I’d like the entire codebase to be as easily understandable as possible by a single person, so I’d like to avoid dependencies whenever I can. I certainly don’t want to run Linux and I’d like to avoid FreeRTOS and the like if I can.
- Self-contained: Writing all of the device drivers, memory management, etc. from scratch doesn’t scare me. I would also like to avoid any vendor-specific toolchains, huge libraries, and existing operating systems. Timeline is not an issue; this is about making a useful device for responsible computing, not taking it to market.
I will design the PCB for this, but I wanted to tackle the software with off-the-shelf parts first.
I have a Raspberry Pi 3 B on hand, and I tried running this bootloader (
github.com/dwelch67/raspberrypi), which I could get to boot successfully, but there is some problem with minicom sending over binaries, etc. that I wasted two days on and couldn’t solve. So I figured that an official ARM dev board that was more ergonomic for loading and debugging would be a better direction.
I then started looking into STM32 Nucleo, TI Tiva, Adafruit Feather, etc. All Cortex M boards that I can find only have a few KB of SRAM on the CPU die. I will need at least a few MB of RAM for the occasional audio buffer, framebuffer, etc. The Playdate has 16MB according to Wikipedia. Even though the STM32 chips have a Flexible Static Memory Controller™, as I understand it, I can’t just hook up some external RAM on a breadboard because of the precise nature of matching the impedance across all of the data and clock lines.
So I guess the question boils down to: Can you recommend an ARM dev board, roughly in line with a Cortex M4 or M7, that ships with a few MB of RAM? Or is there a solution for adding extra RAM to such a board before diving into a custom PCB?
Any advice or directions welcome.