Skip to content

Commit 0df37ae

Browse files
authored
Adding new target MXCHIP_AZ3166 (#3225)
***NO_CI***
1 parent e29fc7c commit 0df37ae

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+16472
-1
lines changed

CMake/binutils.ChibiOS.cmake

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,17 @@ endmacro()
359359
# optional CLR_EXTRA_LINK_FLAGS extra nanoCLR link flags to pass to nf_set_link_options()
360360
macro(nf_setup_target_build)
361361

362+
if(${TARGET_BOARD} STREQUAL "MXCHIP_AZ3166")
363+
364+
# # add WICED WWM library
365+
# set(CLR_EXTRA_LIBRARIES
366+
# ${CMAKE_SOURCE_DIR}/targets/ChibiOS/MXCHIP_AZ3166/libwiced_sdk_bin.a
367+
# )
368+
369+
# # add these to the ARGN list
370+
# list(APPEND ARGN CLR_EXTRA_LIBRARIES ${CLR_EXTRA_LIBRARIES})
371+
endif()
372+
362373
# OK to pass ARGN, to have it perform it's parsings and validation
363374
nf_setup_target_build_common(${ARGN})
364375

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ We also have a [Community Targets](https://github.com/nanoframework/nf-Community
100100

101101
| Target | Version |
102102
|:---|---|
103+
| MXCHIP_AZ3166 | [![Latest Version @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/net-nanoframework/nanoframework-images/raw/MXCHIP_AZ3166/latest/x/?render=true)](https://cloudsmith.io/~net-nanoframework/repos/nanoframework-images/packages/detail/raw/MXCHIP_AZ3166/latest/) |
103104
| ST_STM32F429I_DISCOVERY (B01) | [![Latest Version @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/net-nanoframework/nanoframework-images/raw/ST_STM32F429I_DISCOVERY/latest/x/?render=true)](https://cloudsmith.io/~net-nanoframework/repos/nanoframework-images/packages/detail/raw/ST_STM32F429I_DISCOVERY/latest/) |
104105
| ST_NUCLEO64_F091RC | [![Latest Version @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/net-nanoframework/nanoframework-images/raw/ST_NUCLEO64_F091RC/latest/x/?render=true)](https://cloudsmith.io/~net-nanoframework/repos/nanoframework-images/packages/detail/raw/ST_NUCLEO64_F091RC/latest/) |
105106
| ST_STM32F769I_DISCOVERY | [![Latest Version @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/net-nanoframework/nanoframework-images/raw/ST_STM32F769I_DISCOVERY/latest/x/?render=true)](https://cloudsmith.io/~net-nanoframework/repos/nanoframework-images/packages/detail/raw/ST_STM32F769I_DISCOVERY/latest/) |
@@ -160,6 +161,7 @@ The above .NET nanoFramework interpreter builds include support for the class li
160161
| M5Core2 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: Wi-Fi | | :heavy_check_mark: | |
161162
| ESP32_GenericDisplay_REV0 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: Wi-Fi | | :heavy_check_mark: | |
162163
| ESP32_PSRAM_BLE_GenericGraphic_REV3 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: Wi-Fi | | :heavy_check_mark: | |
164+
| MXCHIP_AZ3166 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | | :heavy_check_mark: | | | | | | | |
163165
| ST_STM32F429I_DISCOVERY (B01) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | | :heavy_check_mark: | |
164166
| ST_NUCLEO64_F091RC | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | | | |
165167
| ST_STM32F769I_DISCOVERY | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: |

README.zh-cn.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666

6767
| 目标 | 版本 |
6868
|:-|---|
69+
| MXCHIP_AZ3166 | [![Latest Version @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/net-nanoframework/nanoframework-images/raw/MXCHIP_AZ3166/latest/x/?render=true)](https://cloudsmith.io/~net-nanoframework/repos/nanoframework-images/packages/detail/raw/MXCHIP_AZ3166/latest/) |
6970
| ST_STM32F429I_DISCOVERY (B01) | [![Latest Version @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/net-nanoframework/nanoframework-images/raw/ST_STM32F429I_DISCOVERY/latest/x/?render=true)](https://cloudsmith.io/~net-nanoframework/repos/nanoframework-images/packages/detail/raw/ST_STM32F429I_DISCOVERY/latest/) |
7071
| ST_NUCLEO64_F091RC | [![Latest Version @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/net-nanoframework/nanoframework-images/raw/ST_NUCLEO64_F091RC/latest/x/?render=true)](https://cloudsmith.io/~net-nanoframework/repos/nanoframework-images/packages/detail/raw/ST_NUCLEO64_F091RC/latest/) |
7172
| ST_STM32F769I_DISCOVERY | [![Latest Version @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/net-nanoframework/nanoframework-images/raw/ST_STM32F769I_DISCOVERY/latest/x/?render=true)](https://cloudsmith.io/~net-nanoframework/repos/nanoframework-images/packages/detail/raw/ST_STM32F769I_DISCOVERY/latest/) |
@@ -121,6 +122,7 @@
121122
| M5Core2 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: Wi-Fi | | :heavy_check_mark: | |
122123
| ESP32_GenericDisplay_REV0 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: Wi-Fi | | :heavy_check_mark: | |
123124
| ESP32_PSRAM_BLE_GenericGraphic_REV3 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: Wi-Fi | | :heavy_check_mark: | |
125+
| MXCHIP_AZ3166 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | | :heavy_check_mark: | | | | | | | |
124126
| ST_STM32F429I_DISCOVERY (B01) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | | :heavy_check_mark: | |
125127
| ST_NUCLEO64_F091RC | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | | | |
126128
| ST_STM32F769I_DISCOVERY | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: |

azure-pipelines-nightly.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,8 @@ jobs:
187187
($files.where{$_.Contains('targets/ChibiOS/_littlefs')}).Count -gt 0 -Or
188188
($files.where{$_.Contains('targets/ChibiOS/ORGPAL_PALTHREE')}).Count -gt 0 -Or
189189
($files.where{$_.Contains('targets/ChibiOS/ORGPAL_PALX')}).Count -gt 0 -Or
190-
($files.where{$_.Contains('targets/ChibiOS/ST_NUCLEO64_F091RC')}).Count -gt 0
190+
($files.where{$_.Contains('targets/ChibiOS/ST_NUCLEO64_F091RC')}).Count -gt 0 -Or
191+
($files.where{$_.Contains('targets/ChibiOS/MXCHIP_AZ3166')}).Count -gt 0
191192
)
192193
{
193194
# files at ChibiOS global folders or targets being built with this pipeline
@@ -291,6 +292,14 @@ jobs:
291292
NeedsSRECORD: true
292293
CMakePreset: ST_NUCLEO64_F091RC
293294

295+
MXCHIP_AZ3166:
296+
TargetBoard: MXCHIP_AZ3166
297+
TargetSeries: "stm32f4xx"
298+
BuildOptions:
299+
NeedsDFU: false
300+
NeedsSRECORD: true
301+
CMakePreset: MXCHIP_AZ3166
302+
294303
variables:
295304
DOTNET_NOLOGO: true
296305
# creates a counter and assigns it to the revision variable

targets/ChibiOS/CMakePresets.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"version": 4,
33
"include": [
4+
"MXCHIP_AZ3166/CMakePresets.json",
45
"ORGPAL_PALTHREE/CMakePresets.json",
56
"ORGPAL_PALX/CMakePresets.json",
67
"ST_NUCLEO64_F091RC/CMakePresets.json",
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#
2+
# Copyright (c) .NET Foundation and Contributors
3+
# See LICENSE file in the project root for full license information.
4+
#
5+
6+
include(binutils.common)
7+
include(binutils.ChibiOS)
8+
9+
nf_setup_target_build(
10+
HAS_NANOBOOTER
11+
12+
BOOTER_LINKER_FILE
13+
STM32F412xG_booter
14+
15+
CLR_LINKER_FILE
16+
STM32F412xG_CLR
17+
18+
CLR_EXTRA_COMPILE_DEFINITIONS
19+
-DRUNTIME_MEMORY_PROFILE__extrasmall=1
20+
21+
BOOTER_EXTRA_LINKMAP_PROPERTIES
22+
",--library-path=${CMAKE_SOURCE_DIR}/targets/ChibiOS/_common,--defsym=__main_stack_size__=0x400,--defsym=__process_stack_size__=0x400,--defsym=__crt_heap_size__=0x1000"
23+
24+
CLR_EXTRA_LINKMAP_PROPERTIES
25+
",--library-path=${CMAKE_SOURCE_DIR}/targets/ChibiOS/_common,--defsym=__main_stack_size__=0x400,--defsym=__process_stack_size__=0x800,--defsym=__crt_heap_size__=0x2800"
26+
)
27+
28+
# generate bin file for deployment
29+
if(SRECORD_TOOL_AVAILABLE)
30+
31+
############################################################################################################
32+
## when changing the linker file make sure to update the addresses below with the offset of the CLR image ##
33+
## DO NOT use the leading 0x notation, just the address in plain hexadecimal formating ##
34+
############################################################################################################
35+
36+
if(CMAKE_BUILD_TYPE MATCHES Debug OR CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
37+
nf_generate_bin_package(
38+
${CMAKE_SOURCE_DIR}/build/${NANOBOOTER_PROJECT_NAME}.bin
39+
${CMAKE_SOURCE_DIR}/build/${NANOCLR_PROJECT_NAME}.bin
40+
8000
41+
${CMAKE_SOURCE_DIR}/build/nanobooter-nanoclr.bin)
42+
else()
43+
nf_generate_bin_package(
44+
${CMAKE_SOURCE_DIR}/build/${NANOBOOTER_PROJECT_NAME}.bin
45+
${CMAKE_SOURCE_DIR}/build/${NANOCLR_PROJECT_NAME}.bin
46+
8000
47+
${CMAKE_SOURCE_DIR}/build/nanobooter-nanoclr.bin)
48+
endif()
49+
50+
endif()
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
{
2+
"version": 4,
3+
"include": [
4+
"../../../CMake/arm-gcc.json",
5+
"../../../config/user-tools-repos.json",
6+
"../../../config/user-prefs.json"
7+
],
8+
"configurePresets": [
9+
{
10+
"name": "MXCHIP_AZ3166",
11+
"inherits": [
12+
"arm-gcc-cortex-preset",
13+
"user-tools-repos",
14+
"user-prefs"
15+
],
16+
"hidden": false,
17+
"cacheVariables": {
18+
"TARGET_BOARD": "MXCHIP_AZ3166",
19+
"TARGET_SERIES": "STM32F4xx",
20+
"RTOS": "ChibiOS",
21+
"SUPPORT_ANY_BASE_CONVERSION": "ON",
22+
"SWO_OUTPUT": "OFF",
23+
"NF_BUILD_RTM": "OFF",
24+
"NF_FEATURE_DEBUGGER": "ON",
25+
"NF_FEATURE_RTC": "ON",
26+
"NF_FEATURE_USE_FILESYSTEM": "OFF",
27+
"NF_NETWORKING_SNTP": "OFF",
28+
"API_Hardware.Stm32": "ON",
29+
"API_System.Math": "ON",
30+
"API_System.Net": "OFF",
31+
"API_System.Device.Adc": "OFF",
32+
"API_System.Device.Gpio": "ON",
33+
"API_System.Device.I2c": "ON",
34+
"API_System.Device.Pwm": "ON",
35+
"API_System.IO.Ports": "ON",
36+
"API_System.Device.Spi": "ON",
37+
"API_nanoFramework.System.Collections": "ON",
38+
"API_nanoFramework.System.Text": "ON"
39+
}
40+
}
41+
],
42+
"buildPresets": [
43+
{
44+
"inherits": "base-user",
45+
"name": "MXCHIP_AZ3166",
46+
"displayName": "MXCHIP_AZ3166",
47+
"configurePreset": "MXCHIP_AZ3166"
48+
}
49+
]
50+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# MXChip IoT DevKit AZ3166
2+
3+
The MXChip IoT DevKit AZ3166 (AZ3166) is a compact development kit built around the EMW3166 Wi‑Fi module. It was designed to simplify cloud‑connected IoT development and includes a range of peripherals (OLED, audio, sensors and debug interface). The kit has been discontinued (EOL) in retail channels, but documentation and datasheets remain available.
4+
5+
## References
6+
7+
- [EMW3166 datasheet (MXCHIP)](https://www.mouser.com/datasheet/2/744/DS0047EN_EMW3166-1223059.pdf)
8+
- [Azure IoT DevKit docs](https://microsoft.github.io/azure-iot-developer-kit/)
9+
- [Seeed Studio AZ3166 product page](https://www.seeedstudio.com/AZ3166-IOT-Developer-Kit-p-2922.html)
10+
11+
## Board specs
12+
13+
| Item | Details |
14+
|---|---|
15+
| Module | EMW3166 Wi‑Fi module (see datasheet) |
16+
| MCU | Cortex‑M4, STM32F412RG @ 100MHz Cortex-M4F core microcontroller with 1MB Flash memory, 256KB SRAM |
17+
| Flash | 2 MB on‑board SPI flash |
18+
| Wireless | 802.11 b/g/n (on‑module BCM43362 based Wi-Fi SoC ) |
19+
| Display | 128×64 OLED |
20+
| Audio | On‑board codec, microphone and headphone socket |
21+
| Debug | DAPLink / SWD (via micro USB) |
22+
| USB | Micro USB (power, debug, DFU) |
23+
| Power | 3.3 V DC‑DC (max ~1.5 A) |
24+
| I/O | User buttons, RGB LED, status LEDs, multiple GPIOs and sensors |
25+
26+
## Key features
27+
28+
- EMW3166 Wi‑Fi module with integrated MCU and RF
29+
- On‑board 128×64 OLED display
30+
- Audio codec with mic/headphone support
31+
- DAPLink debug interface accessible via micro USB
32+
- Multiple sensors and expansion headers for prototyping
33+
34+
## Flashing and debugging
35+
36+
You can flash and debug the board via the on‑board DAPLink interface exposed on the micro USB connector. Common tools and workflows:
37+
38+
- Use STM32CubeProgrammer (or DAPLink/SEGGER tools) over the DAPLink interface to program and debug the MCU.
39+
- Use the project's existing build/flashing tasks (see top-level `tasks` or the `nanoff` tool) to flash `nanoCLR` images.

0 commit comments

Comments
 (0)