Excuse me for being slow in sorting this out. I wish I would have moved towards LINUX years ago, but I stayed with Windows. I am see many posts with terminology that does not make any sense to me.
I hope that some very specific instructions can be provided to be able to do the programming on the Q from windows with something better than App Lab (no offense). I have downloaded VSCode, Now what?
For example where are the files stored. The best I can come up with is that when you press run, they are downloaded to the board. Do they exist on the windows PC? Where are all of the examples stored? If I can get those questions answered, hopefully it will help to get me started.
I am not totally lost as the Climate Monitor example that I modified has been up and running for almost a week now. That is a good sign.
As I have said before, I think this is a good step for the future, I just really could use some more clarification. Maybe it cannot be done from a Windows machine.
Applications are stored on the UNO Q in a directory called ArduinoApps. The full path is:
/home/arduino/ArduinoApps
When you connect the UNO Q to AppLab it accesses to selected project on the UNO Q.
The UNO Q can be programmed with a sketch in the traditional way (C++ sketch uploaded to MCU) using the Arduino IDE. Once the UNO Q board package has been installed, you can find examples for it in File -> Examples _> Examples for the UNO Q. The drawback is that you can't access the advanced features such as bricks and python.
In theory it ought to be possible to do the same in Visual Studio Code, but I don't see the UNO Q listed as a board in there so it might not be supported yet?
That I don't know, but I suspect they are tucked away in a container somewhere. Hopefully someone from the Arduino team can answer that.
AFAIK, AppLab is the only software tool available currently that allows you to work with the advanced capabilities of the UNO Q including bricks.
I never use VSCode so I can’t help with that. If you are a beginner you might want to consider you may get more help if you use AppLab.
Well that depends. If you are using AppLab or the command line tool that AppLab depends on then files are stored in /home/arduino/ArduinoApps on the Uno Q even if you are using AppLab on Windows on a pc. The files need to be on the Uno Q because one day you may be using AppLab on you windows machine and the next day a person could decide to use it directly on the Uno Q SBC mode. The files need to be available even when the PC is not.
The philosophy is different if you are doing a project using the Arduino IDE 2. In that case the source files are on the PC. Only the compiled program gets downloaded into the Arduino. Only the MCP code can be written and compiled via the Arduino IDE 2. When using the IDE one gets to choose if the MCP will run the compiled program from RAM or Flash. If using AppLab the MCP program is always run from RAM.
Interesting to note. So is this allowing you to work with a sketch on the UNO Q over the SSH connection? Can you also work with the Python side and bricks?
Does this mean that the script will still be run within a container? I'm trying to make a tkinter GUI that changes based on functions in the sketch, and I'm wondering if this is a good way of going about it
The Python script component of an Arduino App is always run in a container.
If you want to run a Python script outside of a container, you must do that by working through the Linux machine on the UNO Q, not using Arduino App Lab. Although doing so is a bit more complex than with the very approachable Arduino App Lab UI, it is very doable.
There is a lot of relevant information about doing this sort of thing available on the Internet. The important thing to understand when doing research is that for the most part you can consider the UNO Q as a standard PC in this context. So you should generally avoid including things like "UNO Q" in your search queries, as this would "poison" your query by unnecessarily excluding a lot of relevant results. Of course the forum community is always happy to help if you have any problems or questions.
I like this idea because it allows you to still utilize the convenient communication between the microcontroller and the Linux machine via the Arduino App framework. It also allows you to keep a significant amount of the Linux side of the project containerized; only using the Python script running directly on the Linux host for the aspects that do not lend themselves to containerization.