Intel® Makers
Intel® Edison, Intel® Joule™, Intel® Curie™, Intel® Galileo
Announcements
Welcome - This is a Peer-to-Peer Forum only. Intel has discontinued these products but you may find support from other customers on this Forum
9881 Discussions

Upload a new program to the MCU

PHult
New Contributor II
1,893 Views

Can I replace the MCU software from within the Linux system on the Intel edison?

Guides such as https://software.intel.com/en-us/articles/using-an-mcu-on-the-intel-edison-board-with-the-ultrasonic... this mention only a method using the SDK which I assume is on the development machine.

5 Replies
idata
Community Manager
236 Views

Hello Peter-H,

 

 

Right now the only way to program Edison's MCU is through the SDK mentioned in the article you mentioned above. If you would like to learn more about how Edison's MCU works and how to upload scripts to it, I'd suggest you to read:

 

 

https://software.intel.com/en-us/creating-applications-with-mcu-sdk-for-intel-edison-board https://software.intel.com/en-us/creating-applications-with-mcu-sdk-for-intel-edison-board

 

 

Peter.
PHult
New Contributor II
236 Views

I just found

/etc/intel_mcu/mcu_fw_loader.sh

which checks that this file exists

/lib/firmware/intel_mcu.bin

And then issues this command

echo "load mcu app" > /sys/devices/platform/intel_mcu/control

I can't say whether this works or not.

Is this firmware my own code I compile or is it one of the binary blobs?

If it works, how reliable is this method in future system updates?

PHult
New Contributor II
236 Views

These are my final results

When Eclipse pushes a new MCU program to the device it will replace the file /lib/firmware/intel_mcu.bin with the new program.

The load script didn't work in /etc/intel_mcu/mcu_fw_loader.sh or at least nothing appeared to change.

What worked was to replace the file /lib/firmware/intel_mcu.bin and reboot the system.

So being only in the module you can switch back and forth between MCU programs, although a reboot is needed.

I guess there is more to it than this but this is enough "reverse engineering" for today.

If anyone can find real documentation on this it would be awesome!

SBoet
New Contributor I
236 Views

I've been meaning to do this myself at some point, very cool that you already did !

Thanks for the info!

I assume you use the Release/intel_mcu.bin from the sdk project folder to replace the file on the edison?

Cheers,

Cooper

Edit: nvm, just tested it, it is indeed that file.

PHult
New Contributor II
236 Views

That sounds like a good idea, though that was not what I tested.

I swapped the versions of intel_mcu.bin that was placed in /lib/firmware on the module by the SDK/Eclipse.

Most likely the file comes from the location.

So your suggestion will make my work easier, thanks!

Reply