2.1 KiB
Baremetal webserver on NUCLEO-F429ZI
This firmware uses MIP, an experimental TCP/IP stack of the Mongoose Network Library, which implements the following:
- A complete HTTP device dashboard with:
- User authentication
- Real-time device data graph
- Coninfiguration display and update
- MQTT communication with a remote MQTT server
- No dependencies: no HAL, no CMSIS, no RTOS
- Hand-written mcu.h header based on a datasheet
- Interrupt-driven Ethernet driver
- Blue LED blinky, based on SysTick interrupt
- User button handler, turns off/on green LED, based on EXTI, interrupt-driven
- HardFault handler that blinks red LED
- Debug log on UART3 (st-link)
Requirements
The Makefile defaults to using Docker for the compiler, so you don't actually need to install it if you are using a Linux/Mac workstation. If you are not, or you want to run your local ARM compiler, just append DOCKER=
to the make commands depicted below to call the compiler directly; it must be in your executable path.
In any case, the links above will send you to tutorials on how to install each of those tools in your workstation for Linux, Mac, and Windows.
Usage
Plugin your Nucleo board into USB, and attach an Ethernet cable. To build and flash:
$ make clean flash
To see debug log, use any serial monitor program like picocom
at 115200 bps and configure it to insert carriage returns after line feeds:
$ picocom /dev/ttyACM0 -i -b 115200 --imap=lfcrlf
There is also a detailed tutorial on this example but for the NUCLEO-F746ZG board
For more details and benchmark data on MIP, check the F746ZG example