Introduction: 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 :- http://hardiqv.blogspot.com/

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 arduino.cc

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

GND GND

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

http://hardiqv.blogspot.com/

Comments

author
AzurusNova made it!(author)2017-07-03

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

author
HardiqV made it!(author)2017-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.

author
AzurusNova made it!(author)2017-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.

author
HardiqV made it!(author)2017-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

author
HardiqV made it!(author)2017-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

author
AzurusNova made it!(author)2017-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.

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
author
HardiqV made it!(author)2017-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.

author
AzurusNova made it!(author)2017-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.

author
AzurusNova made it!(author)2017-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
status,
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?

author
AzurusNova made it!(author)2017-07-03

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

author
HardiqV made it!(author)2017-07-03

Yes they are ridiculously cheap as compared to their specification.

author
AzurusNova made it!(author)2017-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

author
tytower made it!(author)2017-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

author
HardiqV made it!(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

en.stsw-stm32102.zip
author
CrtSuznik made it!(author)2017-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.

author
AzurusNova made it!(author)2017-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.

author
CrtSuznik made it!(author)2017-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?

author
HardiqV made it!(author)2017-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

author
CrtSuznik made it!(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?

author
AzurusNova made it!(author)2017-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.

author
frarugi87 made it!(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 ;)

author
wstewl made it!(author)2017-07-04

how about a link to buy this maple mini?

author
frarugi87 made it!(author)2017-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):

https://www.aliexpress.com/item/STM32F103RCBT6-ARM...

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 Amazon.it with a 2-days delivery, paying almost 3 times as much (but getting it very quickly:

https://www.amazon.it/gp/product/B016IV7MV4

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$

author
frarugi87 made it!(author)2017-07-05

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

https://www.aliexpress.com/item/STM32F103RCBT6-ARM...

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

author
Skorekaj made it!(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?

author
HardiqV made it!(author)2017-07-04

Brother

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

https://goo.gl/mkZBfS

Also First read the full article and then comment

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

author
CrtSuznik made it!(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.

author
HardiqV made it!(author)2017-07-02

http://zadig.akeo.ie/

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

author
CrtSuznik made it!(author)2017-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?

author
DavidV12 made it!(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.

author
HardiqV made it!(author)2017-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.

author
DavidV12 made it!(author)2017-07-03

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

author
HardiqV made it!(author)2017-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.

author
tytower made it!(author)2017-07-02

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

author
HardiqV made it!(author)2017-07-02

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

author
DavidV12 made it!(author)2017-07-02

STM32 has user-configuratble alternate pin assignments.

author
HardiqV made it!(author)2017-07-02

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

author
tytower made it!(author)2017-07-02

Not much of a start?

author
Erich1805 made it!(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!!

Eric

author
HardiqV made it!(author)2017-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

author
CrtSuznik made it!(author)2017-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)

author
the_3d6 made it!(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

author
HardiqV made it!(author)2017-07-02

Thx

Hope you find it useful

About This Instructable

9,386views

142favorites

License:

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:Top Eight Interesting Notepad Tricks$1 Smallest Arduino DIYAmazing ARDUINO Killer
Add instructable to: