I just want to drop this off in the forum here to leave something that might be useful in the future. I am changing course in my project and probably can’t bring it to fruition, but it will definitely be great for someone else.
It is noted in the documentation of this project that a)many h-bridge motor drivers cannot drive a bldc, because they have a certain truth table that prevents the transistors from being turned on in the right way at the right time. Basically they aren’t general purpose enough. b)some like the L298N can sort of, however I found out the hard way that despite being listed as approved compatible components, they do not work for smooth sinusoidal control, it is not clear why but the best hypothesis is that the switching time of them is too slow.
C) 3 pin pwm has serious issues, as there are periods of the drive cycle during which substantial amounts of current flows uselessly along certain paths This causes excess heating and reduces maximal possible power output of your motor etc. 6 pin pwm is much better, in which you control the transistors of the H-bridges independently from the microcontroller.
The problem is that implementing this 6 pin pwm is not practical right now, because you can’t buy the output stage boards. You can buy boards that have mosfets with the required driver ics that can switch to ground, but not to the positive voltage. That is, they don’t work as high side switches. I searched high and low, and there are no ready to go high side switches available, apparently, on the market. The best you can do is order the parts and solder or breadboard your own driver board. This is an expensive, and error prone and perhaps prohibitively time consuming undertaking for many of us in the community.
I have discovered that highjacking the output stage of an electronic speed controller of the type commonly used to drive bldc motors in the drone and airplane and model car hobby looks promising. They are relatively cheap and relatively easy to get, short shipping times, too.
This document is very helpful in showing how to do it, you have to either remove the microcontroller or cut it’s power supply pins(which is easier than desoldering it as it can be hard to chips off, the solder only melts on some of the pins at any given time with a soldering iron) to take it out of the equation, identify which pins go to the transistors (or the driver circuitry which in turn drives the mosfets) and then solder 6 wires to those pins, and then you should be able to use the output stage as desired in your project.
Obviously it is some work to identify the pins, and it is finicky to get a wire in there, but it looks doable.
Note that not all ESC have a good switching time. Some output stages probably have the same problem as the L298, switching too slowly. There is a good document that discusses the properties of some common ESCs here: https://github.com/bitdump/BLHeli/blob/master/SiLabs/BLHeli%20supported%20SiLabs%20ESCs.pdf . that discusses only the type based on the silicon labs MCUs. There are at least three other types, and probably documents that similarly discuss/compare those.