AZ3166 MXChip IoT DevKit
Overview
The AZ3166 IoT DevKit from MXChip is a development board designed for IoT (Internet of Things) projects. It’s an all-in-one board powered by an Arm Cortex-M4 processor. On-board peripherals include an OLED screen, headphone output, stereo microphone and abundant sensors like humidity & temperature, pressure, motion (accelerometer & gyroscope) and magnetometer.
More information about the board can be found at the MXChip AZ3166 website [1].
Hardware
The MXChip AZ3166 IoT DevKit has the following physical features:
STM32F412 Arm Cortex M4F processor at 96 MHz
Working voltage: 3.3v or USB power supply
Supports 3.3V DC-DC, maximum current 1.5A
OLED display, 128x64 pixels
2 programmable buttons
1 RGB LED
3 LED for status indicators (“Wi-Fi”, “Azure”, “User”)
Security encryption chip
Infrared emitter for IR remote control or interaction
Motion sensor (LSM6DSL)
Magnetometer sensor (LIS3MDL)
Atmospheric pressure sensor (LPS22HB)
Temperature and humidity sensor (HTS221)
EMW3166 Wi-Fi module with 256K SRAM,1M+2M Byte SPI Flash
Supported Features
The az3166_iotdevkit
board supports the hardware features listed below.
- on-chip / on-board
- Feature integrated in the SoC / present on the board.
- 2 / 2
-
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files. -
vnd,foo
-
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
az3166_iotdevkit/stm32f412rx
target
Type |
Location |
Description |
Compatible |
---|---|---|---|
CPU |
on-chip |
ARM Cortex-M4F CPU1 |
|
ADC |
on-chip |
STM32F4 ADC1 |
|
CAN |
on-chip |
STM32 CAN controller2 |
|
Clock control |
on-chip |
STM32 RCC (Reset and Clock controller)1 |
|
on-chip |
STM32 HSE Clock1 |
||
on-chip |
|||
on-chip |
STM32F4 Main PLL1 |
||
on-chip |
STM32F411 PLL I2S1 |
||
on-chip |
STM32 Clock multiplexer1 |
||
on-chip |
STM32 Microcontroller Clock Output (MCO)2 |
||
Counter |
on-chip |
STM32 counters12 |
|
Display |
on-board |
SSD1306 128x64 dot-matrix display controller on I2C bus1 |
|
DMA |
on-chip |
STM32 DMA controller (V1)2 |
|
Flash controller |
on-chip |
STM32 Family flash controller1 |
|
GPIO & Headers |
on-chip |
STM32 GPIO Controller8 |
|
I2C |
on-chip |
||
I2S |
on-chip |
STM32 I2S controller4 |
|
Input |
on-board |
Group of GPIO-bound input keys1 |
|
Interrupt controller |
on-chip |
ARMv7-M NVIC (Nested Vectored Interrupt Controller)1 |
|
on-chip |
STM32 External Interrupt Controller1 |
||
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
on-board |
Group of PWM-controlled LEDs1 |
||
Memory controller |
on-chip |
STM32 Battery Backed RAM1 |
|
MMC |
on-chip |
STM32 SDMMC Disk Access1 |
|
MTD |
on-chip |
STM32F4 flash memory1 |
|
PHY |
on-chip |
This binding is to be used by all the usb transceivers which are built-in with USB IP1 |
|
Pin control |
on-chip |
STM32 Pin controller1 |
|
PWM |
on-chip |
||
QSPI |
on-chip |
STM32 QSPI Controller1 |
|
Reset controller |
on-chip |
STM32 Reset and Clock Control (RCC) Controller1 |
|
RNG |
on-chip |
STM32 Random Number Generator1 |
|
RTC |
on-chip |
STM32 RTC1 |
|
Sensors |
on-board |
STMicroelectronics LSM6DSL 6-axis accelerometer and gyrometer accessed through I2C bus1 |
|
on-board |
STMicroelectronics HTS221 humidity and temperature sensor on I2C bus1 |
||
on-board |
STMicroelectronics LIS2MDL magnetometer accessed through I2C bus1 |
||
on-board |
STMicroelectronics LPS22HB pressure sensor1 |
||
on-chip |
STM32 quadrature decoder6 |
||
on-chip |
STM32 family TEMP node for production calibrated sensors with two calibration temperatures1 |
||
on-chip |
STM32 VREF+1 |
||
on-chip |
STM32 VBAT1 |
||
Serial controller |
on-chip |
||
SMbus |
on-chip |
STM32 SMBus controller3 |
|
SPI |
on-chip |
||
SRAM |
on-chip |
Generic on-chip SRAM description1 |
|
Timer |
on-chip |
ARMv7-M System Tick1 |
|
on-chip |
|||
USB |
on-chip |
STM32 OTGFS controller1 |
|
Watchdog |
on-chip |
STM32 watchdog1 |
|
on-chip |
STM32 system window watchdog1 |
Note
The EMW3166 Wi-Fi module is currently not supported.
Programming and Debugging
Flashing
Build and flash applications as usual (see Building an Application and Run an Application for more details).
Here is an example for the Hello World application.
First, run your favorite terminal program to listen for output.
$ minicom -D <tty_device> -b 115200
Replace <tty_device>
with the port where the micro:bit board
can be found. For example, under Linux, /dev/ttyACM0
.
Then build and flash the application in the usual way.
# From the root of the zephyr repository
west build -b az3166_iotdevkit samples/hello_world
west flash