It was back in 2011, I can't recall exactly when, but I came across this board called the Raspberry Pi on one of the myriad of tech blogs I frequent. I do remember getting quite excited, mostly due to the low cost. I shared the details with my work colleagues and followed the  website to keep track on progress.


When the RPi was finally released in 2012, I wasn't surprised that both Farnell (Element14) and RS Electronics had trouble keeping up with demand. The RPi certainly wasn't the first single board computer, but its feature-set and low price made it attractive for education, hobbyists, and even professionals. The Raspberry Pi Foundation also did a great job building and supporting a community around the boards.


However, as we all know, technology is progressing at what seems like an ever-increasing rate. The innovations of yesteryear become ubiquitous, and we look for the next big thing to feed our tech-appetite.


In the last couple of years, I've had opportunity to use the Raspberry Pi for a few projects and as a result have collected a list of improvements I'd like to see in the next generation. Some of these are bugbears, some are just nice-to-haves. Hopefully someone somewhere in a position of responsibility will read this.


Of course this list is going to be subjective, as everyone has different needs and wants. For each point I've tried to explain why I think it's important. Also, of course I want all of this without an increase in price :-)


Do you agree with my list? What other items should be added/removed? Maybe there are some boards already available that meet all of these requirements? Add your comment below.



Analogue inputs/outputs

While the RPi comes with digital GPIO, analogue support is non-existent. Sure, you can add an external ADC with a SPI/I2C interface, but wouldn't it be great if there were at least 2 analogue inputs and outputs on the board?



Additional PWMs

The current RPi provides 2 PWMs, which are good to around 11-12 bit resolution. These are used by default for analog audio output but can be re-purposed for audio input or motor control, among other things.


What if you want to do motor control and audio at the same time? Well you can't. But if there were more PWMs you could.


Better quality analog audio

Analog audio on the RPi is poor. Improvements have been made in firmware since the original launch, but quality is still low. It would be nice if an analogue audio input was also included out of the box, but not imperative.



Completely open source

For the most part, RPi is open source. Some parts of the bootloader and Videocore code are not. I'm not sure why that is, but next time, let's aim for 100% open.



Better USB/Ethernet performance

Ethernet connectivity on the RPi is via a USB hub chip. This means the Ethernet and USB ports are all sharing the same bandwidth.

Thankfully the number of USB ports was increased from 2 to 4 for the new model B+, but USB performance is generally pretty slow. Apparently this is due to the implementation of USB on the BCM2835.


I don't have a specific need for USB3 or Gigabit ethernet, but full-bandwidth performance of the current USB and ethernet would be good.



More RAM please

I'm generally using the RPi without a GUI, so don't usually hit the RAM limit. However, 512MB isn't going to cut it for the next generation, I'd be hoping for 2GB.



Additional UARTs

The RPi only has a single proper UART which is used for the Linux console output by default. (There's some sort of mini-UART listed on the BCM2835 peripherals datasheet, but there's no Linux driver for it). If you want to interface with anything else requiring a serial port, you lose your console output ability. I'd like at least one more (full) serial port,



Lower power

While power usage has been improved with the B+, the RPi is still power hungry. Wouldn't it great if you could suspend the RPi to under 0.5W and then resume it within a few seconds? This would allow battery-powered applications.