Amazing ARDUINO Killer





Introduction: Amazing ARDUINO Killer

About: I love to design new things and make products. i do design things in fusion 360 and love 3d printing. i have a keen interest in robotics and automation on a major. i constantly do research and learn about ne...

We love the Arduino board and it's prototyping platform . It makes the complete prototyping process smooth and enjoying with the help of it's add on such as Arduino IDE and a huge community support.But sooner or later you will find that the specifications provided by the arduino boards is not enough . And then the problem arises about which board should we use so that our desires are fulfilled.Also How easy is to use a non arduino board .

After a good research I found that the STM 32 is perfect fit.

Visit My Blog For more :-

Step 1: Difference Between STM32 and Arduino Nano

Comparison between the two development boards can be made out on Two things namingly hardware and software.

From the hardware aspect the STM32 board completely outshines over the Arduino Nano.

The STM32 Has almost identical form factor as compared to Arduino Nano.

STM32 also provides some of the great features as compared to the Arduino Nano.

It has on Board RTC and you can also connect a battery to the Vbat pin in order to retain the the RTC data.

It also has a DMA controller. DMA stands for Direct Memory Access Controller.

Also all the pins on the STM32 pins are 5v tolerant so don't need any level converters.

Also You can Program the STM32 board using the favorite Arduino IDE which makes it damn simple easy.

If you want to know more about the STM32 you can download the datasheet provided.

Step 2: Getting Started With STM32

Go ahead and purchase this board from here :-STM32 board

Also big thanks for rogerclark for his awesome work to make these boards easy to use.

Also Download the Files attached in this instructable.

Also Install the The FTDI adapter driver on your computer.

Also Download the latest Arduino IDE from

Step 3: Configuring the Setup

Unzip the Arduino_STM32 zip file and extract it in the hardware folder of the arduino directory.

Then open Arduino IDE and go to boards Manager and install Arduino SAM boards.

Then Wire Your FTDI adapter as Follows:-

FTDI Pin STM32 Pin

VCC(3.3v) 3.3v


RX PA9 or A9

TX PA10 or A10

Make sure you change the jumper from 5v to 3.3v on FTDI adapter.

Now also Install the The flash Tool provided in this instructable.

Step 4: Burning Bootloader to the STM32 Board

Just like the Arduino boards you can also install the Bootloader on to the STM32 Development Board .

By burning Bootloader to the board you can then directly program the board without any USB to serial adapter.

Open The Flash Tool and select the Correct COM PORT and then click Next.

and then choose STM32 medium Density 64KB and Then click next.

And then click next and then choose the .bin file provided in this instructable and then click next .

After a while you will see that the Bootloader is flashed.

Now you don't need USB to serial adapter.

Now you can directly program the STM32 board with The USB Cable

Step 5: UPLOADING Your First Program

Now Connect the STM32 board to the computer using a USB cable and Open Arduino IDE

Set the Parameters as Shown In the PHOTO.

Now Upload This Code

void setup() {
// initialize digital pin PC13 as an output.

pinMode(PC13, OUTPUT);


void loop()


digitalWrite(PC13, HIGH);

// turn the LED on (HIGH is the voltage level)

delay(1000); // wait for a second

digitalWrite(PC13, LOW); // turn the LED off by making the voltage LOW

delay(1000); // wait for a second


After Uploading The code You will see the LED Light Flashing.

YOU can also play with the delay to achieve different timing effects.

Step 6: FINISH

This is a basic guide to get you started .

Of course I will be making more instructables on this board so you can get better understanding.

Almost all arduino libraries are supported.

I hope you liked This Instructable .

Please Consider voting me in the contest and also Check my blog for more tutorials, projects and Facts



    • Creative Misuse Contest

      Creative Misuse Contest
    • Water Contest

      Water Contest
    • Clocks Contest

      Clocks Contest

    46 Discussions

    By any chance do you know where I can get the STM32s with the GPIO pin sets presoldered? I live in a residence with very sensitive smoke/fire detectors in each room.

    1 reply

    I had the same problem till I set up an exhaust system. It uses a 4in duct and a computer fan with the fan sucking the air out the window. I store it in a shoe-box when not in use.

    Will these instructions work out the same way with someone who is on a Linux bases operating system?

    13 replies

    i am sorry these instructions are for the windows operating system. Also the above attached files are .exe files which are only executable in Windows if you are not using any Windows emulator on Linux.

    Alright, got all my boards flashed properly now.
    Should I move both boot pins to 0?
    When I plug it in by USB it doesnt show up.

    Yes move the jumpers to 0 and plug in the USB and go to device manager and see if it shows mini maple or something else

    If it doesn't then download zadig and stm32 virtual com port driver and install it .
    I have attached the files in this instructable

    Well I have made some progress.

    Here is where I am at. Ill provide screenshots of what the IDE is showing.

    When I run the IDE it compiles and sends it to the device, it says it completed correctly, but the PC13 led is still blinking quickly. I can't figure out why it is not running the script. Still really happy with the progress I have made though.
    Eagerly waiting for your reply.

    Screenshot from 2017-07-16 14:36:25.pngScreenshot from 2017-07-16 14:37:21.pngScreenshot from 2017-07-16 14:37:45.png

    according to your pictures it seems that the board is not recognized by the arduino .

    does it show up in COM menu. You have to select the correct com port then it will upload.

    It does not show up with the USB0 com port on my desktop. Ive tried this same setup on another linux machine and I have to go through the same steps to get the sketch to load onto the board. I have to have the "upload_router" script running in an open terminal window for the DFU to see the board after I hit its reset button, it then catches it and then I can upload to the board, then the IDE resets the board and it runs the newly uploaded script.

    I have been talking to Roger Clark on a Gitter chat room about this very issue. When I figure out what the issue is I shall report back with the solution.

    Trying to flash this with all the settings you have described, but each time I try to connect, the flashing utility says this to me.
    "No response from the target, the Boot loader can not be started.
    Pleas, verify the boot mode configuration and the flash protection
    Reset your device then try again..."

    I have both jumpers set to 0 and I am using an Arduino Duemilanove without the arduino chip installed as an FTDI programmer.

    P.S. When this is all programmed correctly, I won't need to use an FTDI device to program it each time, I could program it over the on board USB port?

    Picked up 10 of these boards, for the price its SO worth it.

    Yes they are ridiculously cheap as compared to their specification.

    Well I do have windows on a virtual machine, until then Ill do that. Let me know if you do come up with a linux friendly way.

    Going to be getting a few of these boards just for my parts bins. :P

    Pull the arduino operating system for Linux and it will work as above . Make the text files into ".ino" files . he should post the ino files here its easier

    unzip this file and install this Virtual Com Port driver from ST microelectronics

    and then disconnect the board and then again connect board and then it will recognize.

    If it doesn't recognize . please free to ask

    3 replies

    Still not working. I had the STM32 in my hardware foulder from before, since I used a USB to TLL before btw. And I'm using the 1.6.9 IDE. Besides, on your picture, the IDE doesn't seem to find the correct port either.

    I am having the same issues you are, but I am on a linux machine, so I don't think this is something to do with what OS, but more has something to do with either the IDE or the board.

    Also your pic doesn't really show which parameters we're supposed to set while programming it.
    In device manager it shows the board as Maple 003, but the arduino IDE still doesn't show a port that I can pick. Any advice?