Nidal Prasovic

Arduino sketches running on your favourite controller

Discussion created by Nidal Prasovic on May 11, 2015

I'm really not sure where would be correct place to post this, community interface has changed since the last time I was logged in here, and it seems it does not like too much that I'm using Firefox on Linux.

 

i.MX community is the place I read posts from so I thought I might as well post here.

If you think I shouldn't, speak up!

 

Anyhow, In the past year or so I was mostly working with LPC1300 controllers from NXP (they are merging with Freescale! Wohooo!) and one of the things I did was to make Arduino source code (arduino/Arduino · GitHub ) compile on LPC1347. I managed to run any standard sketch and library (meaning they don't use any AVR/STM specific garbage) and suddenly I had quick and easy access to huge number of board and shields to use in my prototyping phase for my LPC1300 based boards!

 

While I was working on making Arduino source code compile and run on LPC1300, I also made an effort to make it more generally portable: there's a kind of a "hardware abstraction layer" in there and getting it to compile and run on some other controller should be a lot easier than checking out Arduino source from github and starting from scratch. I had in mind to use some other controllers to run Arduino sketches on (like LPC1700, LPC1500 and LPC11u24) and that's why I did this little extra work on making it portable.

 

There are few cosmetic things left to do (divide source into separate projects, add few comments here and there, create github repo) and a couple of non-cosmetic (bit-banged SPI and HAL layer for SPI) and the version 1.0 should be out.

 

In order to get this finally done I created Indiegogo campaign to be a sort of accountability thing for me: in about 4 weeks I should have the github repo up with v1.0 in it.

If you are interested in more details you can check out the campaign here: http://igg.me/at/arduino-xc .

No need to pledge to any perks (give money) there, source code will be FOSS once campaign countdown comes down to 0.

 

In theory Arduino-XC could be compiled to run on any controller, provided HAL layer (board API) is implemented. Then you can run Arduino sketches and use libraries, if they are not full of AVR/STM specific code. So far I used ADXL345, BMP085, L3GD20, LSM303, PWMServoDriver, TCS3472S libraries from Adafruit (and their boards) with no changes to code at all, and a few others I scavenged from Sparkfun and some other places.

 

Any questions, shout out!

 

 

 

P.S.

I'm soooo excited that NXP  and Freescale are merging, two of my favourite chip manufacturers!

Outcomes