-
Notifications
You must be signed in to change notification settings - Fork 38
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
Download and Store multiple programs (without immediate execution) #978
Comments
You can download multiple different programs to the brick as long as you use a different name. Then you use the brick menu to start each of them. Is that what you are trying to do? |
I see what you mean, and it's a partial solution.
So all in all - this is not a complete show-stopper, but it just makes "MakeCode" less attractive when having to deal with 15 kids in a class (which is sad, because from a programming and teaching POV it is far superior to LabView). |
[ this is mostly a rant ] Hi all, https://makecode.mindstorms.com/fll#why-can-t-i-delete-my-program-uf2-files-from-the-brick-:
I think this deserves some clarification. From what I've read on the internet about UF2 for microcontrollers, it is designed as only a transmission-only file format. The user is supposed to drop it to a FAT32-formatted USB pendrive emulated by the device and it then gets loaded to the flash memory. In the case of the EV3 brick, the UF2 is split into separate file segments and these are then written as On the other hand, I believe that the message above meant that the uploaded The fact that the FAT32 is emulated irritates me a little. I don't know why it happened, but last time I tried to use it Linux couldn't mount such a drive. Therefore, although the web IDE is cross-platform by nature, I could not use it on Linux. Best regards, Jakub Vanek |
I've installed the new firmware and I think I see the two problems:
[offtopic]
|
From a theoretical point of view, this could also be solved without changes to the brick firmware. It would just be necessary to generate a unique identifier for each generated UF2/ELF. During each launch, the ELF would do the following:
This process could be controlled by a checkbox in the MakeCode UI, allowing the user to decide whether a given generated file will autostart. There is a limitation to this - if you upload the same UF2 for the second time, it will always autostart (because the identifier didn't change).
I don't know how to fix this without changing the brick firmware (lms2012 VM). The firmware needs to be poked to refresh the screen. The EV3-G environment does this via sending the
EDIT: I have mixed two issues together. It should be possible to just append |
The ELF is parented by the LMS2012 VM, therefore this is not the way to go. |
@agordon |
This turns out not to be possible. The UF2 daemon running on the brick processes directly only the filename of the paths embedded in the UF2. The directory has to be mapped through the internal mapping table. I see this is for security reasons and I agree with it, however it complicates stuff exactly because of what it does - it's impossible to upload files anywhere else than to the EDIT: this is a part of
The paths are therefore hardcoded in the daemon.
This still could be done - the autostarted file would recognize that it is in the "wrong" common directory and it would |
@JakubVanek is there any solution how to mount the ev3 on Ubuntu to run programs from makecode.mindstorms.com? |
Hello,
This request seems opposite to my previous one (#977), but this one addresses a completely different use-case and critical need.
It was mentioned in passing in a closed issue #873 (comment) : For "First Lego League" (FLL) teams, we need the ability to store multiple programs on the brick iteself.
using "MakeCode" is a recently introduced features (only Lego's software was allowed in previous years). However, the use-case for the actual competition is incompatible with the current method of "download and start immediately".
Please see an example of a Lego League Match: https://youtu.be/iEz9nzUuszg?t=4694
The kids have 1 minute to setup the robot, and then when the match starts, they start an already stored program using the brick's interface.
Not only that, but during the match they are even allowed to change programs.
If we can not have this setup using MakeCode/EV3 - it will be a serious show-stopper in regards to using MakeCode/EV3 for FLL. During development - sure, downloading and immediately starting a single program is great. But for the competition (and for practicing towards the real competition) - that's not going to work.
Thanks!
-gordon
The text was updated successfully, but these errors were encountered: