esp32/apps/memfault_demo_app

# esp32 Demo Application

This Demo App is based on the console example from ESP-IDF, which can be found
here relative to the ESP-IDF SDK root folder:

- `examples/system/console/advanced/`

## Configuring for MQTT

This application includes an option to send Memfault data over MQTT. This option requires a few extra pieces to set up.
You can either follow the steps outlined here or use your own MQTT setup.

### Broker Setup

1. Install a local installation of Cedalo by following the [installation guide](https://docs.cedalo.com/management-center/installation/)
2. Login to Cedalo at <http://localhost:8088>
3. Create a new client login for the device
   - Ensure device client has the "client" role to allow publishing data
4. Create a new client login for the Python service
   - Ensure Python service client has "client" role to allow subscribing to data

### Service Setup

1. Modify the script found in [Docs->Best Practices->MQTT](https://docs.memfault.com/docs/best-practices/mqtt-with-memfault#service-examples)
   with Memfault with the the following:
   1. The service client login information previously created
   2. Connection info for your local broker
   3. Map of Memfault projects to project keys
2. Start the service by running `python mqtt.py`

### Device Setup

1. Make the following modifications to `main/app_memfault_transport_mqtt.c`:
   1. Update `MEMFAULT_PROJECT` macro with your project's name
   2. Update `s_mqtt_config` with your setup's IP address, and MQTT client username and password
2. Clean your existing build with `idf.py fullclean && rm sdkconfig`
3. Set your target: `idf.py set-target <esp32_platform_name>`
4. Build your image: `idf.py -D SDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.mqtt" build`
5. Flash to your device using `idf.py flash`

To create a project from this example, run:

idf.py create-project-from-example "memfault/memfault-firmware-sdk=1.12.0:esp32/apps/memfault_demo_app"

or download archive (~215 bytes)