50 comments

[ 5.7 ms ] story [ 106 ms ] thread
Interestingly this isn't on the official arduino.cc site, but rather the "other" arduino site.

more info here: https://www.techdirt.com/articles/20150217/10345530055/is-ar...

(comment deleted)
Special mention goes to the 32KB of SRM, the 12bit ADC and the analog outputs. Love it!
So frustrating that here in the US, you can't even buy those individual components for that price, even if you buy them on reels.

I'm not sure if it's the distributor's profit margins, counterfeit parts, yuan-to-dollar advantages, or what.

Probably a combination of all that and more.

I doubt the STM32F103 is a knockoff though.

And they cost over $3 here in the US even on reels of 2400 pieces.

I have experience buying these Chineese parts, very often you end up with a board that is very poorly soldered or even doesn't work at all.

At least with a genuine Arduino board you get something that works and is of a reasonable level of quality.

When you have your final product you can always make economies of scale.

(comment deleted)
Why must ARM have the most confusing part names? Where does the M0 fall in their lineup?
There are several Cortex chips.

Cortex A (with rather high numbers) are relatively high performance chips, commonly found in one board computers, something like the BeagleBoard.

Cortex M are microcontrollers for embedded usage, slower clocks, but geared towards periphery like CAN, SPI, I2C etc. You can find a lot of those in industrial use.

Cortex R are less common, I think they are geared towards automotive, for real-time stuff, although -M is also used for that.

Above all those sit those big ARM9/ARM11 chips.

Within the M family there are 0 for relatively tiny footprint, 1 is special (synthesized into your FPGA), 3 is the "normal" one, and 4 has DSP capabilities and a bit more performance.

Ok, so even though this is using a "tiny footprint" ARM processor, it's still more powerful than the Atmel microcontrollers used in most other Arduino-branded products.
Absolutely, the AVRs have a huge hobbyist community, but they have really aged.

I can see why people who are well-versed in AVRs and their tool chain stick to it, but everyone starting today won't find them compelling.

And there's the M0+, which is the newest in the M0 family.

The M0+ has 2/3 the dynamic power consumption of the M0, some nice features of the M3 and M4, fewer Flash accesses (which lowers the power even more), and better debugging.

Basically, if you are looking for the ultimate in low power, choose an M0+.

The Atmel D21 on the Zero is an M0+, and Atmel has just released an L21, which is an even lower power M0+.

Some more info:

A stands for application. These chips are full featured processors which are runnning big operating systems (e.g. Linux)

M is microcontroller. These are running either with no operating system or with a lightweight realtime operating system (e.g. freertos)

R is realtime. These are probably the most niche controllers and are used for things with realtime constraints. Besides automotive safety you can also find them used as SSD controllers.

What makes a chip realtime? I thought that was more a feature of the code running on a chip than of the chip itself (for 'normal' designs)

The only feature I can think of there is 'no support for demand-paged virtual memory', but even that isn't strictly needed for a real-time system.

The official Cortex-R page lists three main items:

    - Fast, bounded and deterministic interrupt response
    - Tightly Coupled Memories (TCM) local to the processor for fast-responding
      code/data
    - Low-Latency Interrupt Mode (LLIM) to accelerate interrupt entry
I haven't cross-compared the relevant features to the Cortex-M cores, but the M cores are certainly more common and definitely perform well too.
Great explanation, but I feel you totally missed out on the hilarity angle.

There are three varieties of ARM cores: A, R and M. See what they did, there? :)

ARM9/ARM11 were replaced by the Cortex-A series cores (contain an MMU, external RAM required, runs full OSes like Linux or WinCE)
As you might guess from having the smallest number, it is the smallest core in their lineup.
Since the page makes a big deal about how powerful it is, I didn't think it would be the smallest one.
ARM did have confusing names, especially as things like ARM7 and ARMv2 meant completely different things, and you'd have names like ARM7TDMI The Cortex range has made it much simpler, though, as the other replies explain.
So the stripped down little brother of the Due, which has been around for some time?

I don't see price mentioned. Hopefully it's proportionally cheaper as well.

It can't be too crazy expensive, there's not a lot of expensive parts on the board.
Arduino team(s?): Atmel now has an L21, a lower power version of the D21.

Should drop right in.

Nice, I've been surprised the ATMega chips have lasted as long as they have given how much more powerful ARM Cortex-M chips are, and they are about the same price. For sp332 there are three "general" groups of the Cortex M series,

