Monday, September 23, 2013

Another Success


Alexander Rössler and Michael Haberler have gotten Alexander's MendelMax 3D printer working with LinuxCNC running on the BeagleBone.  This conversion has extra significance because Michael is presenting a paper at the upcoming OSADL Real Time Linux Workshop.  Michael will be covering the changes made to LinuxCNC to allow it to run on a variety of real-time operating systems, and Alexander's very nice looking MendelMax will be providing a great bit of real-world show and tell!

If you can manage to be in Lugano-Manno, Switzerland around the end of October, you should register and attend!

And remember to send me details and pictures or video of your machine if you have something controlled by LinuxCNC on the BeagleBone!

Thursday, September 19, 2013

BeagleBone RAMPS Interface

For a long time now, I have wanted an interface to connect a BeagleBone to a RAMPS board to control a 3D printer.  Wouldn't you know, all I had to do was seriously start work on designing one, and a finished project would magically appear on Hack-a-Day:


This looks like a great board, and I hope to get one in soon for testing.  The pinout looks to match the BeBoPr-Bridge setup, which means you should be able to run LinuxCNC from my MachineKit image straight "out-of-the-box".

One potential issue is the thermistors.  The BeBoPr has a different resistor network arrangement than most 3D printer shields/capes (an actual network, vs. a simple pull-up resistor).  It is reasonably easy to compensate for this in the temperature reading python code, but if you used this board without tweaking the temperature code, your temperatures would be precise but not be very accurate.

If you have one of these capes or are otherwise using LinuxCNC on the BeagleBone, please let me know.

Sunday, September 15, 2013

Making chips with MachineKit


While I continue to work on building my linear delta 3D printer, John Prentice has hooked up a BeagleBone running the MachineKit LinuxCNC image to a mill and is making sawdust!  It's nice to see someone else actually moving motors and even better to see John actually making chips on a real mill!

John's mill has a standard parallel port step/dir interface, which he hooked to the BeagleBoard using a prototype cape.  You can see the Axis gui interface and the BeagleBone with cape starting around the 3:00 minute mark in the above video.  If you look closely at the cape, you can see some LS series logic chips to handle voltage conversion from the 3.3V BeagleBone GPIO levels.  While perhaps not strictly necessary (most PC motherboard parallel ports have had 3.3V levels for at least a decade), it's never a bad idea to have some protection between a chunk of silicon BGA with sub-micron features and a milling machine with lots of (electrically) noisy motors and long cable runs.

Kudos to John, and extra credit for making a video and sending me the link!  If you've got a BeagleBone driving actual hardware (3D printer, lathe, mill, or whatever), send me details along with some pics or a video so I can post some more success stories!

Tuesday, September 10, 2013

BeBoPr Bridge Boards Available

In an effort to help promote the use of LinuxCNC on the BeagleBone Black, I am having a medium run of the bridge boards fabricated by OSH Park.  You can order these boards directly from OSH Park if desired, but it's about $20 for a set of three boards, with a 2-3 week turn time.  I will try to keep boards on-hand, so I can ship from stock, and I will try to have connectors available so you can buy them at the same time and save on shipping.

Send me a direct e-mail if you'd like to buy a board set.  Pricing is as follows:
  • $8 BeBoPr Bridge PCB ONLY via 1st class mail.  You provide connectors!
  • $15 BeBoPr Bridge PCB with 2 header and 2 socket connectors via 1st class mail.
  • $20 BeBoPr Bridge PCB with 2 header and 2 socket connectors via Priority Mail.
NOTICE: You are buying only the parts!  You will need a soldering iron, solder, and some wire to fully assemble the boards into a working unit!  Assembly is VERY easy, so if you have soldered electronics before you should have no problem.  Assembly details are available on Bas' github wiki, and you can contact me if you have any problems getting things running.  Bas shows a fancy parallel cable on his wiki, but you can just use plain wire or every other wire in standard 0.050" pitch ribbon cable (which is what I did).

Hint: If you need a short piece of ribbon cable, you ought to be able to dig up an old floppy-disk or standard IDE cable that isn't being used and cut a chunk out of that.

What do I get?


Each package comes with one set of BeBoPr Bridge circuit boards, crafted from Bas Laarhoven's BBR_R1 design which is available from OSH Park.

If you buy the connectors as well, they are from Major League:
Again, remember you are only getting parts!  You will have to solder the connectors to the board and find 10 short pieces of wire (or a small strip of ribbon cable) to use to connect the two boards together.

This is intended for folks in the US, buying the original BeBoPr board from the CircuitCo BoardZoo webstite.  If you are in Europe, you should contact Bas Laarhoven directly.  He is selling the BeBoPr+ with the bridge board functionality already built-in.  If you are interested in purchasing boards for delivery outside the US, please contact me with details and I will figure out shipping costs.

NOTE:  The OSH Park panels just went to fab today (Sept. 10, 2013), so I expect to have boards available in about 2 weeks (around Sept. 24, give or take).

UPDATE: The connectors arrived today (Sept. 19, 2013), and I hope to receive the circuit boards sometime next week.

UPDATE: The PCBs finally arrived (Oct. 10, 2013), so I now have stock of both boards and connectors.  If you have already paid, your order will ship out tomorrow (Oct. 11).  If you are reading this post at some later point in time, I probably have boards and connectors available for immediate shipment, just drop me an e-mail and let me know what you're interested in.

Monday, September 2, 2013

New MachineKit Image Available

I am pleased to announce that a new MachineKit image for running LinuxCNC on the BeagleBone is now available!  This image took a while to put together and there are a lot of things that changed:

Kernel version -bone26.1


This is the latest BeagleBone kernel available via RCN's kernel build scripts (it is identical to the just committed -bone27 kernel except for the version ID of 26.1).  There are lots of updates to this kernel so HDMI and USB should hopefully work a lot better.

Xenomai Updates


I have forked RCN's kernel build scripts and and added the ability to pull in the Xenomai patches directly from the Xenomai git repository.  The provided kernel was built with the absolute latest available version of the arm Xenomai code, which is soon to become the next Xenomai stable release (waiting mostly for updates to stabilize 3.10).  This means you can now build the Xenomai patched kernel used in the MachineKit image completely from the latest source pulled directly from git using a few simple commands.

LinuxCNC Unified Build Candidate


This is the really big change.  The LinuxCNC folks are working towards a 2.6 release, which is slated to include something called the "unified build".  No, not that one!  :)  This unified build allows the same LinuxCNC binary code to run on top of different RTOS systems using a DLL layer to hide the gory details of interfacing to Xenomai, RTAI, RT_PREEMPT, or plain old Posix threads.

The current MachineKit branch of LinuxCNC is based on the 2.5 LinuxCNC code-base, and it is virtually impossible (with a reasonable amount of effort) to merge the unified build code into LinuxCNC 2.5.

Not to worry, the hard work has been done already, mostly by John Morris and Michael Haberler (THANKS!!), but the change does mean there is no easy "fast-forward" merge and the git setup is now fundamentally different.  The alternate Xenomai RTOS work the MachineKit branch has been built on was happening outside the official LinuxCNC repository on a private git server run by Michael Haberler.  The new unified build code is slated for inclusion into LinuxCNC 2.6, and can be found in the official LinuxCNC git repository.  The official repo is also available on github, where I have cloned it and added a MachineKit-ubc branch. This branch will track the unified build branch (and the LinuxCNC 2.6 branch as it comes together) but make sure the code builds and runs on the BeagleBone.  There may also be a few configuration changes specific to the arm or BeagleBone platform.

I will be keeping the MachineKit and MachineKit-ubc branches in my previous github repository up to date for a while, but these should generally be considered deprecated.  If you are not using my pre-built images, please switch to using the new linuxcnc repo as soon as you can.