I’ve been building a lot of kernels lately, testing various options recommended by the Xenomai folks to improve latency. Nothing has been a “magic silver bullet”, but the overall combination of options has dramatically reduced typical latency, even though worst-case values haven’t dropped much.
Also, some folks testing with recent kernels noticed the CPU wasn’t running at full speed. I have re-enabled the frequency scaling support in the kernel (the Xenomai folks recommend disabling this), which has restored the expected 1 GHz operation. Tests so far show no impact on latency figures, since the CPU frequency isn’t actually changing (only the performance scheduler is compiled into the kernel, which keeps the CPU running at the highest possible speed and doesn’t try to throttle the CPU to save power). AFAIK, the latency hit is from the CPU shutting down while the PLLs relock to a new frequency, so if the CPU never changes it’s operating frequency there shouldn’t be any issues.
You can download the new kernels here. If you try it out, please let me know how it works for you. I’ll probably try to make new images with just the kernel update soon, but I’m in the middle of a bunch of other coding and updates, so pester me if you really want a new image and it hasn’t shown up on the MachineKit page.
In other news, work is in progress to develop interfaces geared towards the BeagleBone (lower resolution screens with less 3D intensive “eye candy”), I’ve started work on the CRAMPS 3D Printer interface board, and I hope to have encoder support (both hardware and PRU software based) working soon. Rigid tapping could be coming soon to a ‘Bone near you! 🙂
I am making good progress on the CRAMPS and encoder tasks. If you would like to assist with interface design for the ‘Bone, please post on the LinuxCNC developer list. I don’t do well designing GUI interfaces, and am looking for as much help as I can get to provide usable and attractive interfaces for the BeagleBone, for both CNC machining and for 3D printing. Thanks!
