F-Of-C - open-source Free-Of-Charge vesc6 board in development. Schematics available

Update on the pre release Version
Although initial tests with a sensor less motor were successful, I ran into trouble when testing the vesc with a sensored onewheel motor. Hall sensor 3 always stayed 0, therefore the motor was recognized as sensor less. I figured out that Hall 3 was shorted to gnd. I followed the trace on one of the unassembled spare boards and found this:

Unfortunately, this trace is not accessible on an assembled VESC and the Pin is routed over a via from below the STM32, so no chance to fix it on an assembled FOC KING, without removing the pill. I did not want to remove the pill, too much pain.
My workaround was to assign Hall3 to a spare pin, I chose PC13 which is not used and accessible on the pill. Re-built the binary with adapted hw_FOC_KING_core.h.

Works now. I’m probably the only one that is using this HW as it was a pre release version. If anyone else should need the binary, pm me.

Thanks @shambler00117 for support

3 Likes

i mean its possible to allow PRs. I would work on my fork and make a PR to the main repo. That should work

2 Likes

Did the DRC check not pick that issue? I’m surprised KiCad missed it

1 Like

It would work and merge the code, but the maintainer may not be able to review the changes in any decent human-consumable way. It would likely be an almost blind merge or require extensive documentation from the submitter, greatly complicating and lengthening the process, and it doesn’t sound like @jens_overby has a lot of extra time to devote to any of that. And if Jens is going to approve blind merges, then they might as well make the person a maintainer on the repository, so they have -zero- time commitments going forward.

I was thinking about the imu situation, what if we added pads on the back of the board for an imu piggyback board, i will add some screenshots later, but I do something similar with my vesc express board here I have pads for the esp32-c3 supermini on the back and stuff assembled by jlcpcb on the front. I add the supermini myself. I am thinking 5 pins on each side would be sufficient for power i2c and spi.

That would work but as die IMU takes very little space it would be much easier if it was on the mcu pill. Assembly process is complicated enough already. If we find a part that can be sourced for the next couple of years, I think it would be better to integrate the IMU as it was with the bmi160.

yeah mcu pill is probably better idea and we can have footprints for multiple parts on there too, since space is not as bad

Edit: MPU-6050 is not an option? It is a jlcpcb preffered extended part, sp evem comes without 3 usd charge with basic assembly

See further up in the thread if it is supported by vesc.

It is supported, i’ve used it as external imu for a bit on my first ow build, however there are not many success stories with it, people usually had some sort of issue, but that could be caused by it being an external imu.

Edit: should be the same as 9x60 but it doesn’t have magnetometer.
https://vesc-project.com/node/1555

1 Like

Is there a place where I can find the source code of the FOC KING firmware? Thanks.

do you mean vesc firmware? GitHub - vedderb/bldc: The VESC motor control firmware

Is the FOC King firmware the same as the one linked? or was there some modifications made?

1 Like

I am trying to use UART to read out some vesc data, but it doesn’t seem like the data packet is constructed correctly. I can get the FW version alright, but when I try to get the data package (i.e. current, temp, rpm, duty cycle, etc), I am not getting the entire packet (it is supposed to start with 2 or 3, and end with 3, but the program never read the 3).

idk if there are mods not merged upstream yet.

Seems unlikely any of this would be mod’d.
I suspect It might have varied across vesc fw version though. are you looking at the same version of the vesc code that you’re running?

i’m guessing here.

I was reading through the bldc repo by vedderb and it seems like they are still using 3 as the stop byte. Plus, if I try to get the FW version, the packet seems fine ending with 3 and I was able to unpackage that into readable data, just not the VESC values.

I suppose I can try recompiling the FW using the fwconf in the repo and vedderb’s bldc fw source code.

1 Like

The only part that differs from vedder git is the specifig hwconfig files. I compiled 6.05 FW and it works, but I havent tested Serial communication. I don’t see why it should not work, or behave differently from other vescs with the same fw version.

2 Likes

I was digging through the FE source code yesterday and found that the controller no longer processes the get values command, instead they only read for the get values selective. It doesn’t explain for the weird packet I’m reading but it makes sense that I’m not getting the values I wanted. I will edit the arduino lib for uart comm and see if that does anything today.

3 Likes