Arduino_Core_STM32 icon indicating copy to clipboard operation
Arduino_Core_STM32 copied to clipboard

[New Variant] request list

Open fpistm opened this issue 5 years ago • 81 comments

Hereafter the list of all new variants requested

Note

This is a community projects so any help are welcome. To add a STM32 based board follows this wiki

Any contribution is welcome, so feel free submit a PR. 😉

Board support requested:

3D printers:

Discovery

MP1

Nucleo

  • [x] Nucleo-F031K6 (https://github.com/stm32duino/Arduino_Core_STM32/issues/722#issuecomment-594156458)
  • [x] NUCLEO-F042K6 (#1099)
  • [ ] Nucleo-F334R8 (https://www.stm32duino.com/viewtopic.php?f=43&t=569)
  • [x] (Nucleo-F439ZI](https://www.st.com/en/evaluation-tools/nucleo-f439zi.html) #2324. Done thanks #2347.
  • [x] Nucleo-F446ZE #1970. Done thanks #2108.
  • [x] Nucleo-F746ZG (#715)
  • [x] Nucleo G031k8 (#855)
  • [x] Nucleo-G070RB (#1147 #1651)
  • [x] Nucleo-L010RB (#662)
  • [ ] Nucleo-L011K4 (#843)
  • [x] NUCLEO-L552ZE-Q Requested here
  • [x] Nucleo 144 F722ZE (#1259)
  • [ ] NUCLEO-F413ZH (#1262)
  • [ ] NUCLEO-G491RE (https://github.com/stm32duino/Arduino_Core_STM32/issues/722#issuecomment-779095093)
  • [ ] NUCLEO L412RB-P (#1350)
  • [x] NUCLEO-H743ZI (https://github.com/stm32duino/Arduino_Core_STM32/issues/722#issuecomment-778101028)
  • [ ] NUCLEO-H745ZI-Q (https://github.com/stm32duino/Arduino_Core_STM32/issues/722#issuecomment-778101028) and (#2090)
  • [ ] NUCLEO-H755ZI-Q (https://github.com/stm32duino/Arduino_Core_STM32/issues/722#issuecomment-778101028) and (#2147)
  • [x] NUCLEO-H753ZI (https://github.com/stm32duino/Arduino_Core_STM32/issues/722#issuecomment-778101028) --> Done thanks #2130
  • [x] NUCLEO-H723ZG (https://github.com/stm32duino/Arduino_Core_STM32/issues/722#issuecomment-778101028)
  • [ ] NUCLEO-H7A3ZI-Q (https://github.com/stm32duino/Arduino_Core_STM32/issues/722#issuecomment-778101028 and https://github.com/stm32duino/Arduino_Core_STM32/issues/1827#issuecomment-1241757236)
  • [x] NUCLEO-H503RB (https://github.com/stm32duino/Arduino_Core_STM32/issues/722#issuecomment-1594721541) Fixed by #2117
  • [ ] Nucleo-U545RE-Q #2494

Generic / Custom

  • [x] BlackPill STM32F411CEU6
  • [x] BlackPill F401CE #1143
  • [ ] BLACK_F407VE_Mini (#1083)
  • [ ] Can Filter with STM32F105RBT6 (#869)
  • [ ] HY-ministm32v (https://github.com/stm32duino/Arduino_Core_STM32/issues/722#issuecomment-593358429)
  • [ ] Open107V from Waveshare #815
  • [ ] Pyboard (#906)
  • [x] STM32F103Vx (#958)
  • [x] STM32F103ZET6 Mini (#635)
  • [ ] STM32F407ZGT6 Mini (#635)
  • [ ] STM32L100RB (#989)
  • [ ] Stm32f373_BluePill (#1085)
  • [x] MCUDev DevEBox STM32H7XX_M board (STM32H750VBT6) (#1145, #1172, #1266)
  • [ ] Demo F070F6 (#1146) variant of F070F4
  • [ ] STM32L071 (#1229, #1879)
  • [ ] STM32F722, STM32F745, STM32F765 (https://github.com/stm32duino/Arduino_Core_STM32/issues/722#issuecomment-777876109)
  • [ ] STM32L4R9AI
  • [ ] STM32F411VET6 ( #1314)
  • [ ] STM32F030RC chip (#1356)
  • [ ] STM32F030K6 (#1357)
  • [ ] STM32F437VGT6 (#1535)
  • [ ] STM32L151RCT6 (#1608)
  • [x] Leafony STM32 (#1887) --> done thanks #1889
  • [x] STM32F412ZG (#1899)
  • [ ] L4P5AGIxP (#1905)
  • [ ] STM32F105RCT6 (#1925)
  • [ ] STM32F051R8T (#1913)
  • [ ] STM32F030CC (https://github.com/stm32duino/Arduino_Core_STM32/issues/722#issuecomment-1402361859) and (#2337)
  • [ ] STM32U585CI (#1977)
  • [x] STM32H750XB (#1982)
  • [ ] Portenta (#1984) and other Arduino STM32 based boards (#2168)
  • [ ] STM32L496VGT (#2021)
  • [x] STM32F446ZE (#2074). Done thanks #2108.
  • [ ] STM32H563VI (#2089)
  • [ ] STM32F407IGT6 #2131
  • [ ] STM32C011J6 (#2210 and https://github.com/stm32duino/Arduino_Core_STM32/issues/722#issuecomment-1661492614)

3D printer:

  • [ ] BIGTREETECH BTT SKR PRO V1.2 (#1284)

LoRa:

  • [ ] Heltec LoRa Node L151 (#983) initial support at https://github.com/fthiebolt/LoRa-boards-stm32duino
  • [ ] RAK811 Wis DUO (#1395)
  • [ ] RAK3172: (https://github.com/stm32duino/STM32LoRaWAN/issues/7)

fpistm avatar Oct 23 '19 06:10 fpistm

What about the new STM32MP1 MPU series which has both a Cortex-A7 as well as an onboard Cortex-M4 microcontroller unit?

https://blog.st.com/stm32mp1-mpu-stm32mp157a-ev1-stm32mp157c-dk2/

https://www.cnx-software.com/2019/02/21/stmicro-stm32mp1-cortex-a7-m4-mpu/

Seeed Studio ODYSSEY-STM32MP157C SBC based on Seeed Studio SoM-STM32MP157C SoM

https://www.cnx-software.com/2020/01/21/odyssey-stm32mp157c-sbc-feature-stmicro-stm32mp157c-cortex-a7-m4-soc/

Emtrion emSBC-Argon

https://www.cnx-software.com/2019/07/18/emtrion-emsbc-argon-stm32mp1-dual-cortex-a7-m4-processor/

i2Som PanGu board from I2Som:

https://www.cnx-software.com/2019/06/25/pangu-board-stm32mp1-sbc/

MYIR MYD-YA157C development board based on their MYiR MYC-YA157C STM32MP1 CPU Module

https://www.cnx-software.com/2020/01/07/myir-launches-som-development-board-based-on-stm32mp1-microprocessor/

Avenger96 96Boards CE Extended Board Features an STMicro STM32MP1 SoM

https://www.cnx-software.com/2019/02/23/avenger96-96boards-stmicro-stm32mp1-som/

Shiratech Stinger96 board (96Boards board design)

https://www.cnx-software.com/2020/05/15/stinger96-nb-iot-emtc-and-avenger96-96boards-stm32mp1-sbcs-giveaway/

Direct Insight / Ka-Ro STM32MP1 QSMP 1570 / 157C SoM module and development kit with reference board:

https://www.cnx-software.com/2020/06/26/linux-powered-stmicro-stm32mp1-solder-down-qfn-style-som-measures-27x27mm/

Could we also request support for STM32MP1 (STM32 MP1) that comes onboard STM32MP157A-DK1 development board?

https://www.st.com/en/evaluation-tools/stm32mp157a-dk1.html

STM32MP157A-DK1 development board also come with the STM32MP157C-DK2 Discovery Kit

https://www.st.com/en/evaluation-tools/stm32mp157c-dk2.html

STM32MP157A-DK1 and STM32MP157C-DK2 Discovery kits are $99 with LCD or $69 without https://www.st.com/en/evaluation-tools/stm32mp157a-dk1.html https://www.st.com/en/evaluation-tools/stm32mp157c-dk2.html

STM32MP157A-EV1 Evaluation kit for PCB engineers does have a steeper price at $399 https://www.st.com/en/evaluation-tools/stm32mp157a-ev1.html

Several other boards with STM32MP1 have been announced but none released yet AFIK.

Hedda avatar Oct 28 '19 14:10 Hedda

Picked up STM32G0316-DISCO the other day. It'd be nice to port over. It's close to an ATTiny85 alternative.

justind000 avatar Oct 29 '19 03:10 justind000

It would be great if we could have more generic chip options. I'm particularly interested in the 48 and 64 pin versions of the STM32F401 and STM32F411, but these will be used on custom hardware and not board like the Nucleo. The F401 and F411 are also very reasonably priced on LCSC.com.

I've been a pro AVR user for years now, but have very experience with STM32. Let's say I start working on a pin definition file for all 48-pin F401C's. Can we use the same pin definition files for all variants (F401CB/CC/CD/CD)? And are there guidelines on how the Arduino pinout should look like? Perhaps similar/identical to other supported STM32's?

MCUdude avatar Nov 18 '19 17:11 MCUdude

@MCUdude As far as I understand about this project, it can support all generic chips, since it pulled from the official STM32 Cube libraries. The problem is that it is just impossible to define generic pinouts for all possible chips because Arduino platform requires flattened pinout definitions (like PA14 => Arduino Digial 1 pin). You should modify the source code to define your own board. The good news is that you don't need to do much works since Arduino_Core_STM32 already supports STM32F401 Series, so you only need to define a new variant. You can see the wiki to figure out how to define your own variant and see here to learn how to work with the source code.

Can we use the same pin definition files for all variants (F401CB/CC/CD/CD)?

You should look at the datasheet to see if they have the same pinouts, but as far as I know they have different memories and the same package/pinouts.

kbumsik avatar Nov 18 '19 18:11 kbumsik

The problem is that it is just impossible to define generic pinouts for all possible chips because Arduino platform requires flattened pinout definitions (like PA14 => Arduino Digital 1 pin)

Luckily, (unlike on 8-bit AVRs) I can still use the generic pin names (PA14) instead of the Arduino Pin number. This makes the actual Arduino pinout not so relevant to me, since I will always have full control over the generic pin names.

The good news is that you don't need to do much works since Arduino_Core_STM32 already supports STM32F401 Series, so you only need to define a new variant. You can see the wiki to figure out how to define your own variant and see here to learn how to work with the source code.

Thanks! I'll read through the Wiki and see what I can do. I prefer working in the PlatformIO IDE, so I hope a new variant for 48 pin 401/411's will be added if I do it right, since I'll rely on an official release. In PlatformIO it's also easy to change the microcontroller variant as long as I have a working variants file for the particular target. @fpistm any thought on adding more generic targets to this core?

You should look at the datasheet to see if they have the same pinouts, but as far as I know they have different memories and the same package/pinouts.

I haven't really read through the datasheet, but according to ST's tables the only difference is flash and RAM.

MCUdude avatar Nov 18 '19 18:11 MCUdude

Luckily, (unlike on 8-bit AVRs) I can still use the generic pin names (PA14) instead of the Arduino Pin number. This makes the actual Arduino pinout not so relevant to me, since I will always have full control over the generic pin names.

I mean, this project is an Arduino Core port that implements Arduino API. Even if you physically have access to the generic pin names, Arduino API forces you to use Arduino-style pin numbers. So if you want more flexibility of choice of pins you might have to define your own Arduino pins to work with.

I prefer working in the PlatformIO IDE

I don't know how PlatformIO IDE works with third-party Arduino cores, but working with the source does not require a specific IDE, since you replace the official release with the git repo.

kbumsik avatar Nov 18 '19 18:11 kbumsik

I mean, this project is Arduino Core that uses Arduino API. Even if you physically have access to the generic pin names, Arduino API forces you to use Arduino pin numbers. So if you want more flexibility of choice of pins you might have to define your own Arduino pins to work with.

Yes, I'm forced to use Arduino Pin numbers. But the PA[x], PB[x]..Pn[x] macros are defined in a way that they match their Arduino Pin number. On the Nucleo 401 board I have I don't care about digital pin 13. I use the PA5 macro instead (which is defined as 13).

I have lots of experience when it comes to "wrapping" the Arduino API around AVRs. I currently host six different repos here on GitHub, and some have become quite popular.

I don't know how PlatformIO IDE works with third-party Arduino cores, but working with the source does not require a specific IDE, since you replace the official release with the git repo.

I've been involved with platformIO since three on my Arduino cores (MightyCore, MiniCore and MegaCore) are available through PlatformIO. What they do is that they will make a copy of the latest release and include it in one of their repos. It is possible to add custom core files, but it's so much easier when it is already available as an option in their project wizard.

MCUdude avatar Nov 18 '19 18:11 MCUdude

@MCUdude You can add an GenF4 menu, this is not a problem. About Arduino pinout this is not an issue. We only try to do a correct pins mapping when there is an Arduino connector else this is not important. As you said it is easier to use PYn naming. Only the Analog pins have to be contiguous. You can refers to other GenYx series added as an example.

fpistm avatar Nov 18 '19 20:11 fpistm

@fpistm thanks! I'll put some time and effort into this. Does any of you guys know if there exist a good ready-made F401/f411 48-pin development board? If not I'd probably have to roll my own.

It would also be great if it was possible to use the standard stlink programmer for the generic "boards", preferably the cheap $3 knockoff's. They do work great in PlatformIO, but not in Arduino IDE. I do have a black magic probe and currently waiting for a Jlink in the mail, but it's always nice to be able to use cheap and highly available tools. Is there any particular reason why support for stlink v2 was dropped?

MCUdude avatar Nov 18 '19 21:11 MCUdude

STlinkv2 is supported, you have to install the STM32CubeProgrammer.

fpistm avatar Nov 18 '19 21:11 fpistm

Sorry for the noob questions, but I'm slowly starting to getting into things.

The Nucleo board I currently have uses the internal HFI (high-frequency internal oscillator) instead of an external crystal. To gain more accurate timing I soldered in an 8 MHz crystal, some caps and added a few 0R resistors. With a little fiddling, I was able to reconfigure the clock, and I'm now running with an external crystal!

However, one question still remains; Why would I need a 32.768 kHz crystal as well? The Nucleo board has this crystal populated, but as far as I know, it's not in use by default? Can this be used to drive the main high-frequency clock? Is it only for RTC use? Do I really need to use this at all?

The reason I'm asking is that even the cheapest boards from China has this crystal. And they are trying to cut costs everywhere, so I figured it maybe has to be there for a reason?

MCUdude avatar Nov 19 '19 12:11 MCUdude

AFAIK for F401 it i mainly used for RTC and allow to have a better accuracy than the LSI. I guess, this also allow to reach a better consumption in some Low Power mode. Anyway for this kind of question you should ask on ST community. Here this is for issue related to the core and this issue is to list all variant requests.

fpistm avatar Nov 19 '19 13:11 fpistm

AFAIK for F401 it i mainly used for RTC and allow to have a better accuracy than the LSI. I guess, this also allow to reach a better consumption in some Low Power mode.

Thanks for the clarification. I understand you would like to keep this on-topic, so I'll rather ask in the community forums instead, no worries!

Back to the generic pinouts, Since I only have a 64-pin (Nucleo) 32F401R chip at the moment to work with, I started working on a generic pinout for this chip first. Is it OK for you guys if I keep the peripheral names as close to the metal as possible? This means we'll have Serial1, Serial2 and Serial6 as available objects, and the user can use setRx() and setTx() to change the pin location for each peripheral? If this is documented properly (I can help out) it should be fairly easy for the end-user to configure this properly.

MCUdude avatar Nov 19 '19 13:11 MCUdude

By default, only one serialx instance is defined and mapped to Serial. Most of the user only use one serial. I really don't think you should instantiate all possible Serial. Mainly if the user need to change the mapping. It is simplest to define it than changing the default pins.

If you want discuss about your variant it is better to open a new issue than polluted this one.

fpistm avatar Nov 19 '19 14:11 fpistm

Can you add support for new BlackPill STM32F411CEU6?

kargeor avatar Jan 03 '20 02:01 kargeor

Hi @kargeor as the F401 version exists it should not be difficult to add this one.

fpistm avatar Jan 03 '20 07:01 fpistm

The STM32F411CEU6 "Black Pill 2" apparently has 2 different board revisions: WeACT V1.3 and WeAct V2.0. The V2.0 has an additional "KEY" button, which binds pin A0 to GND when pressed.

I really can't wait support for this board...

TzOk83 avatar Jan 10 '20 17:01 TzOk83

Is support for NUCLEO-H745ZI-Q planned in the near future?

codebk1 avatar Mar 01 '20 12:03 codebk1

I just knocked up a quick Pill 411CE variant only to realise that it is already done.

There's an error in the variant.h however, it has the USER BUTTON (KEY) mapped to PC13, this is the builting LED pin, KEY is on pin A0. Further it will define this for all boards that are NOT defined as ARDUINO_BLACKPILL_F411CE. Have I misunderstood the logic?

BennehBoy avatar Mar 01 '20 17:03 BennehBoy

@BennehBoy there is no error. LED is well defined to PC13 and no user button is defined for the ARDUINO_BLACKPILL_F411CE. Anyway it seems there is one user button based on schemtaics I've found anyway I didn't see it on any pictures I've saw of the board (Weact 1.3 and 2.0).

fpistm avatar Mar 02 '20 08:03 fpistm

Hi @dooodgers

Is support for NUCLEO-H745ZI-Q planned in the near future?

I did not plan to add it specifically. Moreover, H745 is the Dual-core lines. Currently there is no dedicated management for Dual-core lines.

fpistm avatar Mar 02 '20 08:03 fpistm

Anyway it seems there is one user button based on schemtaics I've found anyway I didn't see it on any pictures I've saw of the board (Weact 1.3 and 2.0).

https://github.com/mcauser/WEACT_F411CEU6/blob/master/docs/STM32F411CEU6_schematics.pdf https://github.com/mcauser/WEACT_F411CEU6/blob/master/docs/STM32F411CEU6_pcb.pdf

TzOk83 avatar Mar 02 '20 10:03 TzOk83

Support for the HY-ministm32v would be really great, is it hard to add? https://www.hotmcu.com/hyministm32v-dev-board-32-tft-lcd-module-p-5.html

elsni avatar Mar 02 '20 11:03 elsni

FYI, STMicro has updated their STM32MP1 Family with models that have faster 800 MHz Cortex-A7 Processors, through the Cortex-M4 core still runs at same 209 MHz speed as previous models.

https://www.cnx-software.com/2020/02/27/stmicro-updates-stm32mp1-family-with-800-mhz-cortex-a7-processors/

https://blog.st.com/mpu-stm32mp1/

https://newsroom.st.com/media-center/press-item.html/p4236.html

Hedda avatar Mar 02 '20 12:03 Hedda

@elsni

Support for the HY-ministm32v would be really great, is it hard to add? https://www.hotmcu.com/hyministm32v-dev-board-32-tft-lcd-module-p-5.html

This should not be too hard. refers to the Wiki how to add a new board. You can also create your own package and use this core.

fpistm avatar Mar 02 '20 15:03 fpistm

I do not know the STM32 platform well for now, but it would be really great if you support the STM32F031K6T6 as included in https://www.st.com/en/evaluation-tools/nucleo-f031k6.html (it has Arduino Nano pin-to-pin headers).

N0rbert avatar Mar 03 '20 20:03 N0rbert

And having support of STM32F413ZHT6 as included in https://www.st.com/en/evaluation-tools/32f413hdiscovery.html would be great too.

N0rbert avatar Mar 03 '20 21:03 N0rbert

@N0rbert

As it is mentioned in the OP:

This is a community projects so any help are welcome. To add a STM32 based board follows this wiki

Any contribution is welcome, so feel free submit a PR. 😉

fpistm avatar Mar 04 '20 07:03 fpistm

I too am interested in the Nucleo H745ZI. I realize it is a dual core system (Similarly to the ESP32), which is not currently supported. For a starting point, would there be a simple way to modify the existing code for the H743ZI to be compatible with the H745ZI, since they share the same Cortex M-7 CPU?

The ESP32's dual core API is quite easy to use and would be a great example to shoot for for dual core support in this project.

stevewells20 avatar Apr 13 '20 00:04 stevewells20

@Hackswell I've answered you on the forum. Please avoid to duplicate your questions and use only the forum for question/support. Thanks 😉

fpistm avatar Apr 24 '20 07:04 fpistm