# Mongoose Wizard Project This project is generated by Mongoose Wizard, https://mongoose.ws/wizard/ ## Build and flash ### If your target IDE is GCC+Make **Option 1. Build and flash online** a) Click on the "build" button, wait for the compiler to finish. b) Click on the "flash" button; or, click on the "bin" button to download to your workstation **Option 2. Download generated project to your workstation** a) Click on the "sync" or ".zip" button to download the project to your workstation b) Setup your build environment: https://mongoose.ws/documentation/tutorials/tools/ c) Open a terminal/command prompt, go to the destination directory, and type `make` ### Other target IDEs **Step 1. Download generated project to your workstation** Click on the "sync" or ".zip" button to download the project to your workstation **Step 2. Build and run the project** If your target IDE is CubeIDE, then start Cube IDE (use Cube 1.16.0 or later), then: a) Choose File / Import b) Choose "Existing Projects into Workspace", click Next, c) Click on "Directory", choose dir with generated files, click Finish If your target IDE is MCUXpresso, follow instructions for Cube IDE above If your target IDE is Arduino, open `wizard.ino` in the Arduino IDE If your target IDE is other - follow your IDE's guide ## Copying functionality to an existing firmware In order to move this functionality to some existing firmware code, copy only the following ("purple") files: - mongoose.{c,h} - This is Mongoose Library, a full TCP/IP + TLS stack - mongoose_config.h - (only if present). Mongoose settings file - mongoose_fs.c - Embedded filesystem. Contains Web UI files and TLS certs - mongoose_impl.c - Generated network functionality - mongoose_glue.{c,h} - A "glue", or "binding" functions for your code Note, the only file you should edit to integrate with your code, is `mongoose_glue.c`. That file "glues" your firmware with the networking functionality generated by the Mongoose Wizard. It contains functions that return device data. Generated functions use "fake" mock data; you need to edit those functions and return "real" device data. Once you copy these files, add the following snippet somewhere in your code: ```c #include "mongoose_glue.h" ... run_mongoose(); // This function blocks forever. Call it at the end of main(), // or in a separate RTOS task. Give that task 8k stack space. ``` For Ethernet hardware details, check [this tutorial](https://mongoose.ws/documentation/tutorials/hardware/) ## OTA firmware update This feature uses binary images - [Tutorial](https://mongoose.ws/documentation/tutorials/firmware-update/) ## Documentation and Tutorials - [Tutorials](https://mongoose.ws/documentation/#tutorials) - [Mongoose User Guide](https://mongoose.ws/documentation/)