RIOT
RIOT copied to clipboard
Add support to (all) ST Nucleo boards
There's an ongoing work which goal is to add support for (all) ST Nucleo boards to RIOT.
The goal of this issue is to keep track of this work. For all boards, it lists some information, the actual support status (available upstream, available PR, not supported) and give the link to the documentation in the Wiki (if any).
Board | Board Family | MCU Family | Status | Documentation |
---|---|---|---|---|
Nucleo-L011K4 | Nucleo 32 | M0+ | Supported | No doc |
Nucleo-F031K6 | Nucleo 32 | M0 | Supported | Doc available |
Nucleo-F042K6 | Nucleo 32 | M0 | Supported | Doc available |
Nucleo-L031K6 | Nucleo 32 | M0+ | Supported | No doc |
Nucleo-F303K8 | Nucleo 32 | M4 | Supported | Doc available |
Nucleo-L412KB | Nucleo 32 | M4 | Supported | No doc |
Nucleo-L432KC | Nucleo 32 | M4 | Supported | No doc |
Nucleo-F030R8 | Nucleo 64 | M0 | Supported | Doc available |
Nucleo-F302R8 | Nucleo 64 | M4 | Supported | Doc available |
Nucleo-F334R8 | Nucleo 64 | M4 | Supported | Doc available |
Nucleo-L053R8 | Nucleo 64 | M0+ | Supported | No Doc |
Nucleo-F070RB | Nucleo 64 | M0 | Supported | Doc available |
Nucleo-F072RB | Nucleo 64 | M0 | Supported | Doc available |
Nucleo-F103RB | Nucleo 64 | M0 | Supported | Doc available |
Nucleo-F410RB | Nucleo 64 | M4 | Supported | Doc available |
Nucleo-L073RZ | Nucleo 64 | M0+ | Supported | No doc |
Nucleo-F091RC | Nucleo 64 | M0 | Supported | Doc available |
Nucleo-L433RC-P | Nucleo 64 | M4 | Supported | No doc |
Nucleo-F303RE | Nucleo 64 | M4 | Supported | Doc available |
Nucleo-L152RE | Nucleo 64 | M3 | Supported | Doc available |
Nucleo-F401RE | Nucleo 64 | M4 | Supported | Doc available |
Nucleo-F446RE | Nucleo 64 | M4 | Supported | Doc available |
Nucleo-F411RE | Nucleo 64 | M4 | Supported | Doc available |
Nucleo-L452RE | Nucleo 64 | M4 | Supported | No doc |
Nucleo-L476RG | Nucleo 64 | M4 | Supported | No doc |
Nucleo-F303ZE | Nucleo 144 | M4 | Supported | No doc |
Nucleo-F446ZE | Nucleo 144 | M4 | Supported | Doc available |
Nucleo-F722ZE | Nucleo 144 | M7 | Supported | No doc |
Nucleo-F207ZG | Nucleo 144 | M3 | Supported | Doc available |
Nucleo-F412ZG | Nucleo 144 | M4 | Supported | No doc |
Nucleo-F746ZG | Nucleo 144 | M7 | Supported | No doc |
Nucleo-F413ZH | Nucleo 144 | M4 | Supported | Doc available |
Nucleo-F429ZI | Nucleo 144 | M4 | Supported | Doc available |
Nucleo-L496ZG | Nucleo 144 | L4 | Supported | No Doc |
Nucleo-L4R5ZI | Nucleo 144 | L4 | Supported | No Doc |
Nucleo-F767ZI | Nucleo 144 | M7 | Supported | No Doc |
Nucleo-H743ZI | Nucleo 144 | M7 | Not supported | No Doc |
Just out of curiosity: why is this a goal?
why is this a goal?
It's a goal because it's difficult to follow the status of all ports for this family of boards : which one is in the code base, which one has a PR opened, which one is documented in the wiki. I think it also helps others following this work. Not sure if that answers your question.
@aabadie I was interested in why it is a goal to support ALL Nucleo boards.
@LudwigKnuepfer, last year at the Paris Open Source Summit, I remember there was one guy talking about IoT who was comparing different OSes. He gave his opinion about RIOT : promising but with limited hardware support. I think that supporting all Nucleo boards could give a good starting counter argument of what he said (even if he was more thinking of NXP MCUs).
Those boards covers a wide set of ST microcontrollers (from 2KB ram to more than 256KB, L0 to F7). I know some of them has limited interest for IoT (Nucleo-L011, the smallest for example) but it would be a good advertisement for RIOT to say : RIOT is supporting all Nucleo boards (like mbed) or RIOT is supporting all Arduino boards, etc Let's target exhaustive hardware support ! (pipe dream inside)
I see, thank you for the explanation! Also: thank you for the effort, sounds legit ;)
When I flash the Hello-world example on NUCLEO-F767ZI, I receive the following flashing error:
/home/vagrant/RIOT/boards/nucleo144-f767/dist/openocd.cfg:5: Error: Can't find target/stm32f7x.cfg in procedure 'script' at file "embedded:startup.tcl", line 60 at file "/home/vagrant/RIOT/boards/nucleo144-f767/dist/openocd.cfg", line 5 /home/vagrant/RIOT/examples/hello-world/../../Makefile.include:368: recipe for target 'flash' failed
Any thoughts is appreciated
@soleilos most likely you need to update your OpenOCD version. It looks like your version is too old to support the stm32f7 CPUs.
Hi @gebart , @aabadie ,
I updated the OpenOCD and it flashed successfully. However, when I try ps and help, nothing is shown on the terminal, although these modules are added to the program. The command is:
make BOARD=nucleo144-f767 flash term
I have the following settings:
$ gcc --version gcc (Ubuntu/Linaro 6.3.0-18ubuntu2~16.04) 6.3.0 20170519 $ openocd --version Open On-Chip Debugger 0.10.0 $ pip --version pip 9.0.1 from /home/vagrant/.local/lib/python2.7/site-packages (python 2.7)
Here is the result.
2017-10-11 12:58:49,095 - INFO # Connect to serial port /dev/ttyACM0 Welcome to pyterm! Type '/exit' to exit. ps help ps
Any thoughts is appreciated.
@Tenderson, try to avoid cross posting for the same issue and create a dedicated one.
Maybe you need to update the ST Link of your board. See this page for more information.
Maybe you need to update the ST Link of your board. See this page for more information.
@aabadie I have already given that advice, but apparently it didn't work
@aabadie sorry if I don't get it from the above list, but arent't all boards ported now? If so, why don't we close this issue?
If so, why don't we close this issue?
There are some remaining and the documentation is missing for some of the listed boards. I'd like to keep this one open for tracking the porting status.
Oh completely overseen them two open PRs. Will 'ask around' if someone has the boards around.
One of the 2 was already merged. I updated the list.
I updated the above list now that #8939 got merged. The only remaining board is Nucleo-H743ZI. Is it planned to support it? Otherwise I don't know why we should keep this issue open.
@aabadie ping? Is there support planned for the Nucleo-H743ZI?
Is there support planned for the Nucleo-H743ZI?
Yep, I got one in the office. I think @fjmolinas is interested by it hahaha ;)
Still a goal?
I do have an STM32-H7 nucleo lying around that I would still like to see support for :)
Still a goal?
I think so, but I doubt this issue will be resolved one day with ST releasing new boards all the time :)
FYI: I started work on the STM32H7 family. I am using a Nucleo-STM32H723ZG (not listed in the table above). Made pretty good progress on the clock configuration today, which I will try to push before the weekend.
https://github.com/Enoch247/RIOT/tree/add-stm32h7
FYI: I started work on the STM32H7 family. I am using a Nucleo-STM32H723ZG (not listed in the table above). Made pretty good progress on the clock configuration today, which I will try to push before the weekend.
https://github.com/Enoch247/RIOT/tree/add-stm32h7
I won't be able to post today's code yet, but I've got it running on the HSI and can blink the board's user LEDs. Seem like things should get easier from here on out now.