Xduino-An ARM CPU running on High Octane Steroids

The Xduino - An ARM processor running on High Octane Steroids.

I now have three microcontrollers in my arsenal. All three are Arduino compatible.
I used the standard Arduino 168P/328P for quick, simple, non network solutions.
Next comes Rugged Circuit's 20 Mhz Gator/Gator+ for fast serial networking applications.
Last comes the 72 Mhz Xduino, which runs on an ARM processor and has Arduino software compatible
commands/functions, and can be used for any application imaginable. See peripherals below.

Over the last several years, the Arduino community and "AVR Freaks" were shaking
in their boots if Microchip (The manufacturer of the PIC Micro) ever succeeded with their bid to
buy Atmel which produces the AVR microcontrollers used on the Arduino and the Gator. Fortunately,
their bid was repelled by Atmel and everything seemed to go back to normal. Since then, Phillips
(NXP) STMicrosystems and other ARM producers started to produce what is to be the "next
generation" group of microcontrollers. Apple uses many of them in the Ipods. Now by having an
alternative Arduino source, other than Atmel, to run the Arduino sketches - it should be a great
relief to the many users in the Arduino community! (I just had a terrible thought, Microchip
could have "pulled the plug" on the AVR Arduino and the forum would have to change the Arduino
name to PIC-Arduino!)

I researched four ARM competitors and made my choice on the Xduino. MBed has a Internet on line
compiler which you can download into their $60 ARM stamp which goes up to $100 after the trial
offer expires.[Too expensive and you can only use their online compiler and is not Arduino
compatible] The Cortino is hardware compatible, but is lacking a low cost tool chain for compiling
Arduino functions commands. Leaf Labs (MIT students) has their Maple board and software which is
"open source" and Arduino compatible but I have yet to see the software and hardware in action.
Last is the Xduino, which is a stamp like ARM STM32 processor from Thailand.

I like to mention, to anyone trying to migrate up to the ARM microcontroller that it is NOT
for novices, even though it does run an Arduino syntax. There is a great technical learning curve
involved in using ARM processors, (there are many ARM variations) but if you are very versed in
reading a lot of technical information on the ARM then you will succeed! You don't have to
re-invent the wheel because STM did all the grunt work in providing "C" firmware software routines
which could be converted for any of the peripherals devices below. I did not say it would be easy
but you have to realize that by converting the C routines to the Xduino that you do not disturb
the Xduino compatible software routines. You could, free wheel it, and not even use the Xduino
functions/commands. The flexible IDE compiler options allows you to do this.

The Xduino is fairly new and they just came out with their IDE / tool chain. You do have to expect
some bumps in the road but most of the Xduino's Arduino compatible functions/commands, I tested,
worked flawlessly. The IDE needs tweaking some more, but keep in mind, the Arduino's IDE is now up
to revision 17 after a few years on the market.

One application, using the Xduino, which I had my eyes on, is a high security data logger.
Imagine using a 32 bit ARM RISC Cortex M3 processor running at 90 million instructions per
second then, with a flip of a software switch, shuts down the processor's clock, the Xduino goes
from 36 ma. power consumption to 4 microamps (4 ua.) in the low power saving standby mode.
The built-in RTC is backed up by a 3 vdc lithium coin cell along with 41 RAM/Registers.
When the Xduino, receives a rising signal on the wake up pin (other sources are RTC & Reset)
then it awakes, reads the RTC, stores the data on the SD card then goes back to sleep.
Having a 32 Bit ARM 90 MIPS processor, running on batteries, is truly an amazing feat!
Please note: I had to do a slight hardware modification to the Xduino to get the power down
to 4 ua. in the standby mode. The Xduino and other commercial ARM boards are not made for low
power, off the shelf, applications.

