Arduino format with a 72MHz ARM Cortex-M3

We have developed a board which has an ARM Cortex-M3 micro in the Arduino format. This is definitely not an official board, and by using a 72MHz 32-bit processor with 512KByte of Flash we guaranteed there would be a few changes... But we tried to keep as close as possible to the Arduino spirit.

The connectors are in the same places and the functions on the pins are the same.

More details at on the bugblat.com web site.

And I would be happy to answer any technical questions.

Tim

Interesting product. My first impression is that your module has lack of balance that the Arduino has, in that while one gains tons of memory and processor horsepower, it seems then constrained by modest I/O pin count of the original Arduino. That would seem to limit it's application for the power it could otherwise provide.

As you seem to take insperation from the Arduino do you plan to open source the tool chain and hardware design?

Thanks Lefty

Hi Lefty

Yes, there are lots of port pins to choose between - three 16-bit ports and some oddments. In this case we have reimplemented the Arduino connectors, so that shields and the like will fit. Then we added an uncommitted connector, where the Arduino ISP connector goes, and put test points on all the unused Cortex port pins, so the user can easily customize what comes out. Also some signals are on the JTAG connector and can be used when JTAG is not being used.

Here is a picture

The product page is www.bugblat.com/products/cor.html, and it has links to the schematics and the software sources.

Tim

For me the appeal of Arduino hasn't been about any particular board specification, its the multi-platform IDE and boot loader you can throw into any spare 168, add a few components and wires, upload a sketch, and run programs that interface with hardware components, sensors, other 168's, and/or a pc.

That can all be done with less than 10 bucks thats a price point others would have a hard time matching. And there are plenty of genuine Arduino-compatible off-the-shelf solutions available for beginners for under 20 bucks, complete with a large community who make regular contributions or help out newbies.

There have been more powerful options than your basic Arduino around for many years, like Wiring for example. But I've had one of those boards for the past year, and its still in its plastic wrapper because I haven't found a use for it.

But, I'd be interested in an Arm based Arduino, if it was Arduino compatible in respect of the Arduino IDE and bootloader, and, only if I could build one myself from the ground up at minimal cost and components.

this seems kinda interesting :)

what kind of application could this benefit?

John Ryan wrote "But, I'd be interested in an Arm based Arduino, if it was Arduino compatible in respect of the Arduino IDE and bootloader, and, only if I could build one myself from the ground up at minimal cost and components."

I have read that the Arduino software could be recompiled for a different processor, but I'm not familiar enough with it to know whether that is correct.

This system is really aimed at the developer who needs a modern 32-bit processor with a bit of oomph and then has to pick a form factor.

We built an earlier version with well under $10 of components (it used an older ARM chip) but people we talked to wanted the latest processor and a few more features. Then the costs drift up, though they are worth it for the beefier applications that need the horsepower.

And some people simply want to work with the new stuff.

As a consumer, I think this statement on your website is particularly misleading...

"we have built it to be significantly compatible with the Arduino board"

The only thing its got in common with Arduino is the size of the pcb and position of the pin headers, unless I've missed something, its a statement that invites confusion and misunderstanding - and potentially quite a bit of trouble if people buy them believing them to be Arduino compatible.

Hi John

That's unfair. There's a complete section on "What We Changed" and we say "The Arduino is based on the splendid Atmel ATmega168 processor, a modern 8-bit AVR RISC core running at 10MHz with 16KB of Flash and 1KB of RAM. The Cortino is based on ARM's latest 32-bit Cortex M3 RISC core, running at 72MHz with 512KB of Flash, 64KB of RAM, and a powerful DMA controller. Obviously we changed a few things..."

I think a reader would have to be pretty dense not to spot the differences - we are talking to skilled technical people here, not to small children. The compatibility is, as you say, the same form factor. Also, the same functions on the same pins. And the same culture, the same sort of product.

If the charge is that we didn't simply copy the Arduino design, we are guilty.

Well, you certainly beat me to it :-) I wanted to use the on-chip USB to reduce costs; in theory one of those largish STM32 chips isn't much more expensive than a mega168+FTDI combo. Though I can't help notice a certain ... discrepancy between changes in CPU cost at the higher memory content vs board cost. Ah well; whatever the market will bear...

we are talking to skilled technical people here

Um. Not if you're talking to the arduino community. I mean, I don't want to insult anyone, but arduino is specifically aimed at what I'd call "intelligent NON-technical people" and other beginners. Unfortunately, I can picture a lot of them buying your board while expecting it to be a faster arduino with more memory, and otherwise drop into the arduino environment. I mean, gee whiz, didn't you say they're both based on a "RISC core" ?

One of the big issues I wanted to address was the fragmentation of the ARM community. It would have been nice to have an arduino-like package that was all inclusive (IDE + tools + compiler) without having to go to XXX for some tools, and YYY for the latest compiler, and build your own ZZZ based on source from WWW, if you want support for the STM32 cpus with CortexM3 cores. "ARM" is just not nearly as specific a qualifier as "AVR", and it's a bit of a pain...

The Cortino is a complete Arduino-compatible development system for the 32-bit ARM Cortex M3 Microprocessor. From only $39.99.

I'm not sure you can back this up.

