Driving SeeMeCNC Rostock Max v2 3D printer with BeagleBone Black and BeBoPr (not BeBoPr+ or bridged)

John Oly and I spend a few hours this weekend putting together a SeeMeCNC Rostock Max v2 with BeagleBone Black and BeBoPr. We still have a few things to work out, but I wanted to jot down some notes here.

I don’t like complicating the board interconnect and don’t care about getting HDMI/LCD at the same time, so we didn’t use a BeBoPr-Bridge. We used a BeBoPr because CircuitCo had made a few [1], I had one laying around and there is firmware for using the PRUs to drive the steppers thanks to Charles. I’d be inclined to use a CRAMPS or Replicape, but I don’t have a populated CRAMPS and it seems the firmware isn’t as readily available for the Replicape. The BeBoPr documentation is lacking, but there was enough out there to get what we needed done without much hassle.

I’m going to jot down some things I need here to reproduce this, but this first post will just be an overview of the issues encountered and I’ll come back with the details. So far, we’ve got motion control [2] running fine, homing and heating element control (bed, extruder). Before we can print, we need to address fan control, perform leveling and work-around some GCode quirks.

We started with Robert’s Debian images[3], the Feb 1st image to be precise [4], written to a 4GB uSD card. uEnv.txt was edited to disable the eMMC/HDMI/HDMIN capes.

We started with the BeBoPr configuration that Charles did. It turns out he had a small error in the overlay [5] that caused the Z enable to be on all the time because it was configured to be controlled by the PRU, but needed to be controlled as a regular GPIO. This didn’t have much impact, but we cleaned that up. Make sure to rebuild the .dtbo and put it in /lib/firmware.

Wiring up the motors was fairly straight-forward. We reversed whatever was needed to get them going in the right direction. The dip-switches needed to be set for the 1/16th micro-step-size for the Pololu TI DRV8825 drivers we are using [6]. We had to adjust the ini file to get the timing right for talking to the stepper motors [7].

To configure as a delta printer, we stole configuration from the lineardelta configs for BeBoPr-Bridge [8]. It wasn’t so obvious what needed to be adjusted here, but the ‘loadrt’ line [9] seems to be the main switch to flip the mode, then it came down to more details required by that configuration, namely the DELTA_R and CF_ROD configurations in the ini.

Before we could do anything useful in delta mode, we needed to perform a homing and that meant setting up the home/limit switches. We borrowed configuration from the CRAMPS setup [10] but used our GPIOs. We only have max limit switches on this printer.

We stole a few command implementations out of /usr/share/linuxcnc/nc… and had to put them in our home configuration. This was very informative to see how new GCode commands could be implemented for controlling device-specific configurations.

I’m sure I’m forgetting something that John will point out, but that summarizes most of what I can recall we did to get this printer moving and heating nice and controlled. [11] shows the current wiring.

Because this printer was wired with common-positive for the fans shared with the positive line for the extruder, I need to run separate positive supply lines to keep the fans enabled. The fan control also still needs to be added to the HAL/INI.

BTW, as of publishing, I’m still pointing to the old values. I’ll upload the new content to github soon and most people reading this will see the updated info. I need to get everything setup properly after I get home to upload that stuff, but wanted to get most of the thoughts down about what needed to be documented now before it all left my head. :slight_smile:

[0] https://plus.google.com/102344295024422039483/posts/aCAYF5xCUuk
[1] http://boardzoo.com/index.php/bone-bebopr.html
[2] Vine
[3] http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#BBW.2FBBB_.28All_Revs.29_Machinekit

[4] https://rcn-ee.net/rootfs/bb.org/testing/2015-02-01/lxqt-4gb/BBB-eMMC-flasher-debian-jessie-lxqt-4gb-armhf-2015-02-01-4gb.img.xz

[5] machinekit/BB-LCNC-BEBOPR-00A0.dts at master · jadonk/machinekit · GitHub
[6] Pololu - DRV8825 Stepper Motor Driver Carrier, High Current
[7] machinekit/BeBoPr.ini at master · jadonk/machinekit · GitHub
[8] machinekit/lineardelta.ini at master · jadonk/machinekit · GitHub
[9] machinekit/lineardelta.hal at master · jadonk/machinekit · GitHub

[10] machinekit/CRAMPS.hal at master · machinekit/machinekit · GitHub
[11] https://plus.google.com/102344295024422039483/posts/NLXCa7VSpCv