Open JamesWhitlock opened 3 days ago
Nice. Didn't know about FastIMU library, it probably has some of the code common for all IMUs ? I think I also wanted some kind of IMU detection because there are very exotic IMUs with wrong or no label. Another solution could be to have one mode that only does the IMU detection and outputs it on USART or Segger RTT, and add possibility to select the right IMU manually.
I am happy that this repo was useful to you, we can collaborate on this. I haven't seen any email but you can contact me here directly.
Sure, happy to help where I can. We can change IMU support to conditional compilation, if the right IMU is not available, set the red LEDs and report the right IMU over RTT. The C8 build can support all the IMUs the C6 can enable just one,
The FastIMU library doesn't try to find common code between the imus. It keeps the drivers cleaner, but does use up more flash - it's around 1 to 2 kB per IMU. I primarily picked it because of the ICM20689 support which are on the sideboards labelled as MPU6050A.
What's the status of the SimpleFOC port for the power board?
This fork of SimpleFOC has GD32 drivers for PWM and current sense. I just synchronized it with the Main SimpleFOC branch but I need to test it again. It was working back then on one particular power board but wasn't good enough to publish it. I had to use fixed Pins in the PWM driver because of missing features in the Arduino GD32 framework.
I raised a few issues to the Arduino GD32 but the project was not so active:
In the meantime I helped to get SimpleFOC faster, more accurate with only 2 phase currents and ported a basic sensorless algorithm.
Robodurden on this repo is documenting all the power boards (there are too many). But this firmware doesn't support FOC.
So things go in the right direction but very slowly.
I've implemented runtime IMU detection. This is nice as you can have somewhat generic software binaries for the board. I switched the IMU library from adafruit to FastIMU as I needed a ICM20689 driver for the MPU6050A part I have on my boards. The down side of this is all the driver code needs to be in the onchip flash, at the moment it's slightly overrunning the flash of a C6 (with commander interface). My boards have a C8 - not sure how common the C6 is. Tradeoffs.
Let me know if you'd like a PR?
Nb. I tried to reach out to you via email a couple of weeks ago. Let me know what comms channels you prefer.