Just some of the new features on the Xduino which are typical of the STM ARM high density product
line (LQF64 pin part# STM32F103xE) are:

#1. 5 serial ports which include LIN, IrDA capability, modem control.
#2. 72 MHZ clock operation 1.2 DMIPS/MHz (Drystone 2.1) or 90 MIPS - (million instructions per
second)
#3. 32 bit M3 Cortex M3 Core RISC ARM processor
#4. Built-in Real Time Clock/counter - The calendar portion is done in software.
#5. Low power stop/sleep/standby modes achieved by shutting the external/internal clock down -
great for battery operation.
#6. SDIO - SD card interface. (3.3 VDC interface with no logic conversion)
#7. 512 K bytes of flash
#8. 64 K bytes of RAM.
#9. 41 registers that are backup with the same battery used for the RTC. Used as non volatile
RAM.
#10. 12 bit A/D channels (4096 steps) Up to 16 channels.
#11. 48 general purpose input/outs pins (GPIO) which can be used for alternate functions like
A/D, DAC, Serial, SPI, I2C, CAN, SDIO.
#12. 3 SPI ports - up to 18 Mbits/s in slave and master modes.
#13. 2 I2S - inter-integrated sound
#14. 1 CAN - controller area network
#15. 3.3 VDC logic (5 VDC tolerant) which means you can connect directly to 3.3 VDC devices like
SD/MMC devices and XBEE wireless modules without any logic conversion ICs.
#16. 2 Analog output channels - 12 Bit DACs.
#17. On board chip temperature sensor
#18. 12 channel DMA controller - Direct memory access controller which frees the
processor of processing mundane tasks of i/o streams of data.
#19. CRC calculation unit - Cyclic redundancy check calculation hardware unit.
#20. USB 2.0 full speed interface capability.
#21. 2 watchdogs
#22. 2 I2c channels - standard and fast modes
#23. LCD parallel interface
#24. Nested vector interrupt controller (NVIC)
#25. External interrupt/event controller (EXTI)
#26. Power supply supervisor
#27. Voltage regulator - for power saving modes
#28. Flexible internal clocks - for power saving modes of sleep/stop/standby
#29. 8 general purpose timers. Note: Xduino operation systems uses several timers up.
#30. Security features - anti-tamper pin input that erases the battery protected registers on any
disturbance on this GPIO pin.
#31. Encoder interface - for motor control
#32. Hall Senor Interface - for motor control
#33. Clock security system - on clock failure the clock source is switched to another clock.
#34. Software controlled GPIO setup - pull-up, pull-down, floating, push-pull and open drain can
be applied to the general purpose inputs and outputs by software control.
#35. I/O pin locking - to prevent the I/O from changing under program control - used for safety.
#36. 50 Mhz max. GPIO speed.

"I know what you are thinking - WOW! - how did they put that many peripherals on one chip?"

Xduino Website: http://www.xduino.com/hardware/
STM Website: http://www.st.com/mcu/familiesdocs-110.html

Be sure to read the following articles on the Xduino ARM STM32:
Circuit Cellar Silicon Update by Tom Cantrell "More Than a Core" (PDF)
STM32f103ze.pdf
STM32_programming_Manual.pdf
IntroToCortex-M3.pdf

See the photos below:
Xduino ARM Module
Development Board For Xduino prototyping

Let The Power Of The ARM Be With You!
:sunglasses: :sunglasses: :sunglasses:

The Xduino ...

My Xduino development board with the Xduino installed ...

Sounds extremely sweet - but are there plans to add a USB Port for programming some day?

I don't know but but what I did was to add my own USB to TTL (3.3VDC) cable and
removed the RS232 converter on board. The USB BUB board from Modern Device
$13 (US) worked perfectly.
Now if your are thinking about a direct USB interface that is a totally different
hardware and software modification which would negate the low power standby operation I wanted
in my data logger.

Note: All the flash loaders, I have seen from STMicrosystems are RS232 serial.
MBed has their own special USB drive loader that uses the NXP 1738 ARM.
Leaf Labs have a special USB loader but it is not open source like they claim to be.
The Xduino is really the only "open source" Arduino ARM compatible processor I have seen to date.
:sunglasses: :sunglasses: :sunglasses:

well i meant USB like the Arduino it has - would that too eliminate those functions you mentioned?

I did the USB modification to eliminate the on board RS232 data converter to save 5 ma.
I also removed the 2 ma red power LED. The green "switchable" on board uploading LED would still
indicate board power.
As for "just like the Arduino USB" my modification using the Modern Device's "USB BUB" FTDI USB/3.3vdc TTL converter would be the same.
Most PC's nowdays don't have RS232 ports and by going out to buy a USB to RS232 converter cable to run
this board is expensive ($25). With my modification, I killed two birds with one stone by reducing the added cost
of the cable and dropping the power consumption on the board. I did shoot myself in the foot by doing surgery
on the Xduino and voiding the module's warranty.
:sunglasses: :sunglasses: :sunglasses:

I finally found the schematic of the Xduino ...

Better side picture ...

is your IDE compatible with this project?

http://www.bugblat.com/products/cor.html

Xduino makes the IDE ... I do not have an IDE.
The Cortino is just an ARM Arduino compatible board without an IDE.
If you are saying "if the Xduino IDE can work with the Cortino ARM board" then
the answer, I believe, is NO.
:sunglasses: :sunglasses: :sunglasses:

Hello guys... quick question: Is it possible to use the Xduino IDE with the STM32VLDISCOVERY kit?

Thanks in advance,

Seb