suggestion if you are struggling with the STM32 board #morsecodetutor #mct
Doug W
It looks like several people are struggling setting up the blue pill type boards. I have a suggestion for those of you that are losing sleep trying to get your boards working. I should back up and state that I had no first hand knowledge of these boards prior to W8TEE mentioning in a post he was going to use them for this project. In one of the earlier messages about this project, Jack mentioned the Maple Mini variety of the STM32 boards. That got me looking to see why. There was a very good reason to call out the Maple Mini specifically. That board was developed by Leaf Labs as one of the first, if not the first, Arduino compatible boards using the STM32. They built it to be as Arduino user friendly as possible. Skipping ahead to why that matters, that board has onboard USB and a preloaded bootloader. You still need to add the board to the Arduino IDE but it is as close to plug and play as there is in a STM32 board. Unfortunately, Leaf Labs is no more but according to https://wiki.stm32duino.com/index.php?title=Maple_Mini , a good read if this is of interest to you, AliExpress seller Baite sells a good quality clone of the original. The wiki links to a listing for 5 pieces, here is the link for one board https://www.aliexpress.com/item/leaflabs-Leaf-maple-mini-ARM-STM32-compatibility/1400667476.html With the cheapest shipping option, in the US you're looking at about $5. It took 15 calendar days to get to me in EN52. I didn't time myself but from ripping open the Chinese shipping bag to having the board blink at my command seemed like hardly enough time to hard boil an egg. If you are comfortable with this sort of thing the blue pill boards give you a ton of power at an unbelievable price. However if this is a challenge to you, I humbly suggest you spend a few more bucks and order the Maple Mini clone.
Disclaimer I am far from an expect on this topic. There is a reasonable chance following my advice will lead to heartbreak and poverty. If you do what I suggest and you burn your house down or turn your dog into a cat you should probably rethink your life choices and wonder why you took advise from a stranger online.
|
|
R M
Hi. Thanks for this information. I've played with one then two blue pills. Using the 3 load methods I can load but haven't seen execution. I'll keep trying but I now have some Maples on order. Thanks Ray ae5hn
On Tuesday, June 4, 2019, 9:36:39 AM CDT, Doug W <dougwilner@...> wrote:
It looks like several people are struggling setting up the blue pill type boards. I have a suggestion for those of you that are losing sleep trying to get your boards working...
|
|
Tom, wb6b
Hi,
I've had good experiences with these boards. Pretty much plug and play with the STM32Cube toolchain, and the STM "official" Arduino toolchain. Have not tried them with Roger's Arduino STM32 toolchain (at the moment seemingly the most popular Arduino toolchain), but imagine they should work with the ST-Link programming mode. A couple of examples are: https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-nucleo-boards/nucleo-f303k8.html https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-nucleo-boards/nucleo-f103rb.html But I'm coming up to speed with the Blue Pill as well. Tom, wb6b
|
|
Trying to compile mtc code and not having any luck I think I have all the libraries installed now but the compile goes nowhere and exits out. It does not hilite any line of code so I have no idea what to do now. Here is what I get: Arduino: 1.8.9 (Linux), Board: "Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), STLink, 72Mhz (Normal), Smallest (default)" WARNING: library Tone claims to run on (avr) architecture(s) and may be incompatible with your current board which runs on (STM32F1) architecture(s). /home/david/Arduino/libraries/Tone/Tone.cpp:126:4: error: expected constructor, destructor, or type conversion before '(' token ISR(TIMER0_COMPA_vect) ^ Multiple libraries were found for "Wire.h" Used: /home/david/Documents/arduino/arduino-1.8.9/hardware/Arduino_STM32/STM32F1/libraries/Wire Not used: /home/david/Documents/arduino/arduino-1.8.9/hardware/Arduino_STM32/STM32F1/libraries/WireSlave exit status 1 Error compiling for board Generic STM32F103C series. This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences. This is getting very tiresome. Happy for any assistance. Dave
|
|
jjpurdum
This comment appears at the top of my tone.cpp file: /* || @author Brett Hagman <bhagman@...> || @contribution Fotis Papadopoulos <fpapadopou@...> || @url http://wiring.org.co/ || @url http://roguerobotics.com/ || || @description || | A Software Digital Square Wave Tone Generation Library || | || | Written by Brett Hagman || | http://www.roguerobotics.com/ || | bhagman@..., bhagman@... || | || | This is a Wiring Framework (Arduino) library to produce square-wave || | tones on an arbitrary pin. || | || | You can make multiple instances of the Tone object, to create tones on || | different pins. || | || | The number of tones that can be generated at the same time is limited || | by the number of hardware timers available on the hardware. || | (e.g. ATmega328 has 3 available timers, and the ATmega1280 has 6 timers) || | || | A simplified (single tone) version of this library has been included || | in the Wiring Framework since Wiring 0025 and in the Arduino distribution || | since Arduino 0018. || | || # || || @license Please see the accompanying LICENSE.txt file for this project. || || @name Software PWM Library || @type Library || @target Atmel AVR 8 Bit || || @version 1.0.0 || */ If your looks different, try the one above. Also, does your Wire.cpp file specifically mention the LeafLabs in its header? If not, you're using the wrong Wire library. Mine compiles without error for the same Generic board. I've attached a copy of the code just in case they are different. Jack, W8TEE
On Tuesday, June 4, 2019, 7:51:45 PM EDT, David Nelson <kc2ipx@...> wrote:
Trying to compile mtc code and not having any luck I think I have all the libraries
installed now but the compile goes nowhere and exits out. It does not hilite any line of code so I have no idea what to do now. Here is what I get: Arduino: 1.8.9 (Linux), Board: "Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), STLink, 72Mhz (Normal), Smallest (default)" WARNING: library Tone claims to run on (avr) architecture(s) and may be incompatible with your current board which runs on (STM32F1) architecture(s). /home/david/Arduino/libraries/Tone/Tone.cpp:126:4: error: expected constructor, destructor, or type conversion before '(' token ISR(TIMER0_COMPA_vect) ^ Multiple libraries were found for "Wire.h" Used: /home/david/Documents/arduino/arduino-1.8.9/hardware/Arduino_STM32/STM32F1/libraries/Wire Not used: /home/david/Documents/arduino/arduino-1.8.9/hardware/Arduino_STM32/STM32F1/libraries/WireSlave exit status 1 Error compiling for board Generic STM32F103C series. This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences. This is getting very tiresome. Happy for any assistance. Dave
|
|
Jack that is the same tone library. My wire lib does not say anything about leaflabs. Where did you get your wire lib? What is it called? Thank you Dave
|
|
jjpurdum
That library was included with my install of the STM32 system. I have attached a copy of both Wire and WireSlave. Jack, W8TEE
On Tuesday, June 4, 2019, 9:14:58 PM EDT, David Nelson <kc2ipx@...> wrote:
Jack that is the same tone library. My wire lib does not say anything about leaflabs. Where did you get your wire lib? What is it called? Thank you Dave
|
|
On Tue, Jun 4, 2019 at 04:51 PM, David Nelson wrote:
Multiple libraries were found for "Wire.h"Hi David, This may be one of those classic helpful replies I see so often on programming forums: "Well... It compiled for me". Actually I'll try a little harder than that. I compiled Jack's Morse Code Tutor with Roger's Arduino toolchain. (Yes, I caved in and became a complete wimp and installed the toolchain that works with Jack's code, rather than fighting the brave fight to force it to work with another toolchain). (I still may do that as a learning exercise at another time). First, when I compile the code I get the same message about the Wire/WireSlave libraries, so that may not be an issue. I did a global search for all the Tone.cpp files I have on my computer. I have one in the /Arduino/hardware/Arduino_STM32/ toolchain directory and another in an /Arduino/hardware/heltec/ESP8266/ toolchain directory. Best I can tell the ESP8266 version is not entering into the picture. This is the version it looks like is in Roger's package: https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/master/STM32F1/cores/maple/tone.cpp The one thing I noticed in your log file is: "/home/david/Arduino/libraries/Tone/Tone.cpp:126:4: error". It looks like you have a "Tone.cpp" file installed there also. I'm not sure, but is is possible that the Arduino toolchain gives preference (via a search path mechanism) to libraries in the generic /Arduino/libraries/ directory? Maybe uninstalling (or simply removing) the generic (AVR 8 bit) library would be worth a try. Hopefully this helps. Tom, wb6b
|
|
Doug,
I have ordered a few from Wavgat store (experienced on this kind of boards) https://www.aliexpress.com/item/32525208361.html Your link part number is STM32F103CBT6 and mine is STM32F103C8T6 which is cheaper and has a crystal on it. Just one letter is different, but which one is legit?
|
|
Doug W
On Wed, Jun 5, 2019 at 02:42 AM, Snowist wrote:
Doug,I think you missed the point of my message. The board you link to looks to me to be another blue pill board not a Maple Mini clone like the ones I suggested. It may not be the best choice for someone struggling with getting started. It does not have a bootloader pre-installed and while I do not know if it matters for this specific project, the board you linked to like many of the cheaper ones, only has 64k of flash versus 128k on the Maple Mini. You may have found something that will meet your needs, I do not know. My message was directed at people unfamiliar with this hardware who are getting frustrated trying to figure out something new. My intention was that by buying the Maple Mini clone they could hopefully get past the part that is keeping them from moving forward. I am not an expert with this hardware. I am learning and figuring this out as I go which I am finding very enjoyable. All I am trying to do is share something I figured out that may be helpful to someone a step or two behind me on the path.
|
|
Both are legit. The “CBT6” has more memory than the “C8T6” version… no other differences. See: https://www.st.com/en/microcontrollers-microprocessors/stm32f103.html
Dr. William J. Schmidt - K9HZ J68HZ 8P6HK ZF2HZ PJ4/K9HZ VP5/K9HZ PJ2/K9HZ
Owner - Operator Big Signal Ranch – K9ZC Staunton, Illinois
Owner – Operator Villa Grand Piton – J68HZ Soufriere, St. Lucia W.I. Rent it: www.VillaGrandPiton.com
Moderator – North American QRO Group at Groups.IO.
email: bill@...
From: SoftwareControlledHamRadio@groups.io [mailto:SoftwareControlledHamRadio@groups.io] On Behalf Of Doug W
On Wed, Jun 5, 2019 at 02:42 AM, Snowist wrote:
I think you missed the point of my message. The board you link to looks to me to be another blue pill board not a Maple Mini clone like the ones I suggested. It may not be the best choice for someone struggling with getting started. It does not have a bootloader pre-installed and while I do not know if it matters for this specific project, the board you linked to like many of the cheaper ones, only has 64k of flash versus 128k on the Maple Mini. You may have found something that will meet your needs, I do not know. My message was directed at people unfamiliar with this hardware who are getting frustrated trying to figure out something new. My intention was that by buying the Maple Mini clone they could hopefully get past the part that is keeping them from moving forward. I am not an expert with this hardware. I am learning and figuring this out as I go which I am finding very enjoyable. All I am trying to do is share something I figured out that may be helpful to someone a step or two behind me on the path.
|
|
Sorry about the delay in sending this but my internet has been down. Arduino: 1.8.9 (Linux), Board: "Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), STLink, 72Mhz (Normal), Smallest (default)" WARNING: library Tone claims to run on (avr) architecture(s) and may be incompatible with your current board which runs on (STM32F1) architecture(s). /home/david/Arduino/libraries/Tone/Tone.cpp:126:4: error: expected constructor, destructor, or type conversion before '(' token ISR(TIMER0_COMPA_vect) ^ Multiple libraries were found for "Wire.h" Used: /home/david/Documents/arduino/arduino-1.8.9/hardware/Arduino_STM32/STM32F1/libraries/Wire Not used: /home/david/Arduino/libraries/Wirexx Not used: /home/david/Documents/arduino/arduino-1.8.9/hardware/Arduino_STM32/STM32F1/libraries/WireSlave exit status 1 Error compiling for board Generic STM32F103C series. This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences. Do not know about the ISR error. I can find it in in the tone.cpp but I have no idea what is the problem. I must be missing something but I do not know what it is. I am doing this on linux mint 19 if that makes a difference. Thanks Dave
|
|
jjpurdum
First, what op system are you running and do you know the maker of your board? Second, what happens if you make this: #define WIRING the first line in the MorseTutor.h header file. Jack, W8TEE
On Wednesday, June 5, 2019, 1:20:53 PM EDT, David Nelson <kc2ipx@...> wrote:
Sorry about the delay in sending this but my internet has been down. Arduino: 1.8.9 (Linux), Board: "Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), STLink, 72Mhz (Normal), Smallest (default)" WARNING: library Tone claims to run on (avr) architecture(s) and may be incompatible with your current board which runs on (STM32F1) architecture(s). /home/david/Arduino/libraries/Tone/Tone.cpp:126:4: error: expected constructor, destructor, or type conversion before '(' token ISR(TIMER0_COMPA_vect) ^ Multiple libraries were found for "Wire.h" Used: /home/david/Documents/arduino/arduino-1.8.9/hardware/Arduino_STM32/STM32F1/libraries/Wire Not used: /home/david/Arduino/libraries/Wirexx Not used: /home/david/Documents/arduino/arduino-1.8.9/hardware/Arduino_STM32/STM32F1/libraries/WireSlave exit status 1 Error compiling for board Generic STM32F103C series. This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences. Do not know about the ISR error. I can find it in in the tone.cpp but I have no idea what is the problem. I must be missing something but I do not know what it is. I am doing this on linux mint 19 if that makes a difference. Thanks Dave
|
|
Jack when I add #define WIRING to morsetutor.h I get exactly the same errors. My os is linux mint 19. The board is standard blue pill from ebay. No idea who made it. Works fine with blink sketch. Arduino: 1.8.9 (Linux), Board: "Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), STLink, 72Mhz (Normal), Smallest (default)" WARNING: library Tone claims to run on (avr) architecture(s) and may be incompatible with your current board which runs on (STM32F1) architecture(s). /home/david/Arduino/libraries/Tone/Tone.cpp:126:4: error: expected constructor, destructor, or type conversion before '(' token ISR(TIMER0_COMPA_vect) ^ Multiple libraries were found for "Wire.h" Used: /home/david/Documents/arduino/arduino-1.8.9/hardware/Arduino_STM32/STM32F1/libraries/Wire Not used: /home/david/Arduino/libraries/Wirexx Not used: /home/david/Documents/arduino/arduino-1.8.9/hardware/Arduino_STM32/STM32F1/libraries/WireSlave exit status 1 Error compiling for board Generic STM32F103C series. This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.
|
|
jjpurdum
David: Adding the #define would have been a bad hack anyway! I do not have a Linux system, so that's a problem. It clearly seems to be an issue with the Tone and/or Wire libraries. Perhaps someone else running Linux has some ideas?? Jack, W8TEE
On Wednesday, June 5, 2019, 4:18:19 PM EDT, David Nelson <kc2ipx@...> wrote:
Jack when I add #define WIRING to morsetutor.h I get exactly the same errors. My os is linux mint 19. The board is standard blue pill from ebay. No idea who made it. Works fine
with blink sketch. Arduino: 1.8.9 (Linux), Board: "Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), STLink, 72Mhz (Normal), Smallest (default)" WARNING: library Tone claims to run on (avr) architecture(s) and may be incompatible with your current board which runs on (STM32F1) architecture(s). /home/david/Arduino/libraries/Tone/Tone.cpp:126:4: error: expected constructor, destructor, or type conversion before '(' token ISR(TIMER0_COMPA_vect) ^ Multiple libraries were found for "Wire.h" Used: /home/david/Documents/arduino/arduino-1.8.9/hardware/Arduino_STM32/STM32F1/libraries/Wire Not used: /home/david/Arduino/libraries/Wirexx Not used: /home/david/Documents/arduino/arduino-1.8.9/hardware/Arduino_STM32/STM32F1/libraries/WireSlave exit status 1 Error compiling for board Generic STM32F103C series. This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.
|
|
I am rather new to programming and I am seeing references to "toolchain" in some posts lately.
What is a 'toolchain' and how is it used? We newbie programmers would like to know... maybe. PJ, N7PH
|
|
eyelessmisfit <eyelessmisfit@...>
It's an old timey way to do programming. Without an IDE, you need to write a program, (c,c++, fortran?), and use a developers compiler and library linker to 'make', an executable. to load to your memory chip.
toggle quoted messageShow quoted text
May need to read the instructions! 73's Ron W0QVJ
-------- Original message -------- From: N7PH <hickspj467@...> Date: 6/5/19 3:21 PM (GMT-07:00) To: SoftwareControlledHamRadio@groups.io Subject: Re: [SoftwareControlledHamRadio] suggestion if you are struggling with the STM32 board #morsecodetutor #mct What is a 'toolchain' and how is it used? We newbie programmers would like to know... maybe. PJ, N7PH
|
|
Art N4EZZ
I am running Ubuntu 18.04 Arduino IDE 1.8.8, getting errors but not the
toggle quoted messageShow quoted text
same errors. In file included from /tmp/arduino_build_833407/sketch/Config.cpp:2:0: /tmp/arduino_build_833407/sketch/Config.cpp: In function 'void SetKeyerSpeed()': MorseTutor.h:55:26: error: 'PB15' was not declared in this scope #define ENCODERSWITCH1 PB15 //Encoder1 Have not discovered the magic combination. Pretty sure it is trying to use the wrong library somewhere but unsure of where just yet. Since I don't have a STM32 board in hand I'll just keep plugging along till I figure it out. Art N4EZZ <n4ezz@...> GnuPG key ID 0x6712DD0E ============================= The whole of science is nothing more than a refinement of everyday thinking. Albert Einstein Physics and Reality (1936)
On 6/5/19 2:44 PM, jjpurdum via Groups.Io wrote:
David:
|
|
William Kimber
Hi,
If it claims that tone is for AVR rather than STM32 two possible causes I see.
For some reason unknown the tone library in the STM32 directory has been replaced with the AVR version. Try downloading again, maybe rename the original file first so you can see if there is a difference.
The compiler is still looking in wrong place/order. Try renaming the AVR and any other versions there might be except the STM32 version.
Cheers, Will ZL1TAO On 6/06/19 8:44 AM, jjpurdum via
Groups.Io wrote:
|
|
Tom, wb6b
On Wed, Jun 5, 2019 at 03:28 PM, William Kimber wrote:
The compiler is still looking in wrong place/order. Try renaming the AVR and any other versions there might be except the STM32 version.Yes, See my previous message: ---- Cut ---- The one thing I noticed in your log file is: "/home/david/Arduino/libraries/Tone/Tone.cpp:126:4: error". It looks like you have a "Tone.cpp" file installed there also. I'm not sure, but is is possible that the Arduino toolchain gives preference (via a search path mechanism) to libraries in the generic /Arduino/libraries/ directory? Maybe uninstalling (or simply removing) the generic (AVR 8 bit) library would be worth a try. ---- Cut ---- The one at: /home/david/Arduino/libraries/Tone/Tone.cpp Tom, wb6b
|
|