Does Arduino have a future?

While I agree that micontrollers will have a place for quite some time, I'm not as
sure about the 8 bit AVRs.

I started to use Arduino because I wanted an easy way to work with microcontrollers.

I started using Arduino in 2008 and wrote the Fat16 library for the 168 Arduino with 16 KB flash and 1 KB SRAM. It was just a toy to play with.

Now I want a microcontroller like Cortex M4 with more power than AVR but not an application processor designed for "hosting a rich OS platform" like the Cortex A series.

I have been developing a new FAT file system using STM32F4 processors. The difference in capability over AVR is overwhelming. I tried to love the Arduino Due when it came out but couldn't.

Here are two examples.

The ADC on AVR Arduinos run at a max of about 10 ksps with analogRead. You can increase the clock speed and get fair, not full 10-bit, accuracy at 40 ksps. Low end STM32F4 ADCs can do 2.4 msps, about 60 times faster than AVR with 12-bit accuracy and very flexible DMA. High end STM32F4 chips can run three ADCs interleaved for 7.2 msps.

I am developing a new file system for high end embedded processors. The STM32F4 has a good, not great, SDIO controller which can run the 4-bit bus at over 48 MHz. I have achieved sustained read speeds over 20 MB/sec. I have sustained write speeds of 12 MB/sec but this is a limited by the SD card I am using. I have ordered a new Samsung Pro card and hope to write at close to 20 MB/sec.

The AVR can never read or write faster than about 500 KB/sec that's about the best you can do with program I/O on the 8 MHz SPI bus. In addition SD cards don't present their fast commands on the SPI bus, only on the SDIO bus. This means you will have very long occasional write latencies with SD cards on the SPI bus.

The Arduino system software is not adequate for these new chips. You really need priority based pre-emptive scheduling to take full advantage of the features of these chips. Most chip manufactures are now providing a free RTOS solution. ST and Atmel provide FreeRTOS ports, Freescale has MQX, and there are other great systems like ChibiOS.

I really enjoy development with boards like the STM32F4 Nucleo boards. ChibiOS can do about 1.2 million context switches per second on the NUCLEO-F411RE. I am using a Olimex stm32-H407 and it can do a context switch in 400 ns. The 407 has 196 KB SRAM and 1 MB flash.