Saturday, March 14, 2015

Machinekit Running on Odroid C1

Machinekit already runs on x86 machines, the BeagleBone, and the Raspberry Pi.  Now GP Orcullo reports he has Machinekit running on the Odroid C1 using rt-preempt.  There are no hardware drivers yet, but it shouldn't take long to port GPIO access and get some motors moving.  If you're interested, there's a link to a bootable Debian Wheezy image in the Machinekit list post.

I'm anxiously waiting for boards based around all the new Big/Little parts coming out, which combine Cortex-A cores for good OS performance and Cortex-M parts for real-time tasks.  Then there's the BeagleBoard X15 coming out soon with Big/Little + DSPs + PRUs!  Exciting times in the ARM world!

Tuesday, March 10, 2015

IoT Vienna Presentation

Alexander Rössler recently gave a presentation on Machinekit and Machinetalk at the IoT Vienna Talks March 2015.  If you're interested in the new remote user interfaces and distributed HAL capabilities, take a look!

Friday, February 27, 2015

2015 Midwest RepRap Festival Coming Up

The Machinekit vinyl stickers for the 2015 Midwest RepRep Festival hosted by SeeMeCNC arrived recently.  I'll be handing out stickers and showing off various 3D printers running Machinekit soon in Goshen, IN.

Jason Kridner (of BeagleBoard.org) will also be there showing off his BeagleStock1, a SeeMeCNC Rostock Max v2 driven by ‪Machinekit running on a BeagleBone Black.

There will even be some complete BeagleBone and Machinekit powered electronics kits (BBB + CRAMPS + DRV8832) for your 3D printer or mini-mill being given away as door prizes!


If you're anywhere near the Midwest (or have some spare frequent flyer miles) and are interested in 3D printing, the MRRF is something you won't want to miss! 
 


Saturday, February 21, 2015

Loadable Trajectory Modules

Michael Haberler has recently succeeded in separating the trajectory planner from the motion controller and made it a new HAL vtable module.  While the details quickly get into technical programming issues, this seemingly esoteric feature actually means big changes are possible with higher level configurations.

The new vtable modules allows HAL components, kinematics modules, and now the trajectory planner to be loaded and instantiated dynamically.  That means you no longer need to know ahead of time how many of a particular component your HAL file needs, and you can do things like load more than one kinematics module or trajectory planner.

What good is that, you ask?  Well, the ability to dynamically load modules means you can craft modular HAL files without jumping through hoops to add up all the modules before you load anything.  One HAL file might instantiate three PID loops for XYZ motion, and another included HAL file might add two more PIDs for temperature control.  Even better, since you can use Python to work with HAL, you could have a Python program setup a complete HAL configuration based on a few parameters with a library of subroutines to craft basic modules like a servo driven axis, a stepper driven axis, a temperature control loop, etc.

As for being able to dynamically load things like the trajectory planner and kinematics modules, that means you can now essentially have more than one "machine" running in the same HAL space.  This provides an advanced way to handle things like tool changers and is helpful anywhere you need more than one control system.  Perhaps you have a pick-and-place machine that includes a separate mechanism to place finished PCBs on a conveyer and load a new blank PCB.  Maybe your robot arm also has a gimbal mounted camera you want to control independently.  There are lots of times having more than one trajectory planner and kinematics module available is very helpful once you go beyond the world of traditional CNC machine tool applications.

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).