grbl CNC Firmware Ported to Printrboard

If you want to use your RepRap for CNC use, such as milling PCB’s, regular 3D printing firmwares might not be ideal. For instance, Marlin is not able to handle the slow step rates used for CNC work.

I have ported grbl, a firmware specifically for CNC use (from which Marlin derived its acceleration routines), to Printrboard and Teensylu. You can download it from my fork at:

32 thoughts on “grbl CNC Firmware Ported to Printrboard”

      1. I would also be interrested.. I’d like to make it run on Sanguinololu, with latest grbl.
        I had a look on sources, diffing most recent grbl with your port, but there are so many changes…

        What did you change to allow grbl to run on ATMEGA644P? Can you point me some directions?

  1. Sorry, my question was not clear enough. I would like to bakport the corrections you’ve made on grbl to the latest GRBL.

    What did you change to allow grbl to run on ATMEGA644P? Can you point me some directions?

  2. Is it possible to explain which file in the github archive is supposed to be used with the printrboard, and uploaded using the CDC bootloader and arduino 022? I have no experience and to the best of my knowledge every single website with any info about the printrboard gives no explanation of how to actually compile in the arduino IDE. All the arduino IDE tutorials I have seen are no help. It seems as if it is looking for a .pde or .ino file, and I find none in the archive. I also have no experience with HEX files. I hope that makes sense. I realize I need to load “something” and then compile it and then upload to the printrboard. I have no idea. thanks,

    1. If you want to just load grbl I can send you a HEX file which can be uploaded with avrdude, so you don’t have to bother w/ arduino

          1. I got it thanks. I notice it’s not compatible with the newer versions any chances of updates?

          2. Not at the moment, but I’m planning to build a CNC this year… I’ll update it when I get around to that.

  3. that would be great. My gmail is orangezeroalpha. I have two boards, and the revB seems to stay in “CDC bootloader” mode with and without the jumper and resets (in linux and win7, so doesn’t seem to be a driver problem, as the revD board works fine in both). I’ve tried Pronterface and Repetier on linux and win7 as well, and only the one is recognized.

    I’m unsure if I just can’t figure it out, or if there is some hardware problem with the second board. I don’t know much, but my guess is that perhaps there was a bad flash so the firmware that shipped with the board is simply not functional. Make any senese? So, I’m not quite sure if even the avrdude will work. But I’d love to try… thanks.

  4. Just a point of information, I was unable to successfully compile using the Printrboard make file in Ubuntu 64bit 13.04, while the Arduino and Sanguinolulu make files did compile correctly. I reattempted it in Ubuntu 64bit 12.04 and was able to compile the HEX file without issue. (I was still unsuccessful in getting the firmware flashed, and may do some reading as to whether there are any windows alternatives to allow CDC firmware flashing)

    Hope this saves someone some trouble in the future. Thanks for making all of your work public.

  5. First of all thx for your work lincomatic 😉
    My Problem is that i always get the message from GRBL Controller “No Datan from COM port after connect” :/ My Printrboard is Rev D. and I can successfull compile and upload the hex-file and also tried your uploaded hex-file without success. Also tried every Baudrate and now I m running out of ideas what could be wrong 🙁 Anybody out there who can help please

    1. If you are able to read a message from GRBL on your serial port, then the serial connection is working, at least for output, so your baud rate is not the problem. Beyond that, I really can’t help you, because I haven’t seen this message.

  6. Great work here!
    Are there any plans to update this for working with GRBL V0.8 or 0.9? I’d love to drive this using and it only supports teensy and GRBL right now. Admittedly, I’m not sure what the differences in the versions is, but I assume there’s a reason for it. Also, would I have to flash the board again when I want to change back to 3D printing for controlling the hotend and bed?

    1. GRBL doesn’t support FDM printers. You need to swap out your firmware if you want to drive a FDM printer

  7. In a previous comment you mentioned building a CNC machine and possibly updating this code. Any new plans? I’d love to use 0.8 or 0.9 GRBL and I’d be willing to code some myself as well.

    1. I never built a CNC in the end, but I did update it once. The new code just added support for things like liquid coolers, etc, which I don’t have, anyway. Since I have no use for GRBL anymore, I have no plans to update it. Sorry.

  8. I am wanting to try and run this ported version of grbl on a Printrboard Rev F5, and based on the dates that I have seen from posts here, it looks like you made the original port for a Rev D board or so. Can you point me to what I would need to modify in your code to make it work with an F5 board? Thanks!

  9. Mainly just pinouts for things like sd and what pins are on the expansion headers. In the end, nothing that has to do with moving motors and such, which would be needed for a cnc. I’ll give it a try and see how it goes.

  10. I am unable to communicate with Printrboard once I flashed the grbl hex. If I use Grbl-panel i can hit move and it sits there and puts power to the motors but does not move. Are there other changes I need to make to set this up right. I am running Rev D from an old LC V2. Also how do th end stops work. i cannot find much on line about how all of this works, at least not in reguards to printrboard.


  11. Hi,
    I’m trying to build a CNC machine using a Printrboard Rev D, but I’m running into a few issues. First here’s my sequence of events:

    1. I put the Printrboard into bootloader mode using a jumper, then I flash it through USB, using Atmel Flip 3.4.7, with the “grbl-Printrboard.hex” file from Github.

    2. I restart/replug the board in standard mode and open UGS. I then connect to COM10 with an apparent baud rate of 9600 (I’ve also tried 115200), but nothing moves. Clicking on firmware settings just returns an error saying “grbl has not finished booting.”

    I am completely lost. Do I need to do something with Arduino? Or am I missing something obvious? Any guidance would be deeply appreciated. Thanks

    1. Hi,
      Open up a serial terminal emulator (such as PuTTY) with baud rate 115200, and try typing gcode directly into the Printrboard, and see if it responds at all.
      I think you should probably see text coming out during boot up of the Printrboard, as well.
      Sorry, I haven’t worked with this stuff in ages

Leave a Reply