-
Notifications
You must be signed in to change notification settings - Fork 4
OTA on M4 #15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Anyone ever figure this out? |
same question here. I'm trying the method mentioned by @yann-l above "Or maybe something like M7 core connects to wifi, downloads the M4 ota file to QSPI, then use an RPC call so that M4 core finishes the process to update its flash?" with M7 doing download and M4 setting the RTC_BKP_ registers before M7 does a reset. M4 sketch does not get applied. Is it technically possible or are we wasting our time? Thanks |
Yes it is technically possible, but only using the 1:1 flash split because in the bootloader there is an hardcoded offset. Using #40 you need to create and M4 binary and process it with compression and bintoota like any other M7 file |
@pennam Thank you so much for responding, and especially including the link. I am running this OTA on a GIGA R1 - and I am guessing the reason it isn't working is that my bootloader isn't capable - please confirm. If so, can the GIGA run the MCUboot? maybe with a few tweaks? or is the board incompatible? Regards |
@megacct it is the default bootloader for the giga. It acts as a "stadard" arduino bootloader if you not configure the keys, but OTA feature is supported in both modes "standard" and "mcuboot". |
@pennam darn it! thought I had spotted the problem with GIGA being absent from the supported boards in the mcuboot readme. I'm at a loss. I'm doing everything as described above (even tried using ota.init() ota.update in the M4 rather than just setting the registers. Low priority, but if someone could test this approach on a GIGA with latest code I'd appreciate it. Thanks |
my fault I have to update the docs... I need to find some time to re-create the setup and test it. Can't tell you a date, but i will try to do it! |
@pennam Thanks. It's a nice-to-have feature but as my M4 will be serving as a black-box record for the M7 it shouldn't need the frequency of updates that the main core will. |
@pennam sorted! I turned on debug and got this for an M4 OTA
compared to this for an M7
I had the ota.update() / register settings being done in the M4. When I moved them to M7 I got this
This is the ideal result as I don't have any OTA code in my black-box. |
Great! Happy you have solved! 🙂 |
Hello,
Is there a way to update flash for M4 core with this OTA library?
Maybe using the _data_offset parameter of the Arduino_Portenta_OTA_QSPI constructor? But which value to use when flash repartition is 1MB per core? (By the way, why 2 us used in the example for the M7 core?)
Or maybe something like M7 core connects to wifi, downloads the M4 ota file to QSPI, then use an RPC call so that M4 core finishes the process to update its flash?
The text was updated successfully, but these errors were encountered: