CNC Translator for BeagleBone

The Rosseta Bone is a “universal” CNC translator for BeagleBone Black.

Rosetta Bone

The BeagleBone is awesome little controller.  It is a lot like the Raspberry Pi, but it has one special feature that makes it viable for CNC.  It is the PRU.  This is Programmable Realtime Unit.  This a part of the CPU that runs separately from the OS and gives it the critical timing required for smooth stepper motor control.  People have tapped into this and LinuxCNC to make a real embedded version of LinuxCNC.  Add in all the other capabilities like HDMI, keyboard, mouse networking, etc and things get amazing really fast.


I bought the BeagleBone Black which is the second generation BeagleBone.  It has more features than the original “white” version and actually costs less.  There are several CNC capes for the BeagleBone, like the BeBoPr or Replicape, but they are expensive, can be hard to get and some have issues with pinout changes that came with the BeagleBone Black.

BeagleBone CNC

To start experimenting, I just wired a simple Pololu stepper driver to one of the step pins defined in the Machine Kit version of LinuxCNC for BeagleBone.  It worked right away, but the setup was kind of messy because I had to wire logic power, ground, motor power and jumper out sleep and reset.  I did not even deal with microstepping or direction.  With that said, it was still only a 10 minutes to hook up for one motor.  When it came time to add other motors, I decided to use an old RAMPS 3D printer shield as a carrier for the stepper drivers.  This would take care of most of the housekeeping and voltages.  All I had to do was deal with step, direction and enable.  It worked great and we used for several demos at Pumping Station One.



The RAMPS shield is an old design and can be had for less than $20 these days on eBay.  I always buy mine from Ultimachine as a thanks to Johnny Russel who designed the original one.  Most old school reprap 3D printer guys have one laying around somewhere.  I though it would be cool to make an adapter for it.  While I was at it, I though I would make it compatible grblShield and parallel port.  There are a lot of stepper driver boards with a 25 pin D connector like the Gecko G540 and cheap Chinese stepper boards.





Logic Voltages:

The BeagleBone uses 3.3V logic, but does provided both 3.3V and 5V on the connectors.  I have a jumper on the cape which allows you to choose which one you want to use.  So far I have used 3.3V without any problems.

Motor Enable: 

When trying all the various things this can connect to, I found I often had to hardwire the enables to turn the motors on.  I provided a jumper that does this.  In most cases, I eventually found a firmware method, but this is a nice quick work around.

PCBs & Sources

I have about a dozen raw boards.  I you want one, post a comment and I will get back to you.  If you are actively working on BeagleBone LinuxCNC I might send it free.  I will probably post the gerbers soon.

Schematic:  B32020_rev_1



Share and Enjoy:
  • Print
  • Digg
  • StumbleUpon
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks

