I want to update my ESP32 (M5Stack Dial) host firmware, but I do not have access to any of the pins. How do I use the manual update (Updating Host Firmware - IoT Connectivity at Blues) without any pins? I have it all working except it fails because the NoteCarrier is not wired to my ESP32. I don’t understand why the direct wiring is even needed using this method. I am pulling the firmware update into the OTA partition and then it reboots. Wiring is not required to do this because I do this from my own Azure Storage account before I used BlueNote Cards.
Hi @chuckgiddens, welcome to the Blues forums!
How are you currently communicating with your Notecard from the ESP32? Can you please share how you have the M5Stack Dial and the Notecard connected?
To use the Notecard’s ODFU functionality, you’ll need to be able to access the ESP32’s IO0, EN, RXD0 & TXD0 GPIO pins. Currently this is the only way to perform ODFU, by using the Notecard’s AUX pins. This is different from using the ESP32’s own OTA mechanism (what you may be using with Azure Storage) as the Notecard’s ODFU treats the ESP32 as a standalone host, e.g. like you are flashing it from a personal computer and therefore need access to the bootloader/bootstrapping pins.
From looking at the M5Stack Dial’s schematic, these are enclosed within the ESP32 Stamp element of the Dial’s case. I’m not sure this will be possible without an intermediate board to expose the previously mentioned GPIO pins.
Hopefully we can help you find a solution for this,
Alex
Aducknall,
Regards
Rob
As stated above, I am not using ODFU. I am using the method in the link I provided. I want to grab the binary from the NoteCard in MY CODE, and simply switch the boot partitions myself. I dont this using a simple HTTP Client now and was wondering why PINS are required since I am handling the rebooting myself…no other input from the NoteCard is needed except to give me the binary file.
These ports are already in use for my microphone (which I could work around) but there are 3 pins (maybe even 4) required…this only has two pins. I still do not have access to PIN0 for the reboot as that is hidden inside the M5 Dial enclosure.
This is what I am trying to do (per the link above) and nowhere in the steps does it mention sending HIGHs or LOWs to pins. This should be able to be done with no pins.
Look at step 9 : HOST OBTAINS BINARY AND ISSUES A RESTART. This can be done in code and does not require pins.
@chuckgiddens you will need to use the IAP DFU mechanism, as described here.
This can be performed entirely over the I2C interface, where your host retrieves your firmware image from the Notecards internal storage and then manages it’s own update procedure. Be sure to return to normal operation after DFU using hub.set
with your desired mode
.