Yes, but with how much delay?
Just the way they transmit the values and the size of the data is making it impossible to keep it at a decent loop frequency.
Just for comparison:
Binary data transmission speed of 2 indentifier bytes and 4 data bytes (2x 16-bit axis): 500us
"AB~a01~~a02~" translates to 6 bytes as "B B BB BB"
http://motionsim.blogspot.com/2012/05/this-capture-i-show-timing-of-capturing.htmlNow if they do HEX transmission each hex byte is 2 binary bytes!!!
$<value><axis><value><axis><value><axis>#
~36~~a01~Y~a02~X~a03~Z~35~ which translates into bytes as "BB BBBB BB BBBB BB BBBB BB BB" !!!!!!
How many bytes are there now? 22???? So they have to spend at least 1.85ms in transmission time!!! Don't you also need more time for execution of other code too? So how much should be the total loop delay? 3ms? 4ms perhaps to prevent buffer being full all the time (given they even use buffered serial connection)?? And the PID runs with 10ms intervals...
Sorry for my rant, but I just can't sit back watching all this arduino based controllers do something they are clearly not designed for. They are awesome for robotics, I agree, but I don't think there are too many robots around that need almost realtime control from PC, and most of them use simple RC servos if they are mobile.
Thanos