`I’ve read that document, and similar posts to this, several times. My problem is that both use words that don’t match either their technical or common English usage.
The first problem is “run the program online.” Online, in conversational English, normally means “connected to the Internet.” Makeblock uses it to mean “run with an active serial connection (wired, Bluetooth or 2.4g) to mBlock.” This is really confusing.
The other big problem is “firmware.” Arduino programs compile to .hex files and upload to volatile RAM, so they can technically count as “firmware.” But in conversational English those are called “programs.” Firmware normally refers to something that’s a lower-level part of the device. Looking through the Arduino documentation, the only discussion of “firmware” comes when discussing the separate Atmel chip that handles USB-Serial on the Uno.
https://www.arduino.cc/en/Hacking/DFUProgramming8U2
As @mjg mentioned above, using “program” and “firmware” to distinguish between these two is super confusing. It’s bad for novice users, because “firmware” sounds intimidating. It’s worse for intermediate/advanced users, who have incorrect expectations based on the language used.
Can you link to, or provide filenames for, the non-complied .ino files for each of these two? At this point, I’d really like to read the files and see what’s actually going on.
–andrew