Introduction: Amazing ARDUINO Killer

Picture of Amazing ARDUINO Killer

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

Picture of 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

Picture of 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

Picture of 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

Picture of 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

Picture of 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

Picture of 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


AzurusNova (author)2017-07-03

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

HardiqV (author)AzurusNova2017-07-03

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.

AzurusNova (author)HardiqV2017-07-16

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.

HardiqV (author)AzurusNova2017-07-16

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

HardiqV (author)HardiqV2017-07-16

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

AzurusNova (author)HardiqV2017-07-16

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.

HardiqV (author)AzurusNova2017-07-17

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.

AzurusNova (author)HardiqV2017-07-17

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.

HardiqV (author)AzurusNova2017-07-23

Hope You find a solution

AzurusNova (author)HardiqV2017-07-14

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?

AzurusNova (author)HardiqV2017-07-03

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

HardiqV (author)AzurusNova2017-07-03

Yes they are ridiculously cheap as compared to their specification.

AzurusNova (author)HardiqV2017-07-03

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

tytower (author)AzurusNova2017-07-03

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

HardiqV (author)2017-07-02

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

CrtSuznik (author)HardiqV2017-07-02

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.

AzurusNova (author)CrtSuznik2017-07-16

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.

CrtSuznik (author)HardiqV2017-07-02

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?

HardiqV (author)CrtSuznik2017-07-02

I have attached the updated photo you can see the parameters to set.

Also while connecting the STM32 to the computer make sure that both the boot pins are at 0.

Also while uploading program to the STM32 using STM32 bootloader it will not show COM PORT. when you will click upload then you can see The port on the bottom right corner and then select that in the COM PORT menu.

Hope It Helps

CrtSuznik (author)2017-07-02

i got it to flash the bootloader, but my pc doesnt recongise the board when i plug it in later. any suggestions?

AzurusNova (author)CrtSuznik2017-07-16

I am at this same point myself. Just got ten boards all sucessfully flashed with the bootloader. Can't get the aurduino ide to see the board though.

frarugi87 (author)2017-07-03

I found exactly the same board as yours, but for a very similar price you can get the maple mini. It has the same STM32 micro you have, uses the same Arduino STM32 project, but has a great advantage: it comes with a pre-loaded bootloader. So no FTDI, no bootloader programming, nothing. Plug it in and it works. Just like an arduino board... Only with a much better hardware ;)

wstewl (author)frarugi872017-07-04

how about a link to buy this maple mini?

frarugi87 (author)wstewl2017-07-05

Totally right... You can search them on ebay or aliexpress, but here are some links of the ones I bought.
I bought my first on Aliexpress (I looked for the cheapest one at the moment I bought it):

Then I thought I had broken it (it was heating a lot when powered and not connecting), so I needed to replace it quickly. I bought it again on with a 2-days delivery, paying almost 3 times as much (but getting it very quickly:

Then I noticed that it was just a wire short circuit on the solderings I made, so now I have two working maple mini ;) Anyway from China you can get them for 3-4$

frarugi87 (author)frarugi872017-07-05

I noticed that the first one is not available anymore... Well, there is this one:

It even costs less now (3.03 $)... If you want more, I also saw 5pcs bundles for about 17.50$

Skorekaj (author)2017-07-04

Shame that you haven't really told us why we should bother, performance/power consumption, etc???
The Arduino nano is cheaper and i can get 2 for the prise of one of these boards?

HardiqV (author)Skorekaj2017-07-04


I think You are mistaken Arduino nano is priced at almost the same price as of these STM32 boards

And no way you can get 2 arduino boards for the same price.

The cheapest Arduino nano that i could find on Aliexpress is same at the price point

Also First read the full article and then comment

I have mentioned that why you should choose these boards over the Arduino Nano

CrtSuznik (author)2017-07-02

Im pretty sure I did everything according to the instructable. I managed to flash it, but when I select the board, the port isnt even an option, so I cant upload to it.

HardiqV (author)CrtSuznik2017-07-02

got to the above mentioned link and download the software .

After the installation of the software open zadig and click on list all devices and then choose maple and then click replace driver

Hope it Helps

CrtSuznik (author)HardiqV2017-07-03

It didn't help. Which positions do the jumpers need to be in?

Also why does your IDE not list a port? Has anyone got it to work?

DavidV12 (author)2017-07-03

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

This is not true. The lower half of PA and part of PB are not.

HardiqV (author)DavidV122017-07-03

you said it right .Not all pins are 5v tolerant . but almost all are 5v tolerant. I didn't mentioned the pins in order to not make this guide difficult.

DavidV12 (author)2017-07-03

Also, your example program is logic-reversed - PC13 cannot source current and the onboard LED is wired as sink logic.

HardiqV (author)DavidV122017-07-03

The code I used from the Digital example sketch from the Arduino STM_32 master .

I know the logic is reversed . but as i said i don't make it complex.

tytower (author)2017-07-02

I see B6 and B7 are I2C1 but so are B8 and B9 is this an error too?

HardiqV (author)tytower2017-07-02

Yes DavidV12 is right .You can tell the arduino IDE that what your pin needs to do

DavidV12 (author)tytower2017-07-02

STM32 has user-configuratble alternate pin assignments.

HardiqV (author)2017-07-02

the photo i attached is wrong i will update it by tomorrow. is it ok

tytower (author)HardiqV2017-07-02

Not much of a start?

Erich1805 (author)2017-07-02

The "Flash Loader Demonstrator" does not find my STM32F103C via FTDI

What to do? Any explanation for this? Installed on Win 10! Help!!


HardiqV (author)Erich18052017-07-02

Remove the ftdi adapter from computer and restart the flash loader program also make sure that that boot pins are at 0 .

Hopefully it will work

CrtSuznik (author)Erich18052017-07-02

I had that problem too. You should put the upper jumper to position 0 (I think, just play around with them if that doesn't work)

the_3d6 (author)2017-07-02

Thanks for detailed instruction! We are using stm32 for a long time, but since Maple project has ended, I hadn't seen really cheap and convenient replacement. Seems like a great option for someone who needs more than arduino can provide

HardiqV (author)the_3d62017-07-02


Hope you find it useful

About This Instructable




Bio: 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 ... More »
More by HardiqV:Awesome 3D Printed Bluetooth SpeakerAwesome SpiderMan FIdget SpinnerAwesome SpiderMan Fidget Spinner
Add instructable to: