Wednesday, January 21, 2015

New BeagleBone Images Avaialble

Thanks to the tireless efforts of Robert C. Nelson, Machinekit uSD images for the BeagleBone are now part of the regular Debian image build cycle.  The first image is available now, with updates expected about every two weeks.

I will update my Machinekit page as soon as I get a chance, but for now just follow along with any of the BeagleBone getting started guides to put the xz compressed image onto a uSD card.  Once you're running the image, you can easily perform updates using the standard Debian package management tools.

Many thanks to Robert for building the images (and the required Xenomai kernel), everyone working on the Machinekit project for the packages, and to all of you who use these tools to drive your machines.

Monday, January 19, 2015

3D Printing With Machinekit

While it is possible to 3D print with a "traditional" CNC controller like Mach3, LinuxCNC, or Machinekit, there are a lot of small problems that get in the way.  There is a lot of ongoing work in the Machinekit project to make this process much easier.

Alexander Rössler has been working on gcode remapping and a standard set of signal names that will reduce the amount of gcode post-processing required and improve print quality (migrating "queue-busting" custom M1xx codes for setting things like heater temperatures and fan speed to inline analog output values that keep the hot-end moving).

Bas de Bruijn has been reworking the documentation files and build scripts, allowing documentation to exist in a separate (and easier for non-programmers to modify) repository.  Very soon you should see online documentation built automatically just like the buildbot packages for the executable files.

Jean-Paul Moniz has been working on getting some of the fancier bed-probing and auto-calibration features common in Arduino firmware working on Machinekit.  I (Charles Steinkuehler) helped this effort slightly by exporting some homing settings to HAL that previously required a shutdown and restart of the linuxcnc application to change (traditional machine tools don't need to change their homing details very often).

In addition, work is continuing with remote interfaces, velocity based extrusion, simplifying the example HAL files, and other changes to help make Machinekit more accessible for new users looking for a solution with more "upside" than an AVR or Cortex M4.  Machinekit scales from systems like the BeagleBone and Raspberry-Pi to multi-core x86 systems with custom FPGA hardware interfaces.

I'm sure I missed several folks who've reported progress on the mailing list, but it's not intentional.  There's just so much happening with Machinekit already this year it's hard to keep track of it all!

Remember, the best way to keep up to date is to monitor the Machinekit Google group.  Drop in and say hi!

Monday, December 22, 2014

Holiday Packages

It's time for holiday packages!  Not the kind you put under the tree, but the packages you install on your Linux OS to provide new programs and features.

Thanks to the incredibly awesome Robert Nelson, just about everything needed to install and run Machinekit is now available in the default BeagleBone Debian package repositories.  This includes a few things back-ported from Jessie to Wheezy, some things that need to be built directly from source, and even a 3.14 Xenomai real-time kernel!  The actual Machinekit packages (and the buildbot infrastructure that builds them) remain on the private repository generously provided by John Morris at DovetailAutomata.com.

MANY thanks to Robert for this great work, which frees up the Machinekit developers to keep improving things.

If you haven't worked with a package based Machinekit install yet, I suggest you try it out.  Using packages makes it much easier to stay current with updates and enhancements.  Instructions for installing Machinekit from packages can be found on the Machinekit website.  Packages are available for the BeagleBone (arm7), Raspberry Pi (arm6), and generic PCs (i686/amd64).  For real-time operation, you'll also need an appropriate real-time kernel (PREEMPT_RT, Xenomai, and RTAI are currently supported).

Saturday, December 20, 2014

Cool Tool Sandy Box CNC Control

Alexander Rössler and the folks at The Cool Tool have released the Sandy Box CNC controller just in time for the holidays.  If you are unfamiliar with The Cool Tool, they make small CNC machines for research, prototyping, hobby, and education.  While the Sandy Box is primarily intended to control their UNIMAT line of CNC machines, it's possible to use with most any CNC system currently driven by a PC parallel port.

Inside the box is a BeagleBone with a custom cape already setup to run Machinekit.  It should make a great controller for folks looking to upgrade or replace a dated DOS or Windows machine.  If you're interested in using the Sandy Box on your machine, or have any questions, head over to the Machinekit Google group where Alexander and others can answer your questions.

Tuesday, December 9, 2014

BeagleBone Encoder Support

Russell Gower has written a HAL driver for the hardware eQEP encoder inputs on the Beaglebone.  This makes it possible to do rigid tapping with an encoder on your spindle, and paves the way for eventually running high-speed servo systems on the 'Bone (which will likely also need support for hardware PWM, since the existing PRU based PWM isn't really fast enough for motor control).

The new code is merged and built, so you should be able to use apt (or your favorite package manager) to update if you've installed Machinekit from packages.  If not, you should consider doing so (instructions), since it makes it much easier to do updates.

Sunday, November 23, 2014

Jog-while-paused

Recently jog-while-paused popped up again on the LinuxCNC mailing list (this happens a lot, check the archives), so it seems like a good time to point out that not only does Machinekit contain jog-while-paused functionality, this feature was added to LinuxCNC by Michael Haberler before there was a Machinekit project at all.  If you're unfamiliar with the jog-while-paused feature, it allows you to pause a running gcode program, move the machine (perhaps to take a measurement, inspect the cut, or perhaps replace a tool) then resume program operation.

Since so many folks seem to want the feature, but almost no one is using it, what is needed to get jog-while-paused working?  First, you need to have the jog-while-paused code in your build.  With Machinekit, the feature is in all current packages, but with LinuxCNC you'll need to dig around for the proper branches (check the dev-list archives around the date of the video above, Oct. 2013).  This adds new offset pins to motion that provides for the jog-while-paused functionality.

The next piece is some HAL logic to drive the new pins.  There's a simulation example provided with Machinekit (the sim.axis.jog-while-paused9 configuration) which includes some custom UI and HAL code to get jog-while-paused working.

So...what's really missing is just some real-machine example configurations and perhaps a bit of a HOWTO with instructions on getting everything working.  If you've been itching for this feature, why not try out the simulation config.  If you like how it works, merge the jog-while-paused changes into your machine setup.  Remember to take notes and share your results.  Once a few brave souls blaze the trail, I'm sure lots more will follow, and this is a great way non-programmers can help out with the project.

Monday, November 17, 2014

New QtQuickVcp Interfaces

Great news!  Alexander Rössler has released the first two new user interfaces for Machinekit based on QtQuickVcp:

Machineface
Cetus
These interfaces can be run on the same system that is running Machinekit, or they can be run remotely on a tablet, smart-phone, or standard desktop.  Since the interface is based on Qt, it can run virtually anywhere, including Windows, Mac, Linux, and mobile (Android and iOS).  Alexander posted a video walk-through if you want to see more than just the screen-shots:

See Alexander's post on the Machinekit list if you want to try out one of these interfaces.