Supported platforms

Built-in TCP/IP stack

Mongoose has its own built-in TCP/IP stack with drivers, so it needs no additional software to implement networking. The built-in stack runs on bare metal and under any RTOS. Platforms supported by the Mongoose built-in TCP/IP stack:

MCU Connectivity Notes
STM32 Built-in Ethernet Ethernet-capable STM32F, STM32H5, STM32H7, STM32N6, STM32C5 variants
NXP i.MX RT Built-in Ethernet RT102x, RT104x, RT105x, RT106x, RT117x, RT118x (NETC)
NXP MCX Built-in Ethernet MCXN94x, MCXE247
NXP RW612 Eth, WiFi, 802.15.4 Separate Ethernet and radio drivers
Microchip ATSAME54 Built-in Ethernet GMAC driver
Renesas RA Built-in Ethernet RA6M, RA8M
Infineon XMC Built-in Ethernet XMC4, XMC7
Texas Instruments Built-in Ethernet TM4C, TMS570
RP2040, RP2350, STM32, others CYW43xx Wi-Fi chips SPI or SDIO; Pico W, Pico 2 W, Pico RM2, Arduino Portenta H7
STM32, others ST67W6 Wi-Fi modules SPI; for example, STM32U5 with the ST67W611M1 module
MCUs with an NXP Wi-Fi SDK port NXP Wi-Fi Requires the SDK's Wi-Fi port implementing the driver's network hooks
NXP MCXW71 Built-in 802.15.4 radio IPv4 over IEEE 802.15.4
NXP RW612 Built-in 802.15.4 radio IPv4 over IEEE 802.15.4; requires NXP radio firmware
Any MCU with SPI W5500 or W5100 Ethernet chips External Wiznet MAC+PHY
MCUs connected to a cellular modem Cellular AT commands and PPP; for example, SIM800
MCUs with CMSIS Ethernet drivers Ethernet via CMSIS-Driver Requires CMSIS Ethernet MAC and PHY drivers

Third-party TCP/IP stacks

Mongoose can also run on top of any TCP/IP stack that supports the BSD sockets API. Platforms supported via 3rd party TCP/IP stacks:

TCP/IP stack Notes
lwIP All devices running lwIP, for example ESP32, ESP32S3, ESP32C3, ESP32C6, etc
Zephyr All devices supported by Zephyr
Other Any other TCP/IP stack that supports BSD socket API, for example Amazon FreeRTOS-TCP
Linux, Mac, Windows Workstations, server, single board computers, embedded Linux devices running on MPUs or FPGAs

Build environments

One of the most important settings is the platform selection, which determines the target environment Mongoose runs on.

The build environment is driven by the MG_ARCH setting in the mongoose_config.h configuration file. For example, in order to build in STM32 Cube framework, set this in your mongoose_config.h:

#define MG_ARCH MG_ARCH_CUBE
// ... other build options ...

Below is the list of supported build environments

MG_ARCH_* Platform / notes
MG_ARCH_CUSTOM Custom user-defined platform (via mongoose_config.h)
MG_ARCH_UNIX Unix-like systems (Linux, BSD, macOS, POSIX)
MG_ARCH_WIN32 Microsoft Windows
MG_ARCH_ESP32 Espressif ESP32
MG_ARCH_THREADX ThreadX RTOS (Azure RTOS)
MG_ARCH_ZEPHYR Zephyr RTOS
MG_ARCH_ARMGCC ARM using the GCC toolchain
MG_ARCH_ARMCC Arm Compiler / Keil MDK
MG_ARCH_CMSIS_RTOS1 CMSIS-RTOS v1 (RTX, Keil)
MG_ARCH_CMSIS_RTOS2 CMSIS-RTOS v2 (RTX5, CMSIS wrapper)
MG_ARCH_CUBE STM32Cube environment (HAL-based projects)
MG_ARCH_TIRTOS Texas Instruments TI-RTOS
MG_ARCH_ARMCGT TI ARM Code Generation Tools
MG_ARCH_RTTHREAD RT-Thread RTOS
MG_ARCH_PICOSDK Raspberry Pi Pico SDK (RP2040, RP2350)

Note: If you're using FreeRTOS, set MG_ENABLE_FREERTOS. Typically it is used with MG_ARCH_ARMGCC, MG_ARCH_CUBE, MG_ARCH_PICOSDK or MG_ARCH_ARMCC

#define MG_ARCH MG_ARCH_CUBE
#define MG_ENABLE_FREERTOS 1
// ... other build options ...