M0/M0+/M1/M2 - ARMv6 - basic peripherals

M3/M4 - ARMv7 - optional floating point

M7 - Basically everything on steroids

I find the M4 feels like a sort of blend between the 80286 and the 68010.

AFAIK, there's never been an M2.
What do you mean by your last sentence? Looking at simplest benchmark - Dhrystones both 286 and 68000 reach ~2K. Arm M3 does ~1K _per MHz_, M4 1.2/mhz.

We are talking Pentium 100MHz performance out of Arm M4 150-200MHz (freescale 150/st 168/nxp 204 MHz). Even <$2 STM32F103 (72MHz) is faster than Intel DX4 100MHz.

16MHz Atmels lasted so long only due to Arduino :/

   > What do you mean by your last sentence?
From a programming model perspective. Granted pure performance is higher. The programming model though of a 'large' address space, modest memory protections (not remamping but some execution protection etc, a simple 'user' and 'kernel' mode, and modest I/O channel bandwidth.
I love flat address space, its perfect for embedded. As for IO its not that grim once you go up to fatter chips (STM32F42*). FSMC, high speed usb, 100mbit ethernet, dedicated camera/LCD interfaces, high speed GPIO with dma. Super cheap STM32F1xx does about 7MB/s over GPIO, almost ISA speed.
As an Original Series Star Trek fan, I regret the absence of an M5 series.
I'm not sure why anyone would buy an Arduino considering products like Teensy 3.1 or Maple. Maybe the slightly lower cost is what is keeping Arduino alive.
Good enough. Everyone has exactly this board. I don't have to worry about whether the compatibility promises carry some footnotes with them.

Arduino is about having a common baseline. People who are more experienced can "upgrade" to other boards.

don't forget the community and libraries you can leverage. Personally I'm still using arduino for the excellent acelstepper library.
Teensy and Maple are software compatible with Arduino.
3.3V, like the Due, that's unfortunate. This means it won't be compatible with most of the Uno shields, or 90% of the sensors on the market.

Kinda wish Arduino had gone with something with wireless stuff built in, like the Linkit One or RFduino.

> This means it won't be compatible with ... 90% of the sensors on the market

Are you sure about that? 3.3v is extremely common in the industry, to the extent that a lot of hobbyist 5v stuff has to be level shifted.

I think in later Uno revisions they added a IOREF pin for shields to read what voltage the IO is at and could in theory adapt to 5V or 3.3V as necessary. But yeah it's still a pain in the butt for older shields that assume they're at 5V.

Lots of sensors are happy at 3.3V though and many breakout boards are built to accept both 3.3V & 5V (with a level converter to take 5V down to 3.3V).

5V is dead, and has been for years. Even 3.3V is dying.

These are among the lowest power chips in the world, regular bleeding edge stuff.

Higher voltage means higher power, so there is a race to get as low as possible.

Internally, the D21 core runs at 1.2V. (There's an internal regulator that needs at least 1.62V coming in.)

But anything above that is just a waste of energy (besides the fact that the highest clock speeds need 2.7V minimum for 0 or 1 wait states).

They allow it, for compatibility, but you can see why even 3.3V is dying.

The shields will be happily redesigned.

I don't know how much this thing will cost, but you can get any ST Nucleo board (up to Cortex-M4, detachable ST-Link programmer/debugger and headers for all I/O, including Arduino headers) for $10. Hard to beat that.
Yup, the Nucleo F411RE is my current go-to board for starting a new project ($10.44 in singles from Digikey with both an 'Arduino compatible' connector on the top and a bunch of other I/O from the chip on the 'outer' connectors.
> the Nucleo F411RE is my current go-to board for starting a new project

Well stop it! Distributors keep running out of that one when I want one.

256K of flash? They must have to try to get chips that small. Is it an addressing problem?
They are talking about the flash memory built into the microcontroller itself, not about external flash storage. Generally this stores the device's firmware. 256K is a completely reasonable size for this class of microcontroller.
So it's, what, 180nm?
No idea. Can't recall ever hearing anyone discuss the fab processes used for microcontrollers; people only really care about that in the high end PC world.

edit: here's Atmel's page with the mcu specs, if you're curious: http://www.atmel.com/devices/ATSAMD21G18A.aspx

It's too bad there is no ATMega chip to pull off and plug into a bread board.

I liked the idea of using the Arduino as a programming centre. Put the chip into a project and then grab another chip to program for the next project.