40 Responses to “CNC Translator for BeagleBone”

  1. Hassi

    That’s a real neat Idea, as always!
    I would like to get gerbers 😉
    Greetings from Germany

  2. Michael Peele

    I was wondering how long it would take for a bone to show up on buildlog.

    We stated with a bare metal Luminary based controller for our Buildlog 1x laser. We chose the Luminary because it had a ethernet interface and would allow us to avoid all of the USB/Parallel port issues with different OSs. Now that it is working(well at least usable) we are in the process of redesigning the motion controller for the Beaglebone. What really interested us in the bone was its PRU.

    We have taken a different approach from the ones you mentioned in that we have a Java Netbeans Framework application which converts G-Code and raster image files to a motion/tool control messages which are executed by the motion control application running on the bone.

    When we get a bit closer with the bone I’ll put up a build log.

  3. bdring

    @hassi, the gerbers will be posted as soon as I finish testing them. I’ll bring all the raw boards to Maker Faire. Grab me if you want one. I’ll be the one who is completely unidentifiable 🙂

  4. bdring

    @Michael Peele,

    That sounds great. I look forward to seeing the results.

  5. BeagleBone Black does CNC with RAMPS

    […] a CNC with his BeagleBone black, but didn’t want to invest in a CNC Cape. No problem – he created his own translator board for RAMPS. LinuxCNC for the BeagleBone Black has been available for a few months now, and [Bart] wanted to […]

  6. BeagleBone Black does CNC with RAMPS - RaspberryPiBoards

    […] a CNC with his BeagleBone black, but didn’t want to invest in a CNC Cape. No problem – he created his own translator board for RAMPS. LinuxCNC for the BeagleBone Black has been available for a few months now, and [Bart] wanted to […]

  7. rndm(mod) » BeagleBone Black does CNC with RAMPS

    […] a CNC with his BeagleBone black, but didn’t want to invest in a CNC Cape. No problem – he created his own translator board for RAMPS. LinuxCNC for the BeagleBone Black has been available for a few months now, and [Bart] wanted […]

  8. BeagleBone Black does CNC with RAMPS — Blog of MPRosa

    […] a CNC with his BeagleBone black, but didn’t want to invest in a CNC Cape. No problem – he created his own translator board for RAMPS. LinuxCNC for the BeagleBone Black has been available for a few months now, and [Bart] wanted to […]

  9. Troy

    Nice board. I’ve been working with a BBB and LinuxCNC for a few months now, and really like it for both pcb milling and 3d printing. Currently I have a rat’s nest of wires that do the same thing as your board! I was hoping that I’d see some kind of isolation in the design (or did I miss it)? That’s the next step for my control, as I’ve already killed two Blacks so far.

  10. Charles Steinkuehler

    Awesome job! I had given up on someone making one of these boards and started designing one myself…THANK YOU for sparing me the trouble!!! 🙂

    Based on the schematic, it looks like the board is setup to work with the BeBoPr-Bridge pinout, which is supported out-of-the-box with my MachineKit image (mentioned above, but not linked to):

    Are PCBs available for purchase, or are the design files available?

  11. bdring

    This was setup for the BeBoPr pinout so the Machine kits works right out of the box.

    Isolation is a good point. There is no isolation, just like a RAMPS on Mega

  12. Charles Steinkuehler

    Isolation is important for “real” milling machines, but not so much for a 3D printer. With something like your board, the isolation is typically done after the DB25 aka “parallel port”. Obviously most standard PC parallel pots are not galvanically isolated 🙂 , so this is handled by the motor driver or break-out board at the far end.

    I’d love to get a PCB. Do you have some for sale or available via OSH Park shared designs or similar?

  13. ดัดแปลงเพื่อต่อกับ 3D Printer | BeagleBone Lover in Thailand
  14. Kevin

    I’d like to toy around with this board. I’ve been really disappointed with the linuxCNC folks and their rejection of embedded hardware and was positively surprised when I read about a solution for the BBB.
    I already own a RAMPS and a GRBL shield and tested them only with an Arduino Mega on a crude wooden 3D printer (wolfstrap). Now I want to convert my manual desktop mill to CNC and the idea of needing to buy an old compact PC just for the parallel port really annoyed me. If latency-free stepping pulse generation is so important why NOT move it to a embedded platform? I don’t get it…

    Thanks Bart and Charles et al. for solving this problem.

  15. Gene Buckle

    If I’m understanding correctly, the configuration you’re using consists of the Beagle Bone Black, your special adapter board and then a standard RAMPS board?

    Would it be possible to use just your adapter board and a BBB in order to drive the parallel controller of a MaxNC-10 desktop mill? The one I have has been sitting idle for years due to the hassle of digging up a parallel port equipped machine.

    I’d love to get one of those adapter boards from you if this is the case.



  16. bdring

    The 25 pin d connector is designed to look like the parallel port output of a PC. I used the most common step, dir setup for the boards that typically connect to a PC. This is just to simplify the wiring to those types of boards.

  17. bdring

    I am off to MakerFaire NY. I’ll bring all the raw PCBs. If I see any BeagleBone CNC folks, I’ll offer some free boards. If you are there and want one, tweet a request sometime on Saturday to @buildlog and we can hook up. Don’t tweet before that, because I won’t have clue of a good time and place to meet.

  18. Ed

    Bart, looks like you have similar ideas to Rosetta Shield.

    Maybe we will cross paths at Maker Faire.

  19. John Silvia

    I’d like to request one of your boards.

    A colleague and I are working on a linuxCNC package. My responsibility is to develop code for controlling some of the real time aspects to run on the pruss subsystem. The code will be open sourced. Something like your design could really help in testing.

    Either way, thanks for your work.

  20. Charles Steinkuehler

    I was reviewing the schematic, and noticed the thermistor leads from the RAMPS board are directly connected to the analog inputs on the BBB. The BBB analog inputs are rated for 1.8V max, and the RAMPS board will pull these signals up to 3.3V or 5V (depending on JP1)!

  21. Hassi

    @bdring: Of which Maker Faire are you talking about?

  22. Florian

    do you have an adapter pcb left? I’m developing for a 3D-printer startup ( and want to do some tests with the BB Black and RAMPS. Please contact me.
    Thank you. And Greetings,

  23. Toby

    Just ordered a Beaglebone Black to try this running my Shapeoko. Thanks for the links!

  24. kmzero

    Hello Bart,

    I have just one question, is this CNC translator board compatible with your Stepper Driver Arduino Shield, because i have one and i want to use it with an beaglebone black after you post the gerbel files for my Shapeoko.(or could i get one bare board in Romania)

    Thank you

  25. Darrell

    I would like to purchase a bare pcb if you have any left and take paypal.

  26. CNC Translator for BeagleBone « adafruit industries blog

    […] CNC Translator for BeagleBone […]

  27. Bob Weiss

    Nice work! I have been using LCNC and BBB with BeBoPr and bridge to control my delta style 3d printer but would love to use this setup for my CNC machine. What are the chances of purchasing one of the PCB’s from you?


  28. James Harper

    I came across your post while looking for exactly this product. I would love to buy one of these boards and if they are all gone would appreciate being on a list to help pay for the next run.

  29. Brian Morel

    Any update on availability of this? I don’t need the ramps shield, but would love the parallel port breakout.


  30. Shane Morris


    This is amazing, I would love to get a leg up on Beaglebone Black LinuxCNC in order to control a Proxxon MF-70, as recommended to me by a friend in the Ukraine.

    I was wondering if you if you still had any of the test boards you had made up, or if there was any chance to get more made up?

    Many thanks!

  31. arteq

    I would like to purchase a pcb.

  32. Neo

    I am a newbie in embedded field, now willing to build my 3D printer by BBB with LinuxCNC, I am using Rambo board before, and I have some old RAMPS as well. Would you pls share your gerbers with me? Thank you.

  33. bdring

    I’ll try to post the gerbers soon. You need to do a little tweaking when using RAMPS to deal with the 1.8V analog of the BBB. If you are in Illinois, watch the W88 hackerspace blog. I will be out there showing it off soon.

  34. Andrew


    I saw this post a while back, and have quite a bit of curiosity. I’m currently running a Shapeoko with GRBL but am running into some of the limitations, especially with regard to homing, touchplates, and multiple tools. I’m extremely interested in this as a replacement that will allow me to use the stepper shield and Pololu drivers with a Beaglebone Black.

    Are the gerber files about ready, or do you still have boards for purchase?

  35. Mick

    Still having good results with this? Were you going to still post the gerbers?

  36. Kellerkind

    any news on the gerber files?

  37. Mars

    Hey, would like to get a pcb, if still possible. Nice build

  38. Paul

    I am building out a CNC with my BBB and was very happy to find your page. I’m interested in a board if you still have some available.


  39. Ed Betlinski

    I am presently building an OX OpenBuilds CNC Router. I was planning on building a RaspberryPi alamode CNC grbl controller as outlined in an Instructable. However, the BBB is more powerful and from what I read can use LinuxCNC and has a parallel port, with your board. Many people have advised me against using the pololu drivers since they only go up to 2.2 amps and my motors are more. Being able to use LinuxCNC with a Gecko driver board and a BBB with say an LCD with a few other goodies sounds like a nice compact controller package without using an external computer. Where can I purchase one or more of your magnificent boards. I hope I did understand that your board will do what I’m thinking. Please send me details.

  40. Marc

    which linux CNC config can i use for this setup? Thx for publishing will the gerber files also be released?