/codal-stm32

STM32 core support for codal

Primary LanguageCBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Codal target for STM32 MCU codal-buildtarget

codal-stm32-DISCO_L475VG_IOT

codal-stm32-NUCLEO_F4x1RE

codal-stm32-PNUCLEO_WB55RG

Codal target for the STM32 familly. Codal is the core set of drivers, mechanisms and types that make up the runtime for a board in Makecode.

Overview

The codal runtime provides an easy to use environment for programming the board in the C/C++ language, written by Lancaster University. It contains device drivers for all the hardware capabilities, and also a suite of runtime mechanisms to make programming the easier and more flexible. These range from control of the LED matrix display to peer-to-peer radio communication and secure Bluetooth Low Energy services.

In addition to supporting development in C/C++, the runtime is also designed specifically to support higher level languages provided by our partners that target physical computing and computer science education. It is currently used as a support library for Microsoft MakeCode

Codal-core must be implemented by third party developper to support new hardware target. This repository constain the codal implementation for the STM32 MCU familly.

This porting is based on:

Boards available

Status Nucleo 144 Release Comment
๐Ÿ’” Nucleo F207ZG
๐Ÿ’” Nucleo F429ZI
๐Ÿ’” Nucleo F767ZI
๐Ÿ’” Nucleo F746ZG
๐Ÿ’” Nucleo F756ZG
๐Ÿ’” Nucleo L496ZG
๐Ÿ’” Nucleo L496ZG-P
๐Ÿ’” Nucleo L4R5ZI
๐Ÿ’” Nucleo L4R5ZI-P
๐Ÿ’” Nucleo H743ZI(2)
Status Nucleo 64 Release Comment
๐Ÿ’” Nucleo F030R8
๐Ÿ’” Nucleo F091RC
๐Ÿ’” Nucleo F103RB
๐Ÿ’” Nucleo F302R8
๐Ÿ’” Nucleo F303RE
๐Ÿ’” Nucleo F401RE
๐Ÿ’” Nucleo F411RE
๐Ÿ’” Nucleo F446RE
๐Ÿ’” Nucleo G071RB
๐Ÿ’” Nucleo G431RB
๐Ÿ’” Nucleo G474RE
๐Ÿ’” Nucleo L053R8
๐Ÿ’” Nucleo L073RZ
๐Ÿ’” Nucleo L152RE
๐Ÿ’” Nucleo L452RE
๐Ÿ’” Nucleo L452RE-P
๐Ÿ’” Nucleo L476RG
๐Ÿ’› P-Nucleo-WB55RG 0.0.1
Status Nucleo 32 Release Comment
๐Ÿ’” Nucleo F031K6
๐Ÿ’” Nucleo F303K8
๐Ÿ’” Nucleo G431KB
๐Ÿ’” Nucleo L031K6
๐Ÿ’” Nucleo L412KB
๐Ÿ’” Nucleo L432KC
Status Discovery Release Comment
๐Ÿ’” 32F0308DISCOVERY
๐Ÿ’” 32F072BDISCOVERY
๐Ÿ’” STM32VLDISCOVERY
๐Ÿ’” STM32F407G-DISC1
๐Ÿ’” STM32F746G-DISCOVERY
๐Ÿ’” STM32G0316-DISCO
๐Ÿ’” B-L072Z-LRWAN1
๐Ÿ’› B-L475E-IOT01A 0.0.1
๐Ÿ’” 32F413HDISCOVERY
Status Eval Release Comment
๐Ÿ’” STEVAL-MKSBOX1V1 (SensorTile.box)
Status STM32MP1 series coprocessor Release Comment
๐Ÿ’” STM32MP157A-DK1
๐Ÿ’” STM32MP157C-DK2
Status Generic STM32F0xx Release Comment
๐Ÿ’” STM32F030F4 Demo board
Status Generic STM32F1xx Release Comment
๐Ÿ’” BluePill F103C(6-8-B)
๐Ÿ’” BlackPill F103C(8-B)
๐Ÿ’” Generic F103R(8-B-C-E)T6
๐Ÿ’” Generic F103Z(C-D-E-F-G)
๐Ÿ’” HY-TinySTM103T
๐Ÿ’” MapleMini F103CB
๐Ÿ’” Vcc-Gnd F103ZET6
Status Generic STM32F3xx Release Comment
๐Ÿ’” RobotDyn BlackPill F303CC
Status Generic STM32F4xx Release Comment
๐Ÿ’” Adafruit Feather STM32F405 Express
๐Ÿ’” BlackPill F401CC
๐Ÿ’” BlackPill F411CE
๐Ÿ’” Black F407VET6
๐Ÿ’” Blue F407VET6 Mini
๐Ÿ’” Core Board F401RC
๐Ÿ’” DIYMORE STM32F407VGT
๐Ÿ’” FK407M1
๐Ÿ’” Generic F401C(B-C-D-E)
๐Ÿ’” Generic F401R(B-C-D-E)
๐Ÿ’” Generic F405RG
๐Ÿ’” Generic F407V(E-G)
๐Ÿ’” Generic F410C(8-B)
๐Ÿ’” Generic F410R(8-B)
๐Ÿ’” Generic F411C(C-E)
๐Ÿ’” Generic F411R(C-E)
๐Ÿ’” Generic F412C(E-G)
๐Ÿ’” Generic F412R(E-G)
๐Ÿ’” Generic F413C(G-H)
๐Ÿ’” Generic F413R(G-H)
๐Ÿ’” Generic F415RG
๐Ÿ’” Generic F417V(E-G)
๐Ÿ’” Generic F423CH
๐Ÿ’” Generic F423RH
๐Ÿ’” Generic F446R(C-E)
๐Ÿ’” ThunderPack v1.1+
Status Generic STM32L0xx Release Comment
๐Ÿ’” PX-HER0
๐Ÿ’” ThunderPack v1.0
Status LoRa boards Release Comment
๐Ÿ’” RAK811 LoRa Tracker
๐Ÿ’” RHF76-052

Installation

Before using this target you need to configure your platforms with some software. Codal is also a build system to simplify as much as possible the experience of novice users.

  1. Install git, ensure it is available on your platforms path.
  2. Install the arm-none-eabi-* command line utilities for ARM based devices.
  3. Install CMake(Cross platform make), this is the entirety of the build system.
  4. Install Python 2.7 (if you are unfamiliar with CMake), python scripts are used to simplify the build process.
  5. Clone the repository https://github.com/lancaster-university/codal

Building

  • Generate or create a codal.json file
    • python build.py codal-stm32 generates a codal.json file for our target
  • In the root of this repository type python build.py the -c option cleans before building.

Next release

See milestones to have an overview of the next release content.

Troubleshooting

For question, support, ..., you could submit a topic on the gitter.

If you have any issue, you could file an issue on Github.

In any case, it always fine to search if your issue was not already existing before submit a new one.