Skip to content

Commit

Permalink
Merge pull request #200 from mcci-catena/issue198a
Browse files Browse the repository at this point in the history
fix #198: add support to Model 4916
  • Loading branch information
dhineshkumarmcci authored May 25, 2023
2 parents 063a8e9 + e8f0e92 commit 43f1032
Show file tree
Hide file tree
Showing 9 changed files with 1,026 additions and 1 deletion.
22 changes: 21 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ For general information, please check the stm32duino [README.md](https://github.
- [Sensors on Catena 4612, 4617, and 4618](#sensors-on-catena-4612-4617-and-4618)
- [Catena 4630 Features](#catena-4630-features)
- [Catena 480x Features](#catena-480x-features)
- [Model 4916 Features](#model-4916-features)
- [Model 4917 Features](#model-4917-features)
- [Troubleshooting](#troubleshooting)
- [Installing a Development Copy of this BSP](#installing-a-development-copy-of-this-bsp)
Expand Down Expand Up @@ -61,6 +62,7 @@ The Arduino IDE allows you to select the following items.
| MCCI Catena 4630 | Murata CMWX1ZZABZ module, STM32L082 | [4630](#catena-4630-features) | LiPo battery,ZMOD4410, PMS7003 |
| MCCI Catena 4801 | Murata CMWX1ZZABZ module, STM32L082 | [480x](#catena-480x-features) | Primary battery, Modbus |
| MCCI Catena 4802 | Murata CMWX1ZZABZ module, STM32L082 | [480x](#catena-480x-features) | Primary battery, Modbus, SHT31-DIS-F, I2C Expander |
| MCCI Model 4916 | Murata CMWX1ZZABZ module, STM32L082 | [4916](#model-4916-features) | Type-C battery, GPS, BME680, SHT31-DIS-F, IPS7100, Spec sensors, SCD30 |
| MCCI Model 4917 | Murata CMWX1ZZABZ module, STM32L082 | [4917](#model-4917-features) | Primary battery, JST-XH for OneWire sensor |

### Catena 461x Series
Expand Down Expand Up @@ -124,6 +126,24 @@ The 480x is a dedicated board for remote Modbus applications, using the Murata m
| Sensors | none | SHT31 |
| External interfaces | Modbus, TTL serial | Modbus, TTL serial, I2C Expander |

### Model 4916 Features

The 4916 is a dedicated board designed for monitoring air quality.

| Feature | 4916 |
|---------|------|
| TCXO Control | Controlled by code |
| Battery type | Primary (non-rechargeable) reference is Type-C battery |
| System voltage | 3.0V to 3.5V, depending on whether boost regulator is enabled. |
| Regulator control | EN output from CPU controls boost regulator. |
| High-side switch for power for external sensors | Yes |
| Screw terminals for external sensors | None |
| QWIIC for external sensors | Yes |
| Feather physical compatibility | No |
| USB | No |
| Sensors | BME680, SHT31, GPS, IPS7100, SCD30 |
| External interfaces | TTL Serial |

### Model 4917 Features

The 4917 is a dedicated board designed for temperature monitoring using onewire probe.
Expand Down Expand Up @@ -176,7 +196,7 @@ Remember to restart the IDE whenever you change `platform.txt`, `boards.txt` or

## Release History

- [HEAD](https://github.com/mcci-catena/Arduino_Core_STM32/). Added support for new board Model 4917.
- [HEAD](https://github.com/mcci-catena/Arduino_Core_STM32/). Added support for new board Model 4917 and Model 4916.

- [v3.0.5](https://github.com/mcci-catena/Arduino_Core_STM32/releases/tag/v3.0.5) Patch release. Don't use `<algorithm>` to implement `min()` and `max()` ([#184](https://github.com/mcci-catena/Arduino_Core_STM32/issues/184)). Prevent hangs if USB is enabled but D+/D- float to high/high ([#189](https://github.com/mcci-catena/Arduino_Core_STM32/issues/189), [#190](https://github.com/mcci-catena/Arduino_Core_STM32/issues/190)) -- thanks to Mohammed Mayyan ([@mmayyan](https://github.com/mhmayyan)) for help in finding this.

Expand Down
14 changes: 14 additions & 0 deletions boards.json
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,20 @@
]
},

{
"modelnumber": "4916",
"board": "mcci_model_{{modelnumber}}",
"name": "MCCI Model {{modelnumber}}",
"build_board": "MCCI_MODEL_{{modelnumber}}",
"build_variant": "MODEL_4916",
"bootloader_tool": "stlink_upload",
"extra_sections": [
{ "name": "xserial",
"using": "xserial_nousb_serial1"
}
]
},

{
"modelnumber": "4917",
"board": "mcci_model_{{modelnumber}}",
Expand Down
8 changes: 8 additions & 0 deletions boards.template
Original file line number Diff line number Diff line change
Expand Up @@ -310,3 +310,11 @@ $section xserial
{{board}}.menu.xserial.none.build.xSerial=-DARDUINO_BSP_CONFIG_SERIAL_MASK=0x0
{{board}}.menu.xserial.two.build.xSerial=-DARDUINO_BSP_CONFIG_SERIAL_MASK=0x6
%%-xserial_nousb

%%+xserial_nousb_serial1
{{board}}.menu.xserial.generic=Generic Serial
{{board}}.menu.xserial.none=No Serial
{{board}}.menu.xserial.generic.build.xSerial=-DARDUINO_BSP_CONFIG_SERIAL_MASK=0x2
{{board}}.menu.xserial.none.build.xSerial=-DARDUINO_BSP_CONFIG_SERIAL_MASK=0x0
{{board}}.menu.xserial.two.build.xSerial=-DARDUINO_BSP_CONFIG_SERIAL_MASK=0x6
%%-xserial_nousb_serial1
179 changes: 179 additions & 0 deletions boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1794,6 +1794,185 @@ mcci_catena_4802.menu.lorawan_subband.sb11.build.lorawan_subband_flags=-DARDUINO

#### end of configuration info for MCCI Catena 4802

#
# Configuration information for MCCI Model 4916
# See template in https://github.com/mcci-catena/Arduino_Core_STM32/boards.template
#
mcci_model_4916.name=MCCI Model 4916

mcci_model_4916.build.core=arduino
mcci_model_4916.build.board=MCCI_MODEL_4916
mcci_model_4916.build.product_line=STM32L082xx

mcci_model_4916.upload.maximum_size=196608
mcci_model_4916.upload.maximum_data_size=20480
mcci_model_4916.build.mcu=cortex-m0
mcci_model_4916.build.series=STM32L0xx
mcci_model_4916.build.variant=MODEL_4916
mcci_model_4916.build.variant_extra_flags=
mcci_model_4916.build.cmsis_lib_gcc=arm_cortexM0l_math
mcci_model_4916.build.ldscript=
mcci_model_4916.build.extra_flags=-DARDUINO_STM32 -DARDUINO_{build.series} -DARDUINO_{build.product_line} -D{build.product_line} {build.sysclk_flags} {build.xSerial} -D__CORTEX_SC=0 -D{build.board} {build.lorawan_flags} {build.lorawan_network_flags} {build.lorawan_subband_flags} {build.variant_extra_flags}
# mcci_model_4916.build.c.Werror=
# mcci_model_4916.build.cpp.Werror=
# mcci_model_4916.build.S.Werror=
mcci_model_4916.bootloader.tool=stlink_upload
mcci_model_4916.bootloader.file=McciBootloader_46xx

#
# menu.upload_method

mcci_model_4916.menu.upload_method.STLink_bl=STLink (include bootloader)
mcci_model_4916.menu.upload_method.STLink_bl.upload.protocol=STLink
mcci_model_4916.menu.upload_method.STLink_bl.upload.tool=stlink_upload_bootloader
mcci_model_4916.menu.upload_method.STLink_bl.upload.maximum_size=172032
mcci_model_4916.menu.upload_method.STLink_bl.upload.maximum_data_size=20480

mcci_model_4916.menu.upload_method.STLink=STLink
mcci_model_4916.menu.upload_method.STLink.upload.protocol=STLink
mcci_model_4916.menu.upload_method.STLink.upload.tool=stlink_upload
mcci_model_4916.menu.upload_method.STLink.upload.maximum_size=196608
mcci_model_4916.menu.upload_method.STLink.upload.maximum_data_size=20480

#mcci_model_4916.menu.upload_method.Serial=Serial
#mcci_model_4916.menu.upload_method.Serial.upload.protocol=Serial
#mcci_model_4916.menu.upload_method.Serial.upload.tool=serial_upload

#
# menu.xserial
mcci_model_4916.menu.xserial.generic=Generic Serial
mcci_model_4916.menu.xserial.none=No Serial
mcci_model_4916.menu.xserial.generic.build.xSerial=-DARDUINO_BSP_CONFIG_SERIAL_MASK=0x2
mcci_model_4916.menu.xserial.none.build.xSerial=-DARDUINO_BSP_CONFIG_SERIAL_MASK=0x0
mcci_model_4916.menu.xserial.two.build.xSerial=-DARDUINO_BSP_CONFIG_SERIAL_MASK=0x6

#
# menu.sysclk
mcci_model_4916.menu.sysclk.pll32m=32 MHz (most power)
mcci_model_4916.menu.sysclk.pll24m=24 MHz
mcci_model_4916.menu.sysclk.hsi16m=16 MHz
mcci_model_4916.menu.sysclk.msi4194k=4.194 MHz (no USB)
mcci_model_4916.menu.sysclk.msi2097k=2.097 MHz (no USB, least power)
mcci_model_4916.menu.sysclk.pll32m.build.sysclk_flags=-DCATENA_CFG_SYSCLK=32
mcci_model_4916.menu.sysclk.pll24m.build.sysclk_flags=-DCATENA_CFG_SYSCLK=24
mcci_model_4916.menu.sysclk.hsi16m.build.sysclk_flags=-DCATENA_CFG_SYSCLK=16
mcci_model_4916.menu.sysclk.msi4194k.build.sysclk_flags=-DCATENA_CFG_SYSCLK=4
mcci_model_4916.menu.sysclk.msi2097k.build.sysclk_flags=-DCATENA_CFG_SYSCLK=2

#
# menu.bootloader
mcci_model_4916.menu.boot.trusted=MCCI Trusted Boot
mcci_model_4916.menu.boot.basic=Basic (no bootloader)

# convert boot selections to settings
mcci_model_4916.menu.boot.basic.build.ldscript=../mcci-ldscript-basic.ld
mcci_model_4916.menu.boot.basic.build.baseaddr=0x08000000
mcci_model_4916.menu.boot.trusted.build.ldscript=../mcci-ldscript-trusted.ld
mcci_model_4916.menu.boot.trusted.build.baseaddr=0x08005000

#
# menu.opt
mcci_model_4916.menu.opt.osstd=Smallest (-Os default)
mcci_model_4916.menu.opt.osstd.build.flags.optimize=-Os
mcci_model_4916.menu.opt.osstd.build.flags.ldspecs=
# mcci_model_4916.menu.opt.oslto=Smallest (-Os) with LTO
# mcci_model_4916.menu.opt.oslto.build.flags.optimize=-Os -flto
# mcci_model_4916.menu.opt.oslto.build.flags.ldspecs=-flto
mcci_model_4916.menu.opt.o1std=Fast (-O1)
mcci_model_4916.menu.opt.o1std.build.flags.optimize=-O1
mcci_model_4916.menu.opt.o1std.build.flags.ldspecs=
# mcci_model_4916.menu.opt.o1lto=Fast (-O1) with LTO
# mcci_model_4916.menu.opt.o1lto.build.flags.optimize=-O1 -flto
# mcci_model_4916.menu.opt.o1lto.build.flags.ldspecs=-flto
mcci_model_4916.menu.opt.o2std=Faster (-O2)
mcci_model_4916.menu.opt.o2std.build.flags.optimize=-O2
mcci_model_4916.menu.opt.o2std.build.flags.ldspecs=
# mcci_model_4916.menu.opt.o2lto=Faster (-O2) with LTO
# mcci_model_4916.menu.opt.o2lto.build.flags.optimize=-O2 -flto
# mcci_model_4916.menu.opt.o2lto.build.flags.ldspecs=-flto
mcci_model_4916.menu.opt.o3std=Fastest (-O3)
mcci_model_4916.menu.opt.o3std.build.flags.optimize=-O3
mcci_model_4916.menu.opt.o3std.build.flags.ldspecs=
# mcci_model_4916.menu.opt.o3lto=Fastest (-O3) with LTO
# mcci_model_4916.menu.opt.o3lto.build.flags.optimize=-O3 -flto
# mcci_model_4916.menu.opt.o3lto.build.flags.ldspecs=-flto
mcci_model_4916.menu.opt.ogstd=Debug (-g)
mcci_model_4916.menu.opt.ogstd.build.flags.optimize=-Og -gdwarf-2
mcci_model_4916.menu.opt.ogstd.build.flags.ldspecs=

#
# menu.lorawan_region
mcci_model_4916.menu.lorawan_region.us915=North America 915 MHz
mcci_model_4916.menu.lorawan_region.eu868=Europe 868 MHz
mcci_model_4916.menu.lorawan_region.au915=Australia 915 MHz
mcci_model_4916.menu.lorawan_region.as923=Asia 923 MHz
mcci_model_4916.menu.lorawan_region.as923jp=Japan 923 MHz
mcci_model_4916.menu.lorawan_region.kr920=Korea 920 MHz
mcci_model_4916.menu.lorawan_region.in866=India 866 MHz
mcci_model_4916.menu.lorawan_region.projcfg=Use arduino-lmic/project_config/lmic_project_lmic_config_preconditions.h
mcci_model_4916.menu.lorawan_region.us915.build.lorawan_flags=-DCFG_us915=1 -DCFG_sx1276_radio=1 -DARDUINO_LMIC_PROJECT_CONFIG_H=lmic_config_preconditions.h
mcci_model_4916.menu.lorawan_region.eu868.build.lorawan_flags=-DCFG_eu868=1 -DCFG_sx1276_radio=1 -DARDUINO_LMIC_PROJECT_CONFIG_H=lmic_config_preconditions.h
mcci_model_4916.menu.lorawan_region.au915.build.lorawan_flags=-DCFG_au921=1 -DCFG_au915=1 -DCFG_sx1276_radio=1 -DARDUINO_LMIC_PROJECT_CONFIG_H=lmic_config_preconditions.h
mcci_model_4916.menu.lorawan_region.as923.build.lorawan_flags=-DCFG_as923=1 -DCFG_sx1276_radio=1 -DARDUINO_LMIC_PROJECT_CONFIG_H=lmic_config_preconditions.h
mcci_model_4916.menu.lorawan_region.as923jp.build.lorawan_flags=-DCFG_as923=1 -DLMIC_COUNTRY_CODE=LMIC_COUNTRY_CODE_JP -DCFG_sx1276_radio=1 -DARDUINO_LMIC_PROJECT_CONFIG_H=lmic_config_preconditions.h
mcci_model_4916.menu.lorawan_region.kr920.build.lorawan_flags=-DCFG_kr920=1 -DCFG_sx1276_radio=1 -DARDUINO_LMIC_PROJECT_CONFIG_H=lmic_config_preconditions.h
mcci_model_4916.menu.lorawan_region.in866.build.lorawan_flags=-DCFG_in866=1 -DCFG_sx1276_radio=1 -DARDUINO_LMIC_PROJECT_CONFIG_H=lmic_config_preconditions.h
mcci_model_4916.menu.lorawan_region.projcfg.build.lorawan_flags=

#
# menu.lorawan_network
mcci_model_4916.menu.lorawan_network.ttn=The Things Network
mcci_model_4916.menu.lorawan_network.ttn.build.lorawan_network_flags=-DARDUINO_LMIC_CFG_NETWORK_TTN=1
mcci_model_4916.menu.lorawan_network.actility=Actility ThingsPark
mcci_model_4916.menu.lorawan_network.actility.build.lorawan_network_flags=-DARDUINO_LMIC_CFG_NETWORK_ACTILITY=1
mcci_model_4916.menu.lorawan_network.helium=Helium
mcci_model_4916.menu.lorawan_network.helium.build.lorawan_network_flags=-DARDUINO_LMIC_CFG_NETWORK_HELIUM=1
mcci_model_4916.menu.lorawan_network.machineq=machineQ
mcci_model_4916.menu.lorawan_network.machineq.build.lorawan_network_flags=-DARDUINO_LMIC_CFG_NETWORK_MACHINEQ=1
mcci_model_4916.menu.lorawan_network.senet=Senet
mcci_model_4916.menu.lorawan_network.senet.build.lorawan_network_flags=-DARDUINO_LMIC_CFG_NETWORK_SENET=1
mcci_model_4916.menu.lorawan_network.senra=Senra
mcci_model_4916.menu.lorawan_network.senra.build.lorawan_network_flags=-DARDUINO_LMIC_CFG_NETWORK_SENRA=1
mcci_model_4916.menu.lorawan_network.swisscom=Swisscom
mcci_model_4916.menu.lorawan_network.swisscom.build.lorawan_network_flags=-DARDUINO_LMIC_CFG_NETWORK_SWISSCOM=1
mcci_model_4916.menu.lorawan_network.chirpstack=ChirpStack
mcci_model_4916.menu.lorawan_network.chirpstack.build.lorawan_network_flags=-DARDUINO_LMIC_CFG_NETWORK_CHIRPSTACK=1
mcci_model_4916.menu.lorawan_network.generic=Generic
mcci_model_4916.menu.lorawan_network.generic.build.lorawan_network_flags=-DARDUINO_LMIC_CFG_NETWORK_GENERIC=1
mcci_model_4916.menu.lorawan_network.projcfg=Use arduino-lmic/project_config/lmic_project_lmic_config_preconditions.h
mcci_model_4916.menu.lorawan_network.projcfg.build.lorawan_network_flags=

#
# menul.lorawan_subband
mcci_model_4916.menu.lorawan_subband.default=Default, works everywhere
mcci_model_4916.menu.lorawan_subband.default.build.lorawan_subband_flags=-DARDUINO_LMIC_CFG_SUBBAND=-1
mcci_model_4916.menu.lorawan_subband.sb0=sb0, ch 0~7 (US/AU/CN470)
mcci_model_4916.menu.lorawan_subband.sb0.build.lorawan_subband_flags=-DARDUINO_LMIC_CFG_SUBBAND=0
mcci_model_4916.menu.lorawan_subband.sb1=sb1, ch 8~15 (US/AU/CN470)
mcci_model_4916.menu.lorawan_subband.sb1.build.lorawan_subband_flags=-DARDUINO_LMIC_CFG_SUBBAND=1
mcci_model_4916.menu.lorawan_subband.sb2=sb2, ch 16~23 (US/AU/CN470)
mcci_model_4916.menu.lorawan_subband.sb2.build.lorawan_subband_flags=-DARDUINO_LMIC_CFG_SUBBAND=2
mcci_model_4916.menu.lorawan_subband.sb3=sb3, ch 24~31 (US/AU/CN470)
mcci_model_4916.menu.lorawan_subband.sb3.build.lorawan_subband_flags=-DARDUINO_LMIC_CFG_SUBBAND=3
mcci_model_4916.menu.lorawan_subband.sb4=sb4, ch 32~39 (US/AU/CN470)
mcci_model_4916.menu.lorawan_subband.sb4.build.lorawan_subband_flags=-DARDUINO_LMIC_CFG_SUBBAND=4
mcci_model_4916.menu.lorawan_subband.sb5=sb5, ch 40~47 (US/AU/CN470)
mcci_model_4916.menu.lorawan_subband.sb5.build.lorawan_subband_flags=-DARDUINO_LMIC_CFG_SUBBAND=5
mcci_model_4916.menu.lorawan_subband.sb6=sb6, ch 48~55 (US/AU/CN470)
mcci_model_4916.menu.lorawan_subband.sb6.build.lorawan_subband_flags=-DARDUINO_LMIC_CFG_SUBBAND=6
mcci_model_4916.menu.lorawan_subband.sb7=sb7, ch 56~63 (US/AU/CN470)
mcci_model_4916.menu.lorawan_subband.sb7.build.lorawan_subband_flags=-DARDUINO_LMIC_CFG_SUBBAND=7
mcci_model_4916.menu.lorawan_subband.sb8=sb8, ch 64~71 (CN470)
mcci_model_4916.menu.lorawan_subband.sb8.build.lorawan_subband_flags=-DARDUINO_LMIC_CFG_SUBBAND=8
mcci_model_4916.menu.lorawan_subband.sb9=sb9, ch 72~79 (CN470)
mcci_model_4916.menu.lorawan_subband.sb9.build.lorawan_subband_flags=-DARDUINO_LMIC_CFG_SUBBAND=9
mcci_model_4916.menu.lorawan_subband.sb10=sb10, ch 80~87 (CN470)
mcci_model_4916.menu.lorawan_subband.sb10.build.lorawan_subband_flags=-DARDUINO_LMIC_CFG_SUBBAND=10
mcci_model_4916.menu.lorawan_subband.sb11=sb11, ch 88~95 (CN470)
mcci_model_4916.menu.lorawan_subband.sb11.build.lorawan_subband_flags=-DARDUINO_LMIC_CFG_SUBBAND=11

#### end of configuration info for MCCI Model 4916

#
# Configuration information for MCCI Model 4917
# See template in https://github.com/mcci-catena/Arduino_Core_STM32/boards.template
Expand Down
Loading

0 comments on commit 43f1032

Please sign in to comment.