Hi John

That's unfair. There's a complete section on "What We Changed" and we say "The Arduino is based on the splendid Atmel ATmega168 processor, a modern 8-bit AVR RISC core running at 10MHz with 16KB of Flash and 1KB of RAM. The Cortino is based on ARM's latest 32-bit Cortex M3 RISC core, running at 72MHz with 512KB of Flash, 64KB of RAM, and a powerful DMA controller. Obviously we changed a few things..."

I think a reader would have to be pretty dense not to spot the differences - we are talking to skilled technical people here, not to small children. The compatibility is, as you say, the same form factor. Also, the same functions on the same pins. And the same culture, the same sort of product.

If the charge is that we didn't simply copy the Arduino design, we are guilty.

Why bother making such a vague comparison in the first place? And as for "the same functions on the same pins" can one program those functions as easily and as "freely" as a real Arduino/compatible?

I personally think you've used the comparison to Arduino, specifically keyword reference to "Arduino", in an attempt to ride the wave of its popularity.

So I think my comments are very fair, and that your reference to Arduino will confuse a lot of people who are none the wiser, and that is unfair if its preventable.

Maybe it's better called Arduino-look-a-like ARM platform? :)

The good thing is that you can use exsiting shields, but if you call it "complete Arduino-compatible development system", IDE should be the first to worry about.

I do like the idea that more powerful platforms are available and that arduino shields can be plugged into them. But object strongly to the statement on the website saying “The Cortino is a complete Arduino-compatible development system ?”

There seems to be almost nothing compatible with the Arduino software development environment. The arduino spirit comprises a very easy to use and well documented development environment and a wide range of software components that can be easily included in a project by users with very little technical knowledge.

Is there any arduino sketch or library that can run on your board without modification? Is there any way an arduino shield can be used on your board without re-writing the software code or libraries that the shields use?

If your intention is to provide a toolset that is similar to the Arduino and can re-use arduino code and libraries then the Cortino would be an interesting option for the Arduino community. But I don't think you should imply compatibility until something like that is available.

Assuming the Arduino environment was ported to this platform, the user-contributed libraries aren’t going to follow. The AVR and ARM are so different that no automatic way of porting libraries could exist. All library developers would need to rewrite their code for this platform.

Arduino is definitely about the software…I mean, you see Arduinos of MANY physical styles. I would venture that the Boarduino, Mini, and Nano are at least as popular as the Diecimila format. Anyone can plunk a microcontroller onto a breadboard and apply power, but gathering all the software and scouring datasheets for the right bits to twiddle in registers…that’s the roadblock for most people.

One of the great things about the Arduino environment is that it is multi platform. I see no mention that this unit is PC only except for the tell tale .exe file extensions used. Try an be honest about what you are selling.

A couple of points...

On whether it is a complete system. There's an interesting technical point here. With a compiler, you have everything you need to write, download, and run your programs. But is there a zero cost debug option that's better than the trusty printf()?

With the Cortex generation, ARM have finally added a two-wire alternative to JTAG. They call it the Serial Wire JTAG Debug Port, which makes it SWJ-DP, though surely a catchier acronym will emerge. So we hooked up the two wires to spare pins on the USB interface. Right now we are working on the driver, but when we are done (I know, I know) there will be a built-in JTAG system at no extra cost. Of course, it won't be a speed demon, but it should serve just fine for setting breakpoints, stepping a program, and so on. There's a full JTAG connector as a backup, but as usual that needs an add-on JTAG widget.

On using the on-chip USB port and cutting out the FTDI chip. That's a good point - FTDI chips are relatively expensive unless you buy in tens of thousands. We have done this on other 'closed' systems, but it's a problem for development boards. If someone messes up the boot loader, the system is bricked - you need a second solution for reflashing the boot code. The FTDI chip is a good deal because it can reliably toggle the reset and other control pins and get the micro reflashed and running whatever state it is in.

TimAtBugblat, are you intending to respond the points raised in the six posts preceding your post above?

I think it's very good to see new boards showing up that are compatible with Arduino.

If I can make a comment , the power of this board is kid of wasted if you don't adapt the arduino IDE to be able to program this...

the IDE is designed already to be multi-core and the real value of this kind of platforms is to provide a nice user experience to whoever wants to write code.

I think it should be pretty fast to port Arduino to this processor because the compiler is still gcc and the functions can all be re-implemented.

Lately we're also trying to factor out common libraries that are not so hardware dependant like the print functions.

This point is also valid for the Pinguino people who made a Pic Based arduino ide but re-wrote it all in python... That was such a waste of energy....

I think it would be good to get some people to work on a new version of arduino where the platforms (AVR, PIC, ARM etc) are "plugins" so you can download the standard IDE and plugin your special board in it by dropping a zip file in a directory...

massimo

Massimo, are you ok with calling a board arduino compatible that does not use the arduino IDE and does not have the arduino code ported?

Edit: I just noticed that Bugblat no longer has the broad Arduino compatibility claim on their site. The description, “In the popular Arduino format and pinout” defuses my main concerns.

Massimo thats some good ideas there with the compatibility plugins :)

I would like to see summin like that, it would defiantly expand the arduino culture :)