While I haven't been doing a lot with Machinekit and the BeagleBone lately ("real" work, kids home from school all summer, family vacation, etc.), the beauty of open source is that anyone who wants to can help. Out of the blue on Friday, I got emails from github with pull requests for two of my projects:
malcom2073 added details for the PMDX-432 board to my pinmux spreadsheet for the beaglebone
jstampfl added the missing cape-univ-hdmi I've been meaning to write to beaglebone-universal-io
A BIG THANKS to both of you for the help! I'd also like to encourage anyone else thinking about making a change to an open source project (big or small) to go ahead and do it. It's a great feeling to help out others, and it lets the owners of the project know people are interested and using the code.
Along those lines, even (especially) if you don't need to change anything but there's a project you're using that "just works", send a quick note of appreciation to the mailing list. Most first posts are from folks having some sort of problem, so it's always refreshing to get thanks from someone who doesn't need anything else. Knowing your code is being used and helping others is the sort of feedback that keeps developers happily volunteering their time to write and improve open-source code for everyone to use!
Wednesday, August 6, 2014
UPS delivered a new controller box for my Probotix Fireball Comet CNC router yesterday. Unlike the PC version that came with the Comet, this one has a BeagleBone inside and will run stand-alone!
The PC configuration for the Comet is a great example of things you can do with HAL. The Y axis gantry is is controlled by a single step/dir generator using some HAL logic to split the drive pulses into signals for two separate stepper motors with two independent home switches. But this approach only works with software stepgen, so something else is needed for "outboard" stepgen that is not directly part of HAL (ie: hm2 drivers and the BeagleBone PRU driver).
I have written a gantry HAL component that mimics the behavior of the Probotix HAL file but works with outboard step generation and up to a seven joint gantry axis. Testing this with a three-joint gantry axis (my linear-delta 3D printer, temporarily re-purposed as a test-bed) was a lot of fun, but I really look forward to getting this working with real hardware and making some chips. Look for some example configurations using the gantry HAL component in the near future!
NOTE: In addition to working with standard gantry routers (Fireball, Shapeoko, etc), the gantry component will also work well for other multi-motor axis (like the two-motor Z axis found on many Mendel-style 3D printers) as long as each joint (motor) has it's own home switch.