Skip to content

Pranau-R/Arduino_Core_STM32

 
 

Repository files navigation

Arduino core support for STM32L082-based boards

This repository is MCCI's version of https://github.com/stm32duino/Arduino_Core_STM32, adapted for the STM32L082. The BSP here targets the STM32L082 as used in the Murata CMWX1ZZABZ LoRa® module, as further in the MCCI Catena® LoRaWAN™ boards. Several of these boarsd are closely compatible with the Adafruit Feather M0 LoRa. See Supported Boards and CPUs for more info.

For general information, please check the stm32duino README.md, especially the Getting Started section.

Latest release

GitHub release GitHub commits

Getting Started

This repository is available as a package usable with the Arduino Boards Manager. Add this URL to "Additional Boards Manager URLs" under File>Preferences:

https://github.com/mcci-catena/arduino-boards/raw/master/BoardManagerFiles/package_mcci_index.json

For full instructions on using the "Boards Manager", see Installing the MCCI Catena BSP.

Features

The Arduino IDE allows you to select the following items.

  • LoRaWAN Region: when using the Arduino LMIC, you can select North America, Europ, Australia, Asia, Japan, or India as your target region.
  • Optimization: choose smallest, fast, faster, fastest, or debug.
  • Serial interface: Select "USB Serial", "Generic Serial" or "No Serial".
  • System clock: Select "32 MHz (most power)", "24 MHz", "16 MHz", "4.194 MHz (no USB) or "2.097 MHz (no USB, least power)"". If "2.097 MHz (no USB, least power)" or "4.194 MHz (no USB)" is selected, then you cannot use "USB Serial" for serial interface.
  • Upload method: select Mass Storage, DFU, or STLink. DFU works well, but requires use of the boot jumper to select DFU mode, and a little driver wrangling on Windows.

Supported Boards and CPUs

Board CPU/SOC Comment
MCCI Catena 4551 STM32L082 This board uses a Murata CMWX1ZZABZ module, containing the STM32L082 CPU
MCCI Catena 4610 STM32L082 This board uses a Murata CMWX1ZZABZ module, containing the STM32L082 CPU
MCCI Catena 4611 STM32L082 This board uses a Murata CMWX1ZZABZ module, containing the STM32L082 CPU
MCCI Catena 4612 STM32L082 This board uses a Murata CMWX1ZZABZ module, containing the STM32L082 CPU
MCCI Catena 4801 STM32L082 This board uses a Murata CMWX1ZZABZ module, containing the STM32L082 CPU

Simple Board Comparison Chart (4551/461x series)

Feature 4551 4610 4611 4612
TCXO control Always on (power consumption issue) Controlled by code Controlled by code Controlled by code
Battery type Primary (non-rechargeable) reference is 2x AAA cells Secondary (LiPo rechargeable), compatible with Adafruit Feather batteries Primary (non-rechargeable) reference is 2x AAA cells
System voltage 3.3V 3.3V 3.3V 2.2V to 3.3V, depending on whether boost regulator is enabled.
Regulator control EN pin on Feather disables VDD altogether No boost regulator; EN disables VDD altogether. EN pin on JP2-3 shuts down boost regulator EN output from CPU controls boost regulator, and 4612 normally runs with boost regulator off for lower power.
High-side switch for external sensors No switch, screw terminal power is from VDD (3.3V) High-side switch allows software to turn off power to the external sensor screw terminals High-side switch allows software to turn off power to the external sensor screw terminals High-side switch allows software to turn off power to the external sensor screw terminals
Feather electrical compatibility Good, except for different battery system Very good Very good Good physical compatibility but the varying VDD may be an issue
Feather physical compatibility Yes Yes Yes Yes
USB Supported Supported Supported Supported
Sensors BME280, Si1123 BME280, Si1113 BME280, Si1113 BME280, Si1113
Screw terminals for external sensors 2x4 pin 2x4 pin 2x4 pin 2x4 pin

Catena 4801 Features

The 4801 is a dedicated board for remote Modbus applications, using the Murata module.

Feature 4801
TCXO Control Controlled by code
Battery type Primary battery, boost regulator (but can tolerate up to 3.7V battery)
System voltage 2.2V to 3.3V, depending on whether boost regulator is enabled.
Regulator control EN output from CPU controls boost regulator, and 4612 normally runs with boost regulator off for lower power.
High-side switch for power for external sensors Yes
Screw terminals for external sensors 1x4 pin
Feather physical compatibility No
USB Not supported
Sensors none
External interfaces Modbus, TTL serial

Troubleshooting

If you have any issue, you may file an issue on Github. You may also submit a support request on the MCCI support forum.

Installing a Development Copy of this BSP

If you want to develop and test changes to this package, we suggest the following.

  1. Install the current release from the standard location using the Arduino Tools>Boards>Boards Manager... menu. This installs tools and so forth.

  2. Select a board supported by this package.

  3. Create an empty sketch with Arduino File>New, and check that you can build.

  4. Close the Arduino IDE.

  5. Clone this repo to a convenient spot on your computer.

  6. Open a command window and go to the Arduino board installation directory. It will be one of the following.

    System Location
    Windows 7 through 10 c:\Users\username\AppData\Local\Arduino15. If you're using git bash, you can also use ~/AppData/Local/Arduino15
    macOS ~/Library/Arduino15
    Linux ~/.arduino15
  7. From this location, change directory to packages/mcci/stm32.

  8. Look at the direcory contents with ls. You'll see a directory named like a version number, for example 1.0.8.

  9. Move the directory you just found away from the stm32 directory. It's convenient to have it around, so we sugest not delete it.

  10. Create a symbolic link to the sandbox you created in step (3) above. On macOS and Linux, this is done using the ln -s command. On Windows 10, this is done with the mklink /d command. (On older versions of Windows, unless you're very experienced, you might want to use a Linux VM in VirtualBox -- we can't advise on the best way to do this.)

  11. Open the Arduino IDE.

  12. Use the menu File>New to create an empty sketch (or reuse the sketch from step 3).

  13. Make sure the board you want to develop for is selected in Tools>Boards.

  14. Make changes and build.

Remember to restart the IDE whenever you change platform.txt, boards.txt or programmers.txt.

Release History

  • v2.0.0 is a major release. It improves wakeup support and power management, and simplifies some of the menus. New boards: 4610 and 4801. The template system was enhanced. USB manufacturer string is no longer "unknown". Changed hardware serial default baud rate to 115,200 from 9600. Moved USB clock control to USB module. Enhanced begin()/end() for USB and I2C to start/stop clocks. (This is a major bump beause the baud rate change may be a breaking change.)

  • v1.1.2 added 4611, 4612 support, and templating for generating boards.txt.

Notes and Acknowledgements

MCCI and MCCI Catena are registered trademarks of MCCI Corporation. ChaeHee Won, Sungjoon Park, and Terry Moore of MCCI maintain this BSP.

LoRa is a registered trademark of the LoRa Alliance. LoRaWAN is a trademark of the LoRa Alliance.

All other trademarks are the property of their respective owners.

Support Open-Source Software, Hardware, and Community IoT!

Everyone at MCCI invests time and resources providing this open-source code and open-source hardware. MCCI is also the principal corporate sponsor of The Things Network New York and Ithaca. Please support our work by purchasing products from MCCI! Visit our on-line store at store.mcci.com.

About

STM32 core support for Arduino

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 95.5%
  • HTML 2.2%
  • C++ 1.2%
  • Assembly 1.0%
  • Shell 0.1%
  • Processing 0.0%