-
-
Notifications
You must be signed in to change notification settings - Fork 19.5k
Description
Can I suggest that you port Marlin firmware to the new STM32MP1 MPUs which has an integrated MCU?
https://blog.st.com/stm32mp1-mpu-stm32mp157a-ev1-stm32mp157c-dk2/
https://blog.st.com/introduction-to-the-stm32mp1-microprocessor-series/
I am only a technology enthusiast myself and I do not actually know if anyone else is already working on a 3D-printer controller board based on the new STM32MP1 MPU series or not, however reading about it I can not help think that it would fit perfect for 3D-printer controller boards as it combines a single very fast 32-bit Cortex-M4 MCU core @ 209MHz alongside one or two 32-bit Cortex-A7 MPU cores @ 650Mhz.
I read that STMicroelectronics claims that the MCU core in STM32MP1 architecture is backwards compatible so it enables developers to use the same software made for their STM32F7 MCU series (STM32 F7 microcontroller like example STM32F0 and STM32F1 that are already common in many newer 3D-printer controllers boards today), and theoretically, with the STM32MP1 MPU series which now have an integrated MCU core you could for example run both Marlin firmware as well a full Linux distribution like OctoPi with OctoPrint on the same board in a single chip package, keeping cost down and making it a uniformed platform running in only one single chip package (a.k.a. chiplet).
Regarding running Marlin on different SRM32 see the somewhat related #14309
It should be noted though that even the fastest Dual Cortex-A model of STM32MP1 only run at 650MHz per MPU core and only supports up to 1GB of external RAM so that part is on paper maybe only twice as powerful as a Raspberry Pi Zero W, however when considering STM32MP1 integrates on an ARMv7 based Cortex-A7 instead of the older ARMv6 it should still be enough to enable users to run a full Linux distribution similar to OctoPi with OctoPrint smoothly on, and again the Marlin firmware would run on the integrated MCU core alone.
Support for STM32MP1 M4 MPU was added to stm32duino Arduino Core STM32 HAL via stm32duino/Arduino_Core_STM32#717
" The M4 coprocessor of STM32MP1 has two operating modes: Engineering mode and Production mode (or normal mode). Engineering mode is for debugging the M4 while disabling the Linux A7 core. In this mode you can use ST-Link to upload and debug the M4, but the M4 doesn't have a flash memory: the firmware will disappear in the next boot. To avoid the confusion to the users I focus on Production mode only and made a necessary tools for Production mode. The new run_arduino_gen.sh
tool is explained in Arduino-Tools#47. In the Production mode, the core clock configuration is done by the Linux/U-Boot host so we need simply ignore related functions like SystemClock_Config()
. The new IS_ENGINEERING_BOOT_MODE()
from HAL is used to detect the Production mode. https://github.com/kbumsik/Arduino_Core_STM32/blob/aebcddff59375b4ac53134babc61dd655b028414/variants/STM32MP157_DK/variant.cpp#L147-L149 "
For technical specification on summery on the new STM32MP1 MCU series checkout:
https://www.cnx-software.com/2019/02/21/stmicro-stm32mp1-cortex-a7-m4-mpu/
There are already a few developer boards and evaluation kit available for developers:
STM32MP157A-DK1 and STM32MP157C-DK2 Discovery kits with a devboard is only $69 without LCD or $99 with an LCD
- https://www.st.com/en/evaluation-tools/stm32mp157a-dk1.html
- https://www.st.com/en/evaluation-tools/stm32mp157c-dk2.html
STM32MP157A-EV1 Evaluation kit with breakout board and STM32MP115X-EVAL evaluation board made for PCB engineers:
https://www.st.com/en/evaluation-tools/stm32mp157a-ev1.html
STM32MP157C-EV1 Evaluation kit with breakout board and STM32MP115X-EVAL evaluation board made for PCB engineers:
https://www.st.com/en/evaluation-tools/stm32mp157c-ev1.html
PanGu board from I2Som