VexCode for Linux

Hello! I primarily use a Linux OS and I am the lead programmer for my team but, I see VexCode is not an option. Is there some walk-around solution to this? For programming, I use Microsoft Studio Code, so my first thought was if I could import the libraries from VexCode into Studio. If it’s impossible, I have other solutions like using my Windows laptop but I would like to avoid using it if possible. Thanks in advance.

You could try PROS. That is what my team uses as all 3/4 of our programmers use Linux.

11 Likes

I’m not 100% sure, but I think that you can copy libv5rt from vexcode into your pros project and modify your makefiles a bit to use v5rt and not okapilib, and then you should be able to use PROS with the VexCode API. I’m not 100% sure of that, but I believe they use the same toolchain so it should work.

But, the PROS API is better in a lot of ways and so a lot of teams prefer it.

VEXCode graphical is available on the Chrome Web Store. But if you want to use something on text I believe RobotMesh has a coding studio that’s online and has C++ that runs very similar to VEXCode. Also, worse case I believe there are Windows/Mac emulators on Linux.

You could try and use WINE or something simaler, however IMO it’s just easier to either
a) run vexcode in VScode (there is a big forum thread on doing this) which could work
b) learning PROS
c) get a windows VM and pass through your v5 USB ports

2 Likes

I use vex iq. I’ve been able to run vexcode iq blocks and robotc with wine, but no luck downloading to the robot.
What do you mean by running vexcode in vscode?

As far as I’m aware, you can only do that with v5 text/pro.
@jpearman would know more

VEXcode will probably never be available for linux. I just don’t think VEX and Robomatter have the bandwidth to support that platform. I was reading a blog a few weeks ago about a game developer that stopped supporting linux because, although it only contributed something like 1% of their revenue, it generated 80% of the support tickets.

I suspect if you can get the packaged ChromeOS version of VEXcode, you could hack it to work on Linux. The toolchain would need replacing, the SDK would work ok, but I can’t give you any help in doing that and would prefer that any details are not discussed publicly on the forum as, again, I don’t want hacks of VEXcode causing any calls to the VEX support team.

The programs that sort of run under wine always have trouble with USB, the drivers are either missing or not compatible.

12 Likes

If you really need to use VEXcode from a Linux machine, your best bet is going to be either a virtual machine or a separate Windows device to do the actual compiling and downloading to the Brain.

For a virtual machine, KVM will probably get you the best performance, though VirtualBox is usually easier to set up and adequate.

For a separate Windows device, first check with a local electronics recycler. Very often, they will have perfectly functional laptops that companies retire by the truckload, usually Lenovo ThinkPads or various Dell models. Barring that, the Atomic Pi is probably the cheapest option — it’s a single-board computer with an Intel Atom processor.

4 Likes

Thanks to everyone who sent me help, in the end, I just used WINE for VEXcode V5 PRO. I tried PROS, however I was not as familiar with it and it seemed like I couldn’t specify the “slot” I wanted the program in.

Although I support VEXCode>PROS for EDR programming (because I believe PROS is too complex for the average user who competes in VEX), PROS generally uses the command bar a lot to do many uploads.
prosv5 mu --slot 3
Edit//: Oops, typing on my phone so there was a formatting issue. Fixed

3 Likes

no space in --slot and you wouldn’t use a combined double-dash but yeah

so it would look like prosv5 mu --slot 3

4 Likes

Actually, I have a question about that. In order to send code to the brain does it need to be specifically pros code? I know quite a bit of C++ so I was figuring it wouldn’t be too much of a hassle to throw together a drive program from scratch. I really don’t know how far fetched that is, and I still haven’t tried to do something like that with V5. Would the file names need to be the same as pros? And building off of that would it be possible to build and upload V5 code? You can probably tell I don’t know a lot about pros.

In order to send code to the brain does it need to be specifically pros code?

I’m not sure what “PROS code” means, but the PROS CLI can upload any binary you give it. I wouldn’t recommend uploading random files though.

it wouldn’t be too much of a hassle to throw together a drive program from scratch

If “from scratch” means not using any official platform, then it would be more than just a little hassle. Your C++ code will have to at least link against VEX’s proprietary SDK, which is… well… proprietary. Without this, you definitely wont be able to control motors, and you probably won’t have much other functionality either, your code probably wouldn’t even run.

8 Likes

I think @Pixels128 is referring to the commands specified in the PROS API. This might take some more explaining. :slight_smile:

Yes, thank you. I just to clarify I was wondering if it could be any binary, and the example I gave was uploading say a V5 template to the brain using PROS. While I was using PROS I found I could create a new PROS project and I was asking if it needed to just be that project specifically. To the point of creating a new project from scratch I think I was unclear, what I was trying to ask was if I can use different elements of different templates (say the vex.h from V5 and the motors.h from PROS) to create a custom project that would still upload (assuming all the code works). And it sounds like the answer to that is yes.

You can’t mix and match header files from Vexcode and PROS, they have 2 different APIs. You’ll have to pick one or the other.

6 Likes