I have recently just built a custom arduino using the schematics found on their website. As awesome as this little processor is, I need more power. I have been thinking of making my own MCU, but wanted to know if it is possible to make them compatible with the arduino software. It would be very nice to not have to rewrite my existing programs.

If so, how would I go about doing that? If this is not a possibility (or just not a good idea for any reason), which language should I learn to start programming these upper level MCUs.

If I do have to start using a different language, what kind of software do I use to upload the code to these processors? And do they have the common features like Serial Monitor and Serial Plotter like the Arduino IDE does.

  • 10
    Are you talking about making your own MCU or your own devboard? The former requires a lot more work.
    – Felthry
    Apr 26, 2017 at 1:59
  • 2
    Have a look at the Teensy boards: pjrc.com
    – Abe Karplus
    Apr 26, 2017 at 1:59
  • There are several "Arduino compatible" boards with ARM core mcu, over at mbed.org (note: my employer makes one of them, the MAX32600MBED.)
    – MarkU
    Apr 26, 2017 at 2:26
  • What do you mean by "power"? Actual electrical power, i.e. "more watts" or more computational power, i.e. "more MIPS" (or "more MHz's")? It is not clear from your question. Apr 26, 2017 at 3:12
  • There's already arduino compatible 32-bit microcontroller boards (ARM,MIPS,X86 ....) - see the wikipedia "List of Arduino boards and compatible systems"
    – Jasen
    Apr 26, 2017 at 3:33

2 Answers 2


You are speaking of porting. The arduino environment is built around a set of libraries and commands that are designed to abstract the low level access to a simpler high level language. In order to make arduino code work on a new microcontroller, you would have to rewrite and recreate the libraries using the low level access of your target microcontroller.

For example, Energia is a port of the Arduino libraries to the Texas Instruments MSP430 line of microcontrollers. Since not all features are the same, some code does not just drop in directly but additional code or libraries could be added to fix that. Even the Arduino IDE, the program used to write code and program the arduino was ported.

It would not be a trivial thing to port an entire library base.

As to your other questions, you would code your new microcontroller in any language it's programmer and compiler can use. Likely C or C++. Arduinos are typically programmed in C++. You should look into the manufacturer of your MCU to find out what software to use, and what libraries they offer. They likely do not offer something like the serial monitor right out of the box.

  • 1
    ...but no porting is necessary, if one chooses a more potent MCU for which a port already exists. Apr 26, 2017 at 3:52

The Arduino IDE supports a whole list of micros:


Some of those have a lot more power than the others. But to answer your question, no you cannot say take an ARM and use the Arduino IDE with it. It all comes down to your compiler and environment. At work we use ARm based processors and Keil uVision to program and Flip to program them. At my previous job we used Freescale Kinetis micros with CodeWarrior to flash and write the software. It all depends on what you decide to go with to fit your application, but it all boils down to it's all C or assembly if you decide to go that way.

  • 3
    OTOH, you could take existing ARM support for Arduino and modify it appropriately for your specific chip. Apr 26, 2017 at 2:13
  • That's a very outdated list. Better is github.com/arduino/Arduino/wiki/… in addition to the product page: arduino.cc/en/Main/Products. If you look at those pages you will see there is support for ARM based boards made by Arduino as well as 3rd party ARM boards so your statement is wrong. Arduino is not only AVR! Of course there may be a significant amount of work to add support for an ARM that is not currently supported but it's certainly possible.
    – per1234
    Apr 26, 2017 at 10:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.