Thursday, June 19, 2014

The Great Midwestern CNC Road Trip

What started as a simple plan to head up to Madison, WI for the first Machinekit meetup has grown into an epic road trip.

First I'll head off to St. Louis, MO to meet with Jon Elson of Pico Systems.  Jon and the Pico Systems folks will be building and selling assembled CRAMPS boards, which will hopefully be available for sale in the next couple weeks.

Then it's off to Peoria, IL and Probotix, makers of the excellent Fireball series of CNC routers (powerd by LinuxCNC).  They also sell a BeagleBone breakout board available, and I look forward to seeing what other projects are being cooked up in the R&D lab!

Chicago is the final stop before Madison, where I'll be attending a special meeting of the CNC build club to discus running Machinekit on a BeagleBone, the CRAMPS cape I designed, and where Machinekit is headed.

I should finally make it to the Tormach facility in Madison sometime Friday, where I look forward to an exciting weekend of discussions with everyone else who can make it.  A preliminary agenda was posted to the Machinekit list.  While the event is mostly informal, there are a few talks planned.  We will try to live-stream the video (or at least record something and post it online later) for those who cannot attend in person.  Monitor the list for updates or changes.

Wednesday, June 18, 2014

Packages (not tied up with strings)

If you don't monitor the Machinekit group (you should), over the weekend John Morris announced the availability of binary packages for Machinekit and it's required dependencies (at least the ones that are not already in the Debian archives).

If you're trying to build a minimal system (particularly helpful on the BealgeBone with it's limited eMMC rootfs), this is welcome news indeed!

I will be updating my build scripts and the resulting images to use the pre-built packages soon, meaning you'll be able to simply "apt-get update" and "apt-get upgrade" to get the latest official Machinekit release.  Until then, feel free to add the pre-built packages to your existing install, the run-in-place development version and the installed packages should work side-by-side and should not interfere with each other.  Instructions can be found at the package repository website.

If you run into any problems, let us know on the Machinekit list.

Thursday, June 5, 2014

CRAMPS Kits Available!

I am pleased to announce that I have a limited number of CRAMPS V2.1 DIY Kits available for sale.  This includes a PCB and all the parts required to build a functioning board.  Assembly details are on the RepRap wiki, and the design files are on github.  Please review the known issues, and be sure that you are comfortable soldering 0603 surface-mount chip components prior to ordering a kit.

I apologize in advance for the somewhat clunky shopping cart, but it is the best open-source solution I could find that dynamically calculates shipping rates based on destination (which is required, since the rates for international package shipments vary dramatically).  Yes, you will have to create yet another web account you will likely never use again, but it keeps me from having to charge everyone some obscene amount like $25 for shipping.

I currently have about 20 kits available, and I do not expect to make any more (it is a LOT of work!), so act quickly if you want one.  Also, I am doing this to help with the adoption of the CRAMPS design, so there is a one-kit-per-person limit.

Wednesday, May 21, 2014

Updated Machinekit Images

After receiving a BeagleBone RevC with 4GB on-board eMMC, I noticed the latest images have grown to the point they are essentially unusable on a 4GB device.

I have updated the Machinekit images to exclude the previously required documentation build dependencies, which saves over 1GB of space on the images!  There is still a lot more room to be recovered once ARM binary packages become available, but for now the space savings means you can comfortably run Machinekit on a 4GB uSD card or the built-in 4GB eMMC on a RevC 'Bone.

Thursday, May 15, 2014


The CRAMPS V2.1 circuit boards are fabricated and heading my way.  I am planning to sell the bare boards for a nominal cost (under $5), but I may get motivated and sell some DIY kits that include all the parts needed to assemble your board.  The kit would probably be around $50-60, which is pretty much my cost for the parts in low volume, and I'd only be able to make about 10-20 kits total (before I run out of circuit boards).

So a quick informal poll:  If you are interested in buying a bare PCB or a DIY kit for the new CRAMPS board, send me a direct email and if I get enough interest kits I'll try to put some together.  Sending me an email places you under no obligation to actually buy anything, nor does it guarantee you'll actually get a kit should I decide to make some.

I am also working on getting someone to build and sell assembled boards, but that is a process that will likely take another couple months.  The kits would probably be available in 2-4 weeks, depending on how long it takes the PCBs to arrive and if I find any problems with the first prototypes.

Saturday, May 10, 2014

Velocity Driven Extrusion

Bas de Bruijn has been working on controlling his 3D printer with Machinekit, and has implemented a unique way to control the extruder.  Rather than make the extruder a fourth axis as is done in most setups, Bas is modeling the extruder behavior and automatically controlling the extruder motor velocity based on the movement of the conventional XYZ axis.

The problem with using a traditional 4-axis coordinated move for extruding plastic is the extruder behavior is non-linear.  Typically not enough plastic is extruded at the start of the move while pressure builds in the extruder and too much is extruded at the end of the move.  This problem is made worse by any changes in velocity along the move, as may be required by the acceleration constraints of the machine.  The retract and precharge settings in most slicer programs help with this issue to some extent, but cannot truly match the extruder behavior.

By dynamically controlling the extruder velocity, Bas can start with a simple linear mapping of movement speed to extruder speed (how a standard 4-axis coordinated move would work), and enhance that by adding terms to compensate for changes in speed and acceleration.  Changing the model used to drive the encoder only requires changes to the HAL file for the machine, allowing complex control theories to be tested quickly and easily without writing code.  Based on the print results Bas is already achieving, it looks like this approach is already working pretty well, and there is still much room for improvement.

Keep watching Bas' blog for updates, and let me know if you are doing anything unique with Machinekit!

Friday, May 9, 2014

Machinekit BeagleBone Debian Images Released

After what has been far too long, I am please to announce a new official release of the Machinekit image for the BeagleBone.  The release of the RevC BeagleBone Black with it's 4GB eMMC and switch to Debian makes the BeagleBone an even better choice for machine control!

There are lots of significant changes with this release, so I recommend everyone using Machinekit updates when practical.  The biggest change is the switch from my "enhanced" version of Robert Nelson's minimal Debian build to generating images based on the official BeagleBone Debian.  That means all the BeagleBone specific features like node.js, USB networking, etc. should work just like they would on a factory BeagleBone.  Of course there are a LOT of changes included with this, like switching from xfce to lxde, changing from sysvinit to systemd, and many others.  On the plus side, the Machinekit images are now very similar to the shipping BeagleBone release, so it should be easier to find documentation and ask for help.

The other really big change is a switch from LinuxCNC to the Machinekit project.  Machinekit enables LinuxCNC's real-time core to operate on a wide variety of platforms, making it possible to run on the BeagleBone.  I had been hoping the required real-time changes would become part of mainline LinuxCNC (and they still might), but they have been passed over for the upcoming 2.6 release.

If you are lucky enough to have a BeagleBone RevC, there is an (untested) eMMC flasher image available as well.  If you would like a tested and verified working eMMC flasher image, feel free to FedEx me your RevC 'Bone!  Otherwise, you'll have to wait until one of the two I've ordered actually arrives for me to test.  ;-)