New EXP user. I had a few questions and a feature request.
What exactly does the inertial.calibrate() function accomplish? Does it just measure the biases, or does it account for the brain orientation (i.e., the gravity vector), too? (Calculated heading will depend on the ‘rest’ orientation of the brain)
Any plans to let the brain mount its SD card as a drive when connected to a computer via USB? This would be a huge improvement to workflow (particularly when working with extra python modules).
Is there a workflow to use compiled C/C++ modules within the brain’s MicroPython interpreter? (I believe stock MicroPython does support CPython modules, but overall, VEX’s SD card documentation is pretty meagre.)
For what it’s worth it would be a huge boon to mount that SD card. The ‘one-file’ Python restriction is pretty limiting and although you can load external modules off the SD card, the workflow to do any debugging is incredibly laborious (unplug card, plug into PC, copy files manually, unmount, plug into brain). The brain is connected through USB when downloading the main.py file, so it would be so handy if there was a direct way to push updates to the modules as well. Not to mention retrieve any data logs, etc.
(As an aside, I’m using VSCode for development)
Just to clarify, I’m not talking about touching the Vex API directly, but rather taking existing C/C++ code (calculation only) and then compiling it into libraries callable from Python. I have limited experience with Micropython, but the documentation seems to suggest that it supports access to C/C++ libraries, and VSCode can already do cross-compilation to the brain. So most of the pieces seem to be there.
As a separate question, are there any profiling tools available to measure memory or processor utilization on the brain? There are examples with multiple threads and callbacks, but the execution model and practical limits aren’t really documented anywhere.