Skip to content

Releases: stm32duino/Arduino_Core_STM32

Arduino Core for STM32 2.1.0

30 Sep 14:53
Compare
Choose a tag to compare

Github Releases (by Release)

This release includes:

Add support of:

  • B-U585I-IOT02A

  • EtherCATduino from Elecgator

  • Generic Node Sensor Edition (GNSE) by TTI. More information

  • NUCLEO F042K6

  • NUCLEO G0B1RE

  • NUCLEO L010RB

  • NUCLEO U575ZI-Q

  • NUCLEO WL55JC1 (No LoRa support available)

  • STM32WB5MM-DK

  • STorM32 V1.31 RC

  • SWAN R5 from Blues Wireless

  • Several generic variant:
    • Generic F042K4Tx
    • Generic F042K6Tx
    • Generic G0B1RBTx
    • Generic G0B1RCIx
    • Generic G0B1RCTx
    • Generic G0B1REIx
    • Generic G0B1RETx
    • Generic G0C1RCIx
    • Generic G0C1RCTx
    • Generic G0C1REIx
    • Generic G0C1RETx
    • Generic H742IGKx
    • Generic H742IGTx
    • Generic H742IIKx
    • Generic H742IITx
    • Generic H750IBTx
    • Generic L433CBTx
    • Generic L433CBUx
    • Generic L433CCTx
    • Generic L433CCUx
    • Generic L443CCTx
    • Generic L443CCUx
    • Generic L4R5ZGYx
    • Generic L4R5ZIYx
    • Generic L4R9ZGYx
    • Generic L4R9ZIYx
    • Generic L4S5ZIYx
    • Generic L4S9ZIYx
    • Generic U575AGIxQ
    • Generic U575AIIxQ
    • Generic U575ZGTxQ
    • Generic U575ZITxQ
    • Generic U585AIIxQ
    • Generic U585ZETxQ
    • Generic WB5MMGHx
    • Generic WL54CCUx
    • Generic WL54JCIx
    • Generic WL55CCUx
    • Generic WL55JCIx
    • Generic WLE4C8Ux
    • Generic WLE4CBUx
    • Generic WLE4CCUx
    • Generic WLE4J8Ix
    • Generic WLE4JBIx
    • Generic WLE4JCIx
    • Generic WLE5C8Ux
    • Generic WLE5CBUx
    • Generic WLE5CCUx
    • Generic WLE5J8Ix
    • Generic WLE5JBIx
    • Generic WLE5JCIx

HAL Drivers and CMSIS added:

  • STM32U5xx CMSIS Drivers to v1.0.0
  • STM32U5xx HAL Drivers to v1.0.0
  • STM32WLxx CMSIS Drivers to v1.1.0
  • STM32WLxx HAL Drivers to v1.1.0

HAL Drivers and CMSIS updated:

  • STM32F0xx HAL Drivers to v1.7.6
  • STM32F0xx CMSIS Drivers to v2.3.6
  • STM32F1xx HAL Drivers to v1.1.8
  • STM32F1xx CMSIS Drivers to v4.3.3
  • STM32F2xx HAL Drivers to v1.2.7
  • STM32F2xx CMSIS Drivers to v2.2.5
  • STM32F3xx CMSIS Drivers to v2.3.6
  • STM32F3xx HAL Drivers to v1.5.6
  • STM32F4xx HAL Drivers to v1.7.13
  • STM32F4xx CMSIS Drivers to v2.6.7
  • STM32G0xx HAL Drivers to v1.4.2
  • STM32G0xx CMSIS Drivers to v1.4.1
  • STM32L0xx CMSIS Drivers to v1.9.2
  • STM32L0xx HAL Drivers to v1.10.5
  • STM32L1xx HAL Drivers to v1.4.4
  • STM32L1xx CMSIS Drivers to v2.3.2
  • STM32WBxx CMSIS Drivers to v1.9.0
  • STM32WBxx HAL Drivers to v1.9.0

Middleware updated:

  • USB Device library to v2.8.0

Core dependencies:

Enhancements/improvements:

  • board: Nucleo-G474RE: use HSE instead of HSI (#1376)
  • feat(cdc): add api to manage the DTR usage (#1193)
  • feat(cdc): implement rts api
  • feat(uart): add LPUART2 support available wit G0
  • Dual pad analog switch: skip gpio configuration in case of direct ADC
  • chore: update ll and hal source wrapped files to ignore unused warning
  • library: add RGB LED TLC59731
  • config: add debug information menu (#873)
  • update generated files to STM32_open_pin_data c6.0.30 including L1 AF USB fix (#1451)
  • wire: enhance i2c_getClkFreq()
  • spi: enhance spi_getClkFreqInst()
  • spi: ensure peripheral reset
  • spi: set MasterKeepIOState to avoid glitches
  • bsp: analog: handle ADC_VER_V5_V90 available with some STM32H7xx
    ...

Fixes:

  • fix: BlackPill F411CE I2C SDA pin (#1369)
  • fix: analog: use MAX_PWM_RESOLUTION instead of MAX_ADC_RESOLUTION (#1378)
  • fix: variant NUCLEO_H743ZI digital pin typo
  • fix(spi): get correct peripheral clock frequency
  • fix(eeprom): define FLASH_FLAG_ALL_ERRORS
  • fix: BlackPill F407Zx missing comma
  • fix: nucleo-l152RE: add missing clock configuration for ADC
  • fix: correct guard for RHF76_052 (#1439)
  • platform: use build.opt instead of build_opt.h. See: arduino/arduino-cli#1338
    When the above issue will be fix. This change should be reviewed. This is backward compatible.
  • fix: Add missing USB and ADC clock configuration for STM32F103R(8-B)T
  • fix(uart): add missing half duplex init
  • fix: correct variant path for some STM32G0xx
  • HartdwareSerial: recover original Arduino asynchronous write API (#1492)
  • chore: sort third party group by alphabetical order
  • refactor: unified stm32CubeProg shell script. Require STM32Tools v2.1.0

Plus several other fixes: See 2.0.0...2.1.0

Several components libraries are available on stm32duino organization.
They are also available through the Arduino library manager. Search for STM32duino 😉

Arduino Core for STM32 2.0.0

21 Apr 13:48
Compare
Choose a tag to compare

Github Releases (by Release)

Important note:

The board package index has changed to better follow the package index specification. New link is:

https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json

Main changes

As the number of variants continues to grow and in order to ease navigation, they have been grouped in sub-folders per series.

To improve variants support and generic ones several enhancements/fixes has been done:

  • Each variant is linked to its mcu/package
  • All pins capabilities is possible without modifying the PeriperhalPins.c PinMap array. ALTx pin naming allows to use all alternative possibilities which use other Hardware peripheral instances.
  • All remap pins are supported (F0/G0)
  • All dual pad pins are supported (H7)
  • Analog definition clean up
  • Several fixes in existing variants

All generic variants are now automatically generated thanks the STM32_open_pin_data repository which provides all the information required for the pin configuration of products based on STM32 MCU. All the generic variants are generated in the variant folder, this means all the generic STM32 MCU are generated. Only the linker script and the clock config are missing. A board_entry.txt file is generated to ease board declaration.

Note that flash size used can be increased by 2k as now all pins are available in the PeripheralPins.c. To decrease it you can redefine the \ PinMap arrays at sketch level to only provide access to the used pins. See the Wiki custom pinmap array section.

This release includes:

Add support of:

  • Nucleo L552ZE-Q

  • Nucleo F070RB

  • Nucleo G031K8

  • STM32F3DISCOVERY

  • B-G431B-ESC1

  • B-L4S5I-IOT01A

  • OLIMEXINO-STM32F3

  • vcc-gnd.com Mini

  • Aurora One

  • Several generic variant:
    • STM32F030C8
    • STM32F030F4
    • STM32F030R8
    • STM32F031K6T
    • STM32F042C4, STM32F042C6
    • STM32F051K6U, STM32F051K8U
    • STM32F070CB
    • STM32F070RB
    • STM32F072C8, STM32F072CB
    • STM32F072R8, STM32F072RB
    • STM32F091RB, STM32F091RC
    • STM32F100C4, STM32F100C6
    • STM32F100C8, STM32F100CB
    • STM32F207ZC, STM32F207ZE, STM32F207ZF, STM32F207G
    • STM32F217ZE, STM32F217G
    • STM32F302R6, STM32F302R8
    • STM32F303CB, STM32F303CC
    • STM32F303K6, STM32F303K8
    • STM32F303RD, STM32F303RE
    • STM32F303RB, STM32F303RC
    • STM32F303VBT, STM32F303VCT
    • STM32F334K4, STM32F334K6, STM32F334K8
    • STM32F401VB, STM32F401VC, STM32F401VD, STM32F401VE
    • STM32F407ZE, STM32F407ZG
    • STM32F413ZG, STM32F413ZH
    • STM32F417ZE, STM32F417ZG
    • STM32F423ZH
    • STM32F427ZG, STM32F427ZI
    • STM32F429ZE, STM32F429ZG, STM32F429ZI
    • STM32F437ZG, STM32F437ZI
    • STM32F439ZG, STM32F439ZI
    • STM32F446VC, STM32F446VE
    • STM32F745ZE, STM32F745ZG
    • STM32F746BE, STM32F746BG, STM32F746NE, STM32F746NG
    • STM32F746ZE, STM32F746ZG
    • STM32F750N8
    • STM32F750Z8
    • STM32F756BG, STM32F756NG
    • STM32F756ZG
    • STM32F765VG, STM32F765VI
    • STM32F765ZG, STM32F765ZI
    • STM32F767VG, STM32F767VI
    • STM32F767ZG, STM32F767ZI
    • STM32F777VI
    • STM32F777ZI
    • STM32G030K6, STM32G030K8
    • STM32G031J4, STM32G031J6
    • STM32G031K4, STM32G031K6, STM32G031K8
    • STM32G041J6
    • STM32G041K6, STM32G041K8
    • STM32G071R6, STM32G071R8, STM32G071RB
    • STM32G081RB
    • STM32G431C6U, STM32G431C8U, STM32G431CBU
    • STM32G441CBU
    • STM32G431K6, STM32G431K8, STM32G431KB
    • STM32G441KB
    • STM32G431R6, STM32G431R8, STM32G431RB
    • STM32G441RB
    • STM32G473RB, STM32G473RC, STM32G473RE
    • STM32G474RB, STM32G474RC, STM32G474RE
    • STM32G483RE
    • STM32G484RE
    • STM32H742VG, STM32H742VI
    • STM32H742ZG, STM32H742ZI
    • STM32H743IG, STM32H743II
    • STM32H743VG, STM32H743VI
    • STM32H743ZG, STM32H743ZI
    • STM32H747AG, STM32H747AI
    • STM32H747IG, STM32H747II
    • STM32H750ZB
    • STM32H750IB, STM32H750II
    • STM32H750VB
    • STM32H753VI
    • STM32H753ZI
    • STM32H757AI
    • STM32H757II
    • STM32L010RB
    • STM32L031K4T, STM32L031K6T
    • STM32L041K6T
    • STM32L051C6, STM32L051C8
    • STM32L052R6T, STM32L052R8T
    • STM32L053R6T, STM32L053R8T
    • STM32L063R8T
    • STM32L072CBY, STM32L072CZE, STM32L072CZY
    • STM32L072KBT, STM32L072KZT
    • STM32L072RBT, STM32L072RZT
    • STM32L073CZY
    • STM32L073RBT, STM32L073RZT
    • STM32L082CZY
    • STM32L082KBT, STM32L082KZT
    • STM32L083RBT, STM32L083RZT
    • STM32L100C6, STM32L100C6-A
    • STM32L151C6, STM32L151C8, STM32L151CB
    • STM32L151C6-A, STM32L151C8-A, STM32L151CB-A
    • STM32L152C6, STM32L152C8, STM32L152CB
    • STM32L152C6-A, STM32L152C8-A, STM32L152CB-A
    • STM32L151RE
    • STM32L152RE
    • STM32L162RE
    • STM32L412K8, STM32L412KB, STM32L422KB
    • STM32L432KB, STM32L432KC, STM32L442KC
    • STM32L433RC-P
    • STM32L452RC, STM32L452RE, STM32L462RE
    • STM32L452RE-P
    • STM32L475VC, STM32L475VE, STM32L475VG
    • STM32L476VC, STM32L476VE, STM32L476VG
    • STM32L476RC, STM32L476RE, STM32L476RG
    • STM32L486VG
    • STM32L496ZE, STM32L496ZG
    • STM32L496ZG-P
    • STM32L4A6ZG
    • STM32L4A6ZG-P
    • STM32L4R5VG, STM32L4R5VI
    • STM32L4R5ZGTx, STM32L4R5ZITx
    • STM32L4R5ZI-P
    • STM32L4R7VITx
    • STM32L4R7ZITx
    • STM32L4R9ZGJx, STM32L4R9ZIJx
    • STM32L4S5VI
    • STM32L4S5ZITx
    • STM32L4S7VI
    • STM32L4S7ZITx
    • STM32L4S9ZIJx
    • STM32L552ZC-Q, STM32L552ZE-Q
    • STM32L562ZE-Q
    • STM32WB55CC, STM32WB55CE, STM32WB55CG
    • STM32WB55RC, STM32WB55RE, STM32WB55RG

HAL Drivers and CMSIS added:

  • [L5] STM32L5xx CMSIS Drivers to v1.0.4
  • [L5] STM32L5xx HAL Drivers to v1.0.4

HAL Drivers and CMSIS updated:

  • [F0] STM32F0xx CMSIS Drivers to v2.3.5
  • [F0] STM32F0xx HAL Drivers to v1.7.5
  • [F1] STM32F1xx HAL Drivers to v1.1.7
  • [F1] STM32F1xx CMSIS Drivers to v4.3.2
  • [F2] STM32F2xx HAL Drivers to v1.2.6
  • [F2] STM32F2xx CMSIS Drivers to v2.2.4
  • [F3] STM32F3xx CMSIS Drivers to v2.3.5
  • [F3] STM32F3xx HAL Drivers to v1.5.5
  • [F4] STM32F4xx HAL Drivers to v1.7.12
  • [F4] STM32F4xx CMSIS Drivers to v2.6.6
  • [F7] STM32F7xx CMSIS Drivers to v1.2.6
  • [F7] STM32F7xx HAL Drivers to v1.2.9
  • [G4] STM32G4xx CMSIS Drivers to v1.2.1
  • [G4] STM32G4xx HAL Drivers to v1.2.1
  • [H7] STM32H7xx CMSIS Drivers to v1.10.0
  • [H7] STM32H7xx HAL Drivers to v1.10.0
  • [L0] STM32L0xx CMSIS Drivers to v1.9.1
  • [L0] STM32L0xx HAL Drivers to v1.10.4
  • [L1] STM32L1xx HAL Drivers to v1.4.3
  • [L1] STM32L1xx CMSIS Drivers to v2.3.1
  • [L4] STM32L4xx CMSIS Drivers to v1.7.1
  • [L4] STM32L4xx HAL Drivers to v1.13.0
  • [MP1] STM32MP1xx CMSIS Drivers to v1.4.0
  • [MP1] STM32MP1xx HAL Drivers to v1.4.0
  • [WB] STM32WBxx CMSIS Drivers to v1.8.0
  • [WB] STM32WBxx HAL Drivers to v1.8.0

Middleware updated:

  • USB Device library to v2.6.0
  • USB Host library to v3.3.4

Core dependencies:

Enhancements/improvements:

  • variant: Group each variant per STM32 series
    As the number of variants continues to grow and in order to ease navigation,
    they have been grouped in sub-folders per STM32 series.
  • Rename PinMap_PWM to PinMap_TIM
  • Extend Arduino pin naming to the max possibilities (64)
  • Clean up old way to define Ax pins definition
  • Rework analog pin management. Use mask to ease analog pin management and ease alternative
    analog pins introduction.
  • Add Alternate pins (ALTx) management
    The PinName mentioned Px_y_ALTz (described in the PeripheralPins.c/PinNames.h files)
    are alternative possibilities which use other HW peripheral instances.
    To access those alternative PinName name using a pin number can be performed like this:
    • PYn_ALTx
    • Ax | ALTx
    • Dx | ALTx
    • x | ALTx
  • Change Ax constants to an enum
  • Move genpinmap from Arduino_Tools repository and renamed stm32variant.py
  • Allow use of a custom peripheral pins file
    Syntax in the board.txt:
    xxx.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
    Example to use a custom peripheral pins file for Nucleo_L476RG:
    Nucleo_64.menu.pnum.NUCLEO_L476RG.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
    Then add...
Read more

Arduino Core for STM32 1.9.0

15 May 15:35
Compare
Choose a tag to compare

Github Releases (by Release)

This release includes:

Add support of:

HAL Drivers and CMSIS updated:

  • STM32F2xx HAL Drivers to v1.2.4
  • STM32F2xx CMSIS Drivers to v2.2.3
  • STM32G4xx HAL Drivers to v1.1.1
  • STM32G4xx CMSIS Drivers to v1.1.1
  • STM32H7xx HAL Drivers to v1.8.0
  • STM32H7xx CMSIS to v1.8.0
  • STM32L4xx HAL Drivers to v1.11.1
  • STM32L4xx CMSIS to v1.6.1
  • STM32MP1xx HAL Drivers to v1.2.0
  • STM32MP1xx CMSIS Drivers to v1.2.0
  • STM32WBxx HAL Drivers to v1.5.0
  • STM32WBxx CMSIS Drivers to v1.4.0

Middleware update:

  • Update OpenAMP to v1.0.4

Core dependencies:

  • Updates STM32 Tools 1.4.0

Enhancements/improvements:

  • HardwareTimer: start timer when only update interrupt needed (#841)
  • HardwareTimer: Clear IT flag only if callback not previously configured
  • HardwareTimer: Allow setting preload enable bits
  • HardwareTimer: Enable preload for ARR/overflow register
  • HardwareTimer: Add API to get configured mode
  • HardwareTimer: Added functionality to pass custom parameter to callback (#892)
  • I2C: allow static redefinition of buffer size (I2C_TXRX_BUFFER_SIZE)
  • [USB] Do not claim AT-protocol in CDC interface descriptor
  • [USB] Clean up USB id and string assignment
  • USB: Disable Vbus sensing by default. To enable define: USBD_VBUS_DETECTION_ENABLE
  • Servo: enlarge pin number range to [0..255]
  • [G0] Handle pin remap
  • SPI: improvements for SPI library (#912)
  • [MP1] Add RPMsg virtual serial protocol support (VirtIOSerial)
  • Support a .noinit section for variables
  • Refactor USB pullup handling

Fixes:

  • Fix build issue when TIM module is disabled or only requested
  • HardwareTimer: Fix ARR and CCRx computation
  • HardwareTimer: specific F1 GPIO needs Alternate Function configuration
  • analogWrite: Configure HardwareTimer mode only if not previously done (avoid glitch)
  • [HardwareSerial] Fix ambiguous call of overloaded function
  • [F1/F2/F4/L1] I2C HAL fix: generate Start only once Stop is finished
  • I2C multi instances: Remove static qualifier on TwoWire attributes
  • analogRead: don't set ADC common register when ADC doesn't support it.
  • Fix EEPROM hardfault: eeprom_buffer should be 8 bytes aligned (#931)
  • EEPROM emulation: wrong flash sector used for some F7 variants (#938)
  • Fix weaked serialEventRun() not being called
  • Fix weaked initVariant()declaration
  • F1 pinmap: input mode may be associated with an alternate function

Plus several other fixes: See 1.8.0...1.9.0

Several components libraries are available on stm32duino organization.
They are also available through the Arduino library manager. Search for STM32duino 😉

Arduino Core for STM32 1.8.0

20 Dec 10:37
Compare
Choose a tag to compare

Github Releases (by Release)

This release includes:

Add support of:

HAL Drivers and CMSIS updated:

  • STM32F0xx HAL Drivers to v1.7.3
  • STM32F0xx CMSIS to v2.3.4
  • STM32F3xx HAL Drivers to v1.5.3
  • STM32F3xx CMSIS to v2.3.4
  • STM32F4xx HAL Drivers to v1.7.7
  • STM32F4xx CMSIS to v1.7.7 …
  • STM32WBxx HAL Drivers to v1.3.0
  • STM32WBxx CMSIS to v1.3.0

HAL Drivers and CMSIS added:

  • STM32MP1xx HAL Drivers v1.1.0
  • STM32MP1xx CMSIS v1.1.0

Middleware added:

  • OpenAMP v1.0.3

Core dependencies:

Enhancements/improvements:

  • Remove use of whole-archive (#677)
  • HardwareSerial support half-duplex See Wiki
  • CMSIS DSP support as built-in library. Include CMSIS_DSP.h allows to use DSP functions.
  • Support precompiled libraries as described in Arduino IDE 1.5: Library specification
  • Added the repeated-start feature in I2C driver (#590)
  • [SoftwareSerial] Add function to set interrupt priority
  • [HardwareTimer) Add methods to check if there's an IRQ handler
  • [NUCLEO_L073RZ] Enable USB clock
  • Add printf to Print class: Print:printf
  • Allow to enable HAL module only. See Wiki
  • [Wire] New begin method for late call configuration (#838)
  • Allow non contiguous analog pins definition

Fixes:

  • [USB] Fix EP0 STALL issue in STM32 USB Device library
  • [TIM] Fix TIM6_IRQn definition
  • [ADC] Fix ADC_InitTypeDef member for STM32F37xx
  • [I2C] Fix error management in Read/Write
  • [Nucleo-G071RB] Fix analog pin issue
  • Fix single-pin half-duplex in SoftwareSerial::send
  • [NUCLEO-H743ZI] Fix Analog pin mapping
  • [SPI] Fix prescaler at low baudrates (#794)
  • [ARMED_V1] Fix wrong NUM_DIGITAL_PINS value
  • [NUCLEO_L452RE] Fix PC1 pin number
  • [Nucleo-G431xx] Add new node name
  • Fix ADC_RESOLUTION, PWM_RESOLUTION and DACC_RESOLUTION usage

Plus several other fixes: See 1.7.0...1.8.0

Several components libraries are available on stm32duino organization.
They are also available through the Arduino library manager. Search for STM32duino 😉

Arduino Core for STM32 1.7.0

18 Oct 19:22
Compare
Choose a tag to compare

Github Releases (by Release)

This release includes:

Add support of:

Extend support

  • STM32F030F4 Demo board using 16MHz X-TAL or HSI.

HAL Drivers and CMSIS updated:

  • STM32F1xx HAL Drivers to v1.1.4 (USB related files reverted due to a regression)
  • STM32F1xx CMSIS to v4.3.1
  • STM32F2xx HAL Drivers to v1.2.3
  • STM32F2xx CMSIS to v2.2.2
  • STM32G0xx HAL Drivers to v1.3.0
  • STM32G0xx CMSIS to v1.3.0
  • STM32H7xx HAL Drivers to v1.6.0
  • STM32H7xx CMSIS to v1.6.0
  • STM32WBxx HAL Drivers to v1.2.0
  • STM32WBxx CMSIS to v1.2.0

HAL Drivers and CMSIS added:

  • STM32G4xx HAL Drivers v1.1.0
  • STM32G4xx CMSIS v1.1.0

Middleware updated:

  • STM32 USB Host library to v3.3.3
  • STM32 USB Device library to v2.5.3

Core dependencies:

  • Updates STM32 Tools 1.3.1

Enhancements/improvements:

  • [PinMap] Add WEAK attribute to PinMap arrays. See custom pinmap array wiki page.
  • Add HardwareTimer library. See wiki
  • [I2C] Harden error management
  • Allow F_CPU redefinition
  • [Time] delayMicroseconds() accuracy
  • Add SoftwareSerial built-in library
  • Allow not to have analog pin. If no analog pin required then NUM_ANALOG_INPUTS and NUM_ANALOG_FIRST could be not defined or set to respectively 0 and NUM_DIGITAL_PINS. Nevertheless, this kept ADC internal channels functional if HAL_ADC_MODULE_ENABLED still defined.
  • Update Nucleo H743ZI(2) variant to use HSE

Fixes:

  • [I2C] Compute timing properly. See i2c-timing wiki page.
  • Fix {build.mcu} definition then library can provide a precompiled library.
  • [Time] Fix ticks per ms value used to compute micros
  • [USB] Fix endpoints configurations

Plus several other fixes: See 1.6.1...1.7.0

Several components libraries are available on stm32duino organization.
They are also available through the Arduino library manager. Search for STM32duino 😉

Arduino Core for STM32 1.6.1

27 Jun 08:29
Compare
Choose a tag to compare

Github Releases (by Release)

This release includes:

Add support of:

Add support of RobotDyn BlackPill F303CC

Core dependencies:

  • Moved from arm-none-eabi-gcc 8-2018-q4-major to 8.2.1-1.7

Fix:

Several components libraries are available on stm32duino organization.
They are also available through the Arduino library manager. Search for STM32duino ;)

Arduino Core for STM32 1.6.0

17 Jun 16:19
Compare
Choose a tag to compare

Github Releases (by Release)

This release includes:

Add support of:

  • Nucleo H743ZI2
  • Nucleo G071RB
  • P-Nucleo WB55RG (No BLE support at this time)
  • Sparky V1
  • STEVAL-3DP001V1
  • VAkE v1.0

HAL Drivers and CMSIS updated:

  • STM32F0xx HAL Drivers to v1.7.2
  • STM32F4xx HAL Drivers to v1.7.6
  • STM32F4xx CMSIS to v2.6.3
  • STM32F7xx HAL Drivers to v1.2.7
  • STM32F7xx CMSIS to v1.2.4
  • STM32H7xx HAL Drivers to v1.5.0
  • STM32H7xx CMSIS to v1.5.0
  • STM32L0xx HAL Drivers to v1.10.2
  • STM32L1xx HAL Drivers to v1.4.0
  • STM32L1xx CMSIS to v2.3.0
  • STM32L4xx HAL Drivers to v1.10.0
  • STM32L4xx CMSIS to v1.5.1

HAL Drivers and CMSIS added:

  • STM32G0xx HAL Drivers v1.2.0
  • STM32G0xx CMSIS v1.2.0
  • STM32WBxx HAL Drivers v1.1.0
  • STM32WBxx CMSIS v1.1.0

Core dependencies:

Enhancements/improvements:

  • Introduce code formatting using Astyle 3.1:
  • Add STM32 core version. See Wiki
  • Code cleaning/hardening:
    • Clean useless legacy comments
    • Remove useless array for digital pins configured
    • Dynamically handle I2C, UART and Timer indexes
    • [USB HID] Harden init
    • [I2C] Harden init and save space
    • [UART] Save space and avoid loop to search the right serial_t obj
  • Several update for USB device from @makarenya and @ghent360
  • [RTC] Handle reset time (#266)
  • [DWT] Add API to enable DWT access
  • Use DWT cycle counter for delayMicroseconds()
  • [DISCO_L072CZ_LRWAN1] Enable USB clock
  • [Timer] Extend channels support (#477)
  • Support custom USBD_reenumerate (#500)
  • Re-evaluate interrupt priority values(#472). See Custom-definitions
  • Introduce STM32CubeProgrammer:
    • Replace STLink and Serial upload methods
    • Add DFU upload method
      Warning: user have to install the STM32CubeProgrammer manually, it is not provided by the STM32 tools package.
  • Review HAL configurations to add some enhancement and flexibility, see #518 and HAL configuration WiKi page
  • Add DTR toggling sequence support:
    • Enabled thanks: DTR_TOGGLING_SEQ
    • User can redefine its own hook by redefining: dtr_togglingHook(uint8_t *buf, uint32_t *len)
  • Maple bootloader support (legacy) thanks @BennehBoy and @Serasidis
  • Add dummy analogReference() for compatibility
  • Add internal ADC channels support. See Wiki
  • HID Bootloader v2.2 support thanks @Serasidis :
    https://github.com/Serasidis/STM32_HID_Bootloader
  • Add general call mode API. See Wiki

Fixes:

  • [UART] Fix serial port full-duplex bug
  • [UART] Fix error callback (clear flags and restart receive IT)
  • Fix to build with ISO C standard
  • Fix dtostrf() with value in range -1.0 < val < 0.0 (#513)

Plus several other fixes: See 1.5.0...1.6.0

Several components libraries are available on stm32duino organization.
They are also available through the Arduino library manager. Search for STM32duino ;)

known issues

  • Linker error if path contains space.:
    <...>/stm32/tools/arm-none-eabi-gcc/8-2018-q4-major/bin/../lib/gcc/arm-none-eabi/8.2.1/lto-wrapper.exe: No such file or directory
    See stm32duino/arm-none-eabi-gcc#1

Arduino Core for STM32 1.5.0

13 Feb 09:35
20db88e
Compare
Choose a tag to compare

Github Releases (by Release)

This release includes:

  • Added support of:

    • Nucleo H743ZI
    • Nucleo L452RE
    • Nucleo L412KB
    • 32F072BDISCOVERY
    • STM32F030F4 Demo board
    • BluePill F103C(6-8-B) (extend MCU version)
    • BlackPill F103C(8-B)  
    • HY-TinySTM103T
    • Black F407VG/ZE/ZG
    • DIYMROE STM32F407VGT
    • FK407M1
    • ARMED V1
    • EExtruder F030 V1
    • Malyan M200 V1
    • Malyan M200 V2
    • Prntr Board V1
    • RUMBA32
  • HAL Drivers and CMSIS updated:

    • STM32F1xx HAL Drivers to v1.1.3
    • STM32F1xx CMSIS to v4.3.0
    • STM32L0xx HAL Drivers to v1.10.0
    • STM32L0xx CMSIS to v1.9.0
  • New HAL Drivers and CMSIS:

    • STM32H7xx HAL Drivers v1.4.0
    • STM32H7xx CMSIS v1.4.0
  • Enhancements/improvements

    • Use LL for GPIO access
    • Add digitalReadFast()/digitalWriteFast() API (use the PinName (PY_n) instead of the pin number (PYn))
    • Add digitalToggle()/digitalToggleFast()
    • Add USB CDC support across all supported series in FS/HS.
    • Update USB HID composite (keyboard and mouse)
    • Remove CapacitiveSensor built-in library (support added in official library)
    • Add preprocessing of linker script. This allow to use switch in ldscript.ld file.
      By default, add define for RAM and FLASH max size:
      -DLD_MAX_SIZE={upload.maximum_size} -DLD_MAX_DATA_SIZE={upload.maximum_data_size}
    • Rework Serial and USB menu:
      • Rename "Serial interface" to "U(S)ART support"
      • Rename "USB interface" to "USB support"
      • Add "USB speed" menu for USB speed: LS/FS/HS/HS in FS
      • Reword some descriptions
  • Fixes

    • Fix SPI::setClockDivider implementation (#299)
    • Replace boolean with standard bool. boolean type now marked as deprecatedcd stm. See arduino/Arduino#4673.
    • [EEPROM] Wrong E2END definition (#396)
    • [dtostrf] Fix missing leading zeros in decimal part

Plus some other fixes: See 1.4.0...1.5.0

Several components libraries are available on stm32duino organization.
They are also available through the Arduino library manager. Search for STM32duino ;)

Arduino Core for STM32 1.4.0

31 Oct 17:19
Compare
Choose a tag to compare

Github Releases (by Release)

This release includes:

  • Added support of:

  • HAL Drivers and CMSIS updated:

    • STM32F3xx HAL Drivers to v1.5.2
    • STM32F3xx CMSIS to v2.3.3
    • STM32F7xx HAL Drivers to v1.2.6
    • STM32F7xx CMSIS to v1.2.3
    • STM32L4xx HAL Drivers to v1.9.0
    • STM32L4xx CMSIS to v1.5.0
  • [F1xxx] LSI typical value is 40kHz

  • Fix I2C issues raised since IT mode introduction

  • Add I2C Scanner examples thanks @Testato

  • WString: add toDouble (Arduino compatibility)

  • [U(S)ART] Allow to use defined PIN_SERIALx_RX and PIN_SERIALx_TX in variant.h if user instantiate a hardware Serial using peripheral name.
    Example:
    HardwareSerial mySerial(USART3);
    will use PIN_SERIAL3_RX and PIN_SERIAL3_TX if defined.

  • Allow use of a custom startup file:
    Syntax in the board.txt:
    xxx.build.startup_file=-DCUSTOM_STARTUP_FILE

    Example to use a custom startup file for Nucleo_L476RG:
    Nucleo_64.menu.pnum.NUCLEO_L476RG.build.startup_file=-DCUSTOM_STARTUP_FILE
    Then add a "*.S" file in the "variant/NUCLEO_L476RG/" folder
    Important note: extension must be '.S' not '.s'

    CUSTOM_STARTUP_FILE could also be defined thanks the build_opt.h.
    CMSIS_STARTUP_FILE could now be overridden using the build_opt.h, ex:
    -DCMSIS_STARTUP_FILE=\"startup_stm32l476xx.s\"

  • Remove SD core dependencies. STM32SD will be able to handle properly SD detect pin and FatFs options.
    SD_DETECT_PIN pin number definition could be added in variant.h
    SD_DATATIMEOUT could be redefined in variant.h

  • Use define instead of enum for pins in variant.h thanks @ghent360 (Arduino compatibility)

  • Fix _sbrk() to avoid user heap to override the minimum stack size

  • Define _sbrk() as weak

  • [Nucleo-L476RG] Fix available SRAM size

  • [Nucleo-L432KC] Provide full SRAM access

  • Enable FPU Single Precision (SP) for Nucleo-F303K8

  • Add keywords.txt (Arduino compatibility)

  • Fix std::abs() usage

  • Add script to build the core thanks Travis (CI build)

  • Add menu options for C RunTime library

  • Change hourAM_PM_t enum member name. Required by STM32RTC library higher than 1.1.0.

  • [EEPROM] Fix address capablilities

  • [EEPROM] Allow FLASH definition to be redefined

  • [EEPROM emulation] Rework for buffered access thanks @hasenbanck

  • [U(S)ART] Fix AF settings

  • Update LL wrapper files management. Move all LL wrapper file in LL/ directory instead of HAL/
    Split stm32yyxx_ll.h file per feature (stm32yyxx_ll_*.h), this allow a better granularity and to include only the required LL header file instead of the full list.

  • Add built-in IWatchdog library thanks @ghent360.

  • Add debug(const char *format, ...) function

  • Remove GSM built-in library

  • Remove UART emulation

Plus some other small fixes: See 1.3.0...1.4.0

Several components libraries are available on stm32duino organization.
They are also available through the Arduino library manager. Search for STM32duino ;)

Arduino Core for STM32 1.3.0

15 Jun 18:37
Compare
Choose a tag to compare

This release includes:

  • Added support of:
    • NUCLEO-L496ZG
    • NUCLEO-L496ZG-P
    • STM32F0308Discovery (thanks @amassou2017)
  • Enable USART2 TX in the DISCO_L475VG_IOT
  • HAL Drivers and CMSIS updated:
    • STM32F1xx HAL Drivers to v1.1.2
    • STM32F3xx HAL Drivers to v1.5.1
    • STM32L4xx HAL Drivers to v1.8.3
    • STM32L4xx CMSIS to v1.4.3
  • Add RTC driver required for STM32RTC
  • Add low power driver required for STM32LowPower
  • Allow VECT_TAB_OFFSET to be redefined
  • Review Serial menu, 3 options:
    • Enabled with generic Serial: default, define HAL_UART_MODULE_ENABLED
      and instantiate Serial using SERIAL_UART_INSTANCE and PIN_SERIAL_RX/PIN_SERIAL_Tx
    • Enabled without generic Serial: define HAL_UART_MODULE_ENABLED
    • Disabled (No Serial): HAL_UART_MODULE_ENABLED not defined
      Allow to build without HAL_UART_MODULE_ENABLED (save memory)
      Now, HAL_UART_MODULE_ENABLED should not be defined in stm32yyxx_hal_conf.h
  • Add LPUART1 management
  • Several clean and other fixes ...

Several components libraries are available on stm32duino organization.
They are also available through the Arduino library manager. Search for STM32duino ;)

known issues

  • I2C: Several issue raised around I2C and related to IT mode implementation, see #217
  • [STLink] Failed to flash Nucleo L496ZG(-P) under Linux and Mac, see stm32duino/Arduino_Tools#23
  • Since e02bc35, some serial was not functional. Ex for Nucleo-L432KC, the AF of USART2 (used for STLink VCP)
    are not the same. See #312