I also get upset when people say it can’t be done with MF, but after several months with different challenges I must admit there are some things it just isn’t good at. High speed predictive work is one of them.
See my trial by fire here… http://www.tinyclr.com/forum/2/1835/
You must realise that you have no control over even a simple thing like when the garbage collector will do its thing and kill your timing and
I’ve determined by trial and error that the fastest response time to an external event is about 100uS (10kHz). Executing an instruction takes longer. Add calculations like a PID loop and you can probably spend 500uS from getting input to producing a response to a single channel - never mind 4 or 8. If you consider that the PWM signal you need to produce to control the speed controller ranges from 1.5 - 2.5 ms there is not a lot of time to do anything.
In “native mode” you’ll get order of magnitude better performance. .Net MF is interpreted - not compiled as native code on the chip.
So I think you will need the help of an external module to control the PID loop, or you have to do some of the time critical stuff in RLP or you have to come up with a new way of providing a control loop without using time sensitive PID loops at all. Now that last bit has me interested. Fuzzy logic?, AI? Who says PID is the answer?
A human brain is a lot slower than a Fez Domino - yet it can balance a full scale helicopter with 6DOF or an RC one with sight input alone. How does it do that? If you crack that, then maybe there’s hope for NETMF and quads