This first post mainly focuses on what hardware is available, and how to configure it to upload simple code. However, LeafLabs built a whole bunch of tooling to let you write code for these boards as if they were Arduinos using digitalWritepinModeand other familiar Wiring-style functions.
This lives on as the open-source STM32duino project, and a lot of the info in this blog post comes from their wiki. A pinout is available on the wiki link above; notably, this board uses its own naming scheme for the pins, and you have to use this table to convert between those and the actual GPIO names if you want to program it in Rust or use something apart from the STM32duino environment.
Firstly, the on-board voltage regulator used to convert from 5V to 3. Despite that, though, the Blue Pill is still pretty useful.
Arduino Pro Mini
While it is possible to upload code to the Maple Mini via USB only, the Blue Pill requires one of the below tools to upload anything you can flash a bootloader that lets you upload via USB, and then do that, but you still need the tool for the first flash.
The pinout varies depending on which kind you end up with - see the below diagram the one pictured above is the one on the right below.
Incidentally, this also works with the serial console connection on a Raspberry Pi. Follow the STM32duino Installation guide. This is also a relatively easy way to upload code to a Blue Pill without futzing around with the ST-Link. Once again, setup instructions differ depending on board.
Use the ST-Link pinout diagram from above. In this section, connect up the boards as described in the STM32duino section earlier. These instructions only work for Linux at the moment. Similar packages may be available for other distributions. On Arch Linux, install the stlink package pacman -S stlink. Should return a non-zero value mine says 0x If it returns nothing or 0xcheck that everything is connected correctly.
If you have a newer version of the stlink tools, st-info --probe may also tell you some interesting information. If you installed the stlink package, you might also be able to run. On Arch Linux, install the dfu-util package pacman -S dfu-util. Thanks for reading! This blog post has been syndicated to the following places feel free to leave a comment there! Tools While it is possible to upload code to the Maple Mini via USB only, the Blue Pill requires one of the below tools to upload anything you can flash a bootloader that lets you upload via USB, and then do that, but you still need the tool for the first flash.
Hit Upload the right-facing arrow on the main toolbar. Observe blinking LED. Upload code - using a serial adapter STM32F chips have an internal mode built into the chip that lets you flash programs via a USB to TTL serial adapter, such as the one featured above. During normal operation i.
To flash code using this method, the top jumper closest to B10 should be in the 1 position, with the other left in 0. Do remember to restore the jumper to the correct position after uploading! Command-line flashing In this section, connect up the boards as described in the STM32duino section earlier.Additionally I need to credit Bob Cousins for his work to bring the Maple hardware files etc into the Arduino 1.
I initially thought this board was the same as the Maple mini clones, that seem to be prevalent now on eBay but its not the same board, however I will come back to this, probably in another post. So it appears that for serial 1, the pins are D25 and D The rest of this tutorial will show you how to upload directly into the Flash on the chip. This will compile a lot of files and then upload Once the upload is complete, the LED on the maple should flash, this also works on the generic STM32 board as it also blinks pin PC13 If it has uploaded but nothing blinks, check you have a maple board or check where your LED is attached.
If the board fails to upload, the best thing to do is unplug the usb to serial from the PC, then reconnect, reset the Maple using the same sequence as before and try again.
If it still fails to upload, check the serial connections are to the correct pins and are not swapped around. I will post about more advanced things like Serial in a later post, but hopefully this would be enough of an introduction to get people up and running. Download and install the Arduino 1. The schematic for the maple mini can be download as a PDF from here.The Mega has a different pinout for its SPI bus, so some hacking is required.
Also, the Maple USB currently does not work with the Codec Shield, due to interrupt blocking times, and Arduino serial commands have the same problem. You can still use the Arduino serial port if you access it directly. Check out the wiki page for the Arduino and Maple code libraries. The Audio Codec Shield pins out all of the useful pins on the codec, including the microphone pins, the line in and line out pins, the headphone pins, and the midrail bias voltage pin.
It also has a 5V to 3. And the enable pin on the level translator is pinned out, in case you want to multiplex your SPI line. The WM has a lot of useful features, and routines have been written for most of them for both Arduino and Maple the 32bit Arduino alternative.
In the addition to high frequency audio sampling, the WM is capable of sample rates all the way down to 2kHz. The variable sampling rate can come in handy if you need to free-up more processing time. Open Music Labs. Skip to content. Videos : 1. Codec Shield overview 2.
Recent Articles x0x-heart at Crowd Supply! My summer vacation, by guest. Codec Shields on Sale! Article Topics arduino avr floppy-audio getting started how-to ISP microdec modifications updates wiki. Open Music Labs Mail us: questions openmusiclabs.Dev boards sporting a powerful ARM microcontroller are the future, despite what a gaggle of Arduino clones from China will tell you. It sports a newer microcontroller, but still has the same bootloader and pinout.
The best part? It costs less than four dollars. The big deal is, of course, the price of the board. I found the low- to mid-end STM32 micros to me more reasonably priced than the big ones like Almost forgot. They offer faster clock rates. I have some Maple Minis still in my drawer. I never got around to using them as they are seemingly harder to programm for then my arduino nanos. Had anyone ever find a nice guide for the maple mini on how to use them?
Sadly, EOL also menas end of Data available online and I have a hard time finding a toolchain to work with them. Any Maple Mini users here who would like to share how they do it? There are several topics on developer.
I had seen someone mention it, but having a memory like Swiss cheese I managed to forget it almost instantly, so thanks for the tip! The project page linked here also seems confused; they are asserting incorrectly that the C8 is k. You want my interest? The chip are often the same until the volume of the smaller one reaches a point where a redesign makes sense. I worked at a place that was bitten by than, the code accidentally used some ram that was only there because it was the bigger version of the chip, when the production reached a large volume the manufacturer made a new version of the chip that only had the ram is was supposed to and everything stopped working.
The STM32F1 CPUs are quite powerfull and are very well capable of doing real-time audio-processing, but if the chip does not have a DAC to output the audio, this really limits the usefullness of the chip. I second eBay for buying these type of boards. Any device with the programming resources of an Apple ][ is powerful enough to be interesting, but simple enough to be knowable. Programming them is fun, and a new generation of people discover that every time a new 8-bit platform comes around.
People who get tired of that move to operating systems in order to get a hardware abstraction layer, then find themselves dealing with time-critical problems that are easily solved with 8-bit peripherals. So yes. Four different decades would mean you saw 8-bit programming relegated to the dustbin of history in the s. The Intel and Motorola HC11 accounted for nearly all microcontroller sales well into the s. Even the first 40 pin AVR released in was designed to be pinout compatible with the But I think the popularity had as much to do with mindshare as the price.
Fully optimised code on an 8 bit should be able to run a medium sized factory…. So every application of a 32 bit system so far should be regarded as a weaksauce failure :-p. By the way, as an example of 8 bit can be fully grokked, although also an impressive feat in any case, a blind guy wrote the first text to speech util available for the Apple II by composing and assembling it in his head, and typing the code in from memory.
Can anyone point me to an up-to-date tutorial on how to install the dev environment for stm? Most of what i find is broken in some way or another. And they should remove the stupid forced register to download crap, tired of spam and hacked sites spilling my email… again, all they get from me is another disposable mail.
Would be worth checking out mbed.This page is a general resource for information specific to the Maple Mini. The Maple Mini is a smaller version of the Maple that fits on a breadboard. The silkscreen on the Maple Mini suggests it will accept an input voltage up to 16 V.
We recommend applying no greater than 12 Vand potentially even lower depending upon the current draw requirements of the application. Please see Power Regulation on the Maple Mini for more information. Power regulation on the Maple is provided by two low dropout linear voltage regulators.
You can download the datasheet here. One of the regulators supplies power to the digital voltage plane; the other supplies power to the analog voltage plane. These voltage regulators nominally take an input of up to 16V. In addition, while the maximum continuous output current for the board is mA, if you are powering the board off higher voltages the amount off current it can supply goes down, due to the regulators needing to dissipate the extra power.
Arduino Alternative - STM32 Blue Pill Programming Via USB
So if you are powering the board off 12V, the max current is about 40mA at room temperature. In general again, at room temperature the max power dissipation PD for the chip is about. For exact max current calculations, please refer to the datasheet linked above. If you are planning to draw a lot of current from the Maple board, it is necessary to provide input power as close to 3. Powering the microcontroller circuitry and LEDs on the board alone takes approximately 30mA, so if you are powering the board with 12V that leaves only 10mA at best available for powering any user circuitry.
Attempting to draw more than 10mA runs the risk of shorting out the power regulators and bricking your board. However, some of them have special uses by default . It is thus mainly useful as an input. The pin will read HIGH when the button is pressed.
It is thus mainly useful as an output. It also supports PWMfor finer-grained brightness control.Битва клонов. Arduino Nano vs Maple Mini
This table shows a summary the available functionality on every GPIO pin, by peripheral type.I have all the hardware needed and just sat down to hook it up. But, I've just spent quite a while searching the data sheets technical and reference and then general Googling for any clue of what pins to use for JTAG connection. Am I going mad? Where should I be looking? Oh yeah Their is a hint in Figure 1 which lists all of the MCU functional blocks and their pins, but that isn't enough.
Hence start at RM RM is expicit. Table in section Here it is, converted to be "mini-friendly':. Thank you, so much. I am ashamed to have somehow missed section Guess I was having a worse day than I thought, at the time. I have also made the 20 not 10? Oh, the irony! Now, armed with your information and a good dose of WTF flowing in my blood, I should be able to get things working. Oh and, I have read a note about how the Maple-mini disables JTAG debugging by default and the function call that re-enables it.
Much better to fix things and make progress!! Okay 20pin to 8pin, sorry about that I have tried to fix it in my post above. The 10pin is more of an ARM connector mentioned in an Appendix in that book.
The modern ARM 10 pin connector is 0. Thanks for posting about JTAG being disabled. Having that mentioned on this thread will probably help others a lot. One of the advantages of 2-signal SWD is it leaves more pins available for the application.
That might be a helpful compromise, as SWD would always be available for debugging, but you only lose two pins.
A guide to STM32F103 microcontrollers - part 1
I've been tearing my hair out, trying to understand this incredibly complex openocd program. So I have no beaten path to following, in the form of that run. I have been trying to piece together my own openocd. But the going is tough -- especially when the documentation on the OpenOCD website refers to older than current versions of the program, where the ft driver is present, when in fact it is no longer and has been replaced by ftdi.However if you need more speed, more analog inputs, more precision, but still don't want to switch from Arduino programming, there's a elegant solution The blue pill!
If you haven't heard there's an Arduino nano like board, nicknamed the blue pill. Would you care to guess it's colour? The best thing apart from it's amazing speed and overall performance is the ability to program it with the Arduino IDE, essentially making it an Arduino. You'll say it sounds too good to be true and it kind of is.
Using Maple Mini board with mbed
There is a catch. The boards can't be programmed over USB, since they don't come with a bootloader. A bootloader is basically Windows for microcontrollers, it doesn't do anything, but you still need it to run stuff. Did you use this instructable in your classroom? Add a Teacher Note to share how you incorporated it into your lesson. First you'll need the board itself. I recommend you buy them here :. You'll also need a USB to TTL programmer which you will only need to program the board the first time, but it's also usefull for other projects so you might as well own one Some wires or jumper cables are also usefull, but I'll assume you have those on hand.
If not, improvise. Before you can start programming the blue pill in the Arduino IDE. Don't worry, this is quite easy. If you already have something in the window, just go into a new line. There should only be one result. Click install lower right corner and wait for it to install. When that finishes, close the IDE again. Since windows doesn't properly recognise the board, you should manually install the drivers. This too it just a "drag and drop" process so don't worry, I'm sure you can handle it.
Once you've done that, open the zip file. Keep it open and go to where ever your Arduino installation folder is. Click on that and install the drivers. Just say yes to everything. Remember that "windows" thingy that needs to be on the board in order for you to use the USB, well, we have to put it on the board now.