Contact us

X Duino project extends the hardware horizon of Arduino which (as of today) is solely based on ATMEGA processor. The possibilities are are limitless.

Currently the following processor platforms are supported:
[ARM]
ARM Cortex-M3 of STM32F10x

(This list will keep expanding based on your contribution or if I can get a hold of more boards 🙂
Arduino library for ARM platform

This project has been started for making ARM processor boards (the platform which is much more powerful)  be easily accessible just like Arduino. Nowadays you can find ARM boards easily.

This idea came about when running into limitation of resources provided by the ATMEGA processor and with short learning curve for Arduino platform.

This starting point focuses on ARM Cortex-M3 processor from STM32F10x platform, this ARM STAMP costs around $25 and comes with 72MHz processor 512KB of flash memory and 64KB of RAM,
many several UART/USART communications ports and a lot of GPIO pins.

Library for other boards will be added as the board gets within reach.
I have started writing Arduino library for ARM Cortex-M3 processor. It is currently in C++.

Tested on:
ARM Cortex-M3 model STM32F10ret

Supported Arduino-like functions (so far) are:

doInit(); //General initialization
doGPIO(GPIOx,GPIO_Pin_x,OUTPUT|INPUT);
void High(void);
void Low(void);
bool Read(void);
void Toggle(void); // new function : -)

Serial(Baudrate); //equivalent of Serial.begin()
Serial.print();
Serial.println();
Serial.read();
Serial.available();

Sample code:

/* Includes —specific to STM32F10x boards in C (not C++) format */
extern “C” {
#include “stm32f10x_lib.h”
}

/* General xDuino like includes to create Arduino-like syntax */
#include “generalInit.h”
#include “doGPIO.h”
#include “Serial.h”

#define INPUT GPIO_Mode_IN_FLOATING
#define OUTPUT GPIO_Mode_Out_PP

int main(void)
{

doInit();
//Led connected to GPIOB pin 7
doGPIO Led1 = doGPIO(GPIOB,GPIO_Pin_7,OUTPUT);

//Serial port currently defaults to USART1 on GPIOA pin 9 & 10
Serial Computer1 = Serial(115200);

Computer1.println(“Starting xDuino program for Arduino on ARM…”);

Led1.High();
Led1.Low();
Led1.Toggle();

if(Led1.Read())
{
Computer1.println(“On”);
} else {
Computer1.println(“Off”);
}

}

I have started writing Arduino library for ARM Cortex-M3 processor. It is currently in C++.

Tested on:
ARM Cortex-M3 model STM32F10ret

Supported Arduino-like functions (so far) are:

doInit(); //General initialization
doGPIO(GPIOx,GPIO_Pin_x,OUTPUT|INPUT);
void High(void);
void Low(void);
bool Read(void);
void Toggle(void); // new function : -)

Serial(Baudrate); //Object – equivalent of Serial.begin()
Serial.print();
Serial.println();
Serial.printchar(); //new function – output a character (not string)
Serial.read();
Serial.available();
Serial.getdata(); // new function to get up to 9 bits data

delay();
delayMicroseconds();

Sample code:

/* Includes —specific to STM32F10x boards in C (not C++) format */
extern “C” {
#include “stm32f10x_lib.h”
}

/* General X duino like includes to create Arduino type language */
#include “generalInit.h”
#include “doGPIO.h”
#include “Serial.h”
#include “miscFunction.h”

#define INPUT GPIO_Mode_IN_FLOATING
#define OUTPUT GPIO_Mode_Out_PP

int main(void)
{
//Initialize
doInit();

doGPIO Led1 = doGPIO(GPIOB,GPIO_Pin_7,OUTPUT);
Serial Computer1 = Serial(115200);

Computer1.println(“Starting touch sensing program…”);

Led1.High();
delay(2000);
Led1.Low();
delay(3000);

for(int i=0;i<=10;i++) { Led1.Toggle(); delay(200); } if(Led1.Read()) { Computer1.println(“On”); } else { Computer1.println(“Off”); } while(1) { if(Computer1.available()) { Computer1.printchar(Computer1.read()); Computer1.print(“o”); Computer1.printchar(Computer1.available()); } else { Computer1.print(“x”); } delay(100); } }

I have started writing Arduino library for ARM Cortex-M3 processor. It is currently in C++.

Tested on:
ARM Cortex-M3 model STM32F10ret

Supported Arduino-like functions (so far) are:

doInit(); //General initialization
doGPIO(GPIOx,GPIO_Pin_x,OUTPUT|INPUT);
void High(void);
void Low(void);
bool Read(void);
void Toggle(void); // new function : -)

Serial(Baudrate); //Object – equivalent of Serial.begin() 8N1 config
Serial.print();
Serial.println();
Serial.printchar(); //new function – output a character (not string)
Serial.read();
Serial.available();
Serial.getdata(); // new function to get up to 9 bits data in 9 bit mode

delay();
delayMicroseconds();

Sample code:

/* Includes —specific to STM32F10x boards in C (not C++) format */
extern “C” {
#include “stm32f10x_lib.h”
}

/* General X duino like includes to create Arduino type language */
#include “generalInit.h”
#include “doGPIO.h”
#include “Serial.h”
#include “miscFunction.h”

#define INPUT GPIO_Mode_IN_FLOATING
#define OUTPUT GPIO_Mode_Out_PP

int main(void)
{
//Initialize
doInit();

doGPIO Led1 = doGPIO(GPIOB,GPIO_Pin_7,OUTPUT);
Serial Computer1 = Serial(115200);

Computer1.println(“Starting touch sensing program…”);

Led1.High();
delay(2000);
Led1.Low();
delay(3000);

for(int i=0;i<=10;i++) { Led1.Toggle(); delay(200); } if(Led1.Read()) { Computer1.println(“On”); } else { Computer1.println(“Off”); } while(1) { if(Computer1.available()) { Computer1.printchar(Computer1.read()); Computer1.print(“o”); Computer1.printchar(Computer1.available()); } else { Computer1.print(“x”); } delay(100); } }

I have started writing Arduino library for ARM Cortex-M3 processor. It is currently in C++.

Tested on:
ARM Cortex-M3 model STM32F10ret

Supported Arduino-like functions (so far) are:

doInit(); //General initialization
doGPIO(GPIOx,GPIO_Pin_x,OUTPUT|INPUT);
void High(void);
void Low(void);
bool Read(void);
void Toggle(void); // new function : -)

Serial(Baudrate); //Object – equivalent of Serial.begin() 8N1 config
Serial.print();
Serial.println();
Serial.printchar(); //new function – output a character (not string)
Serial.read();
Serial.available();
Serial.getdata(); // new function to get up to 9 bits data in 9 bit mode

delay();
delayMicroseconds();

Sample code:

/* Includes —specific to STM32F10x boards in C (not C++) format */
extern “C” {
#include “stm32f10x_lib.h”
}

/* General X duino like includes to create Arduino type language */
#include “generalInit.h”
#include “doGPIO.h”
#include “Serial.h”
#include “miscFunction.h”

#define INPUT GPIO_Mode_IN_FLOATING
#define OUTPUT GPIO_Mode_Out_PP

int main(void)
{
//Initialize
doInit();

doGPIO Led1 = doGPIO(GPIOB,GPIO_Pin_7,OUTPUT);
Serial Computer1 = Serial(115200);

Computer1.println(“Starting touch sensing program…”);

Led1.High();
delay(2000);
Led1.Low();
delay(3000);

for(int i=0;i<=10;i++) { Led1.Toggle(); delay(200); } if(Led1.Read()) { Computer1.println(“On”); } else { Computer1.println(“Off”); } while(1) { if(Computer1.available()) { Computer1.printchar(Computer1.read()); Computer1.print(“o”); Computer1.printchar(Computer1.available()); } else { Computer1.print(“x”); } delay(100); } }

I have started writing Arduino library for ARM Cortex-M3 processor. It is currently in C++.

Tested on:
ARM Cortex-M3 model STM32F10ret

Supported Arduino-like functions (so far) are:

doInit(); //General initialization

doGPIO(GPIOx,GPIO_Pin_x,OUTPUT|INPUT); //Object – GPIO pin
void High(void);
void Low(void);
bool Read(void);
void Toggle(void); // new function to reverse the state : -)

Serial(Baudrate); //Object – equivalent of Serial.begin() 8N1 config
Serial.print(); //output string
Serial.println(); //output string with new line
Serial.printchar(); //new function – output a character (not string)
Serial.read();
Serial.available(); // check for incoming data
Serial.getdata(); // new function to get up to 9 bits data in 9 bit mode

delay();
delayMicroseconds();

Sample code:

/* Includes —specific to STM32F10x boards in C (not C++) format */
extern “C” {
#include “stm32f10x_lib.h”
}

/* General X duino like includes to create Arduino type language */
#include “generalInit.h”
#include “doGPIO.h”
#include “Serial.h”
#include “miscFunction.h”

#define INPUT GPIO_Mode_IN_FLOATING
#define OUTPUT GPIO_Mode_Out_PP

int main(void)
{
//Initialize
doInit();

doGPIO Led1 = doGPIO(GPIOB,GPIO_Pin_7,OUTPUT);
Serial Computer1 = Serial(115200);

Computer1.println(“Starting touch sensing program…”);

Led1.High();
delay(2000);
Led1.Low();
delay(3000);

for(int i=0;i<=10;i++) { Led1.Toggle(); delay(200); } if(Led1.Read()) { Computer1.println(“On”); } else { Computer1.println(“Off”); } while(1) { if(Computer1.available()) { Computer1.printchar(Computer1.read()); Computer1.print(“o”); Computer1.printchar(Computer1.available()); } else { Computer1.print(“x”); } delay(100); } }

If you like our project please support us by buying our product (hardware page) or donating to us




easier way to pay online!”>

Feel free to contact us, we welcome all your comments/suggestions/requests : -)

    Your Name (required)

    Your Email (required)

    Subject

    Your Message


    To use CAPTCHA, you need Really Simple CAPTCHA plugin installed.

    Please enter the letters above here:

    Share