Prusa i3 MK3 PiCam v2 X-Axis Motor Mount
What is this?
The goal here is to mount a Raspberry Pi Camera v2 to the X-Axis motor of the Prusa Research Prusa i3 MK3. This will allow the camera to move up the Z axis as printing, which should make for nice time lapse videos and allow a visual of the extruder while checking the live feed to look for potential issues.
The arm is thickened significantly compared to others to allow for a couple of ~10mm wide (so a total of ~20mm wide) LED light strips to be attached directly to the arm. This should provide a much more even casting of light across the printed part.
Where did it come from?
I like the idea of the X axis motor mounted camera arm from dragsterbox here and the arm extender from Mososokruppe here, and it's currently printed out and ready to go for my use (I printed a couple of Mososokruppe's extenders actually), just waiting on a PiCam ribbon I ordered that (should) be long enough to show up. While I was test fitting the parts I thought about how the print area will be lit, and while goofing around with my desk lamp realized some LED light strips might make the difference I'm looking for.
What's the plan here?
The cut outs in the arm are intended for zip ties to keep the LED strips in place (I never trust the stickiness of the tape on the back of these long term), although it should help reduce the mass of the arm a bit, too. I threw together a pretty generic mounting bracket system to connect the arms together: a couple holes for using screws and nylock nuts. An M3 screw should work for connecting each arm together, 16 to 20mm long. I considered placing an M3 nut cut out but decided against it, as leaving it "free floating" should allow for much easier minor adjustments to the camera angles. I kept dragsterbox's PiCam enclosure and rotating mount, and used the shape of his mounting arm as a guide for the main arm here.
- Main arm: Required, mounts to the X Axis motor so the camera moves up the Z axis as printing.
- Extender: Optional, I prefer the camera being a bit further out from the bed and closer to the front left corner of the bed.
- Camera mount arm: Required, this is where the camera sits. This arm is shaped a bit differently on the end to allow dragsterbox's enclosure and rotating mount.
4: Camera case and mount: This is dragsterbox's enclosure and mount directly, including for ease of download.
5: "Altogether": A couple STL's of the parts for the arm all together (if you already have dragsterbox's stuff printed), and another of all the parts together.
- M3 20mm screws and M3 nylock nuts: These will be used to connect the arm segments together. 16mm might work for some spots.
- LED Strips: The LED strips I got are from Fry's, Omni Lighting Systems Home Accent Series Kits. I got a Y split/extension cable to go with it, and the plan is to route the extension cable around the back of the arms, down the frame, and out the back to it's control box/power adapter. Almost any LED strip of the right length should work here as long as it's flexible and 10-20mm thick. I'm doubling up on the 10mm strips to increase the amount of light. RGB definitely isn't necessary but a nice to have in my opinion as different color filament might look nicer with different lighting.
- Depending on where you mount your Pi, a decently long PiCam ribbon cable. Mine is 1 meter. Amazon link: (http://a.co/d/ipKorKB)[http://a.co/d/ipKorKB] I could have gone shorter, but I'd prefer having a tiny bit more slack than necessary than not enough.
Rev1 parts keep the camera lower and provides an excellent view of the extruder. Rev2 brings the camera up high enough so it's looking down at the build plate more. Rev1 is great for checking a live feed to ensure things are printing right, Rev2 is better for timelapses. I can't help but recommend printing both, try them out and see how you feel about it.
My Slic3rPE settings:
For the arms: 3 perimeters, 30% infill. I want the arms themselves to be rigid. STL's should be setup so the arms print flat, which keeps the layer lines running in a way that should help reduce seperation due to vibrations and hold up to types of motion it should experience. No supports are necessary in this orientation, either.
For the camera parts: I'd do 2 perimeters and 10-20% infill, whatever floats your boat (or 3DBenchy... eh? eh? Bad joke? K I'll see myself out)
To start, I didn't notice until after I started uploading the pictures of it mounted that one of the LED strips was off. It was plugged in wrong. Whoops! Fixed it, and you may guess but it's a good bit brighter now.
- Front view of camera with arm fully installed and functioning (ignoring that one LED strip that I didn't plug in right).
- Timelapse recorded with Rev1 installed: https://youtu.be/AeQpy1RO2DE
- Here you can see the slack in the PiCam ribbon at the joints better.
- Wider shot of the arm and my attempt at managing the cabling.
- I try to keep wiring as tidy as possible but the PiCam's ribbon doesn't like being tied up when moving up and down the Z Axis. I let it hang loose and tried to keep everything else tighter.
- Pictured during install, ths is my test fitting.
- To reduce confusion hopefully, here's the exact placement of each arm segment.
- Another picture during test fitting.
- I'm likely going to raise this camera mount position all the way up to regain that few millimeters worth of camera angle. I didn't think the LED strip would extend so far out with the slack I was hoping to give it at the joints but ultimately I prefer having lighting right under the camera to hopefully give it more direct lighting at what it's pointing at.
- This is testing the LED's to ensure they were working and also trying to route the cables as smartly as possible. These strips are bright enough I didn't notice only one was on.
- View from Octoprint Control tab during the first layer of my first print after installing.
If you're printing this on a Prusa Mk3 like me, you shouldn't need any supports and .2 resolution should be fine. If you're printing on something else, you may need to plan accordingly.
The parts for the camera itself can be printed with lower infill and perimeters. 15% and 2 should be good.
How to Install
You should not require supports to print this unless you change orientation. Besides maybe clearing stringing from the holes if your printer isn't tuned just right there should be no need for any real work here besides putting it together.
I recommend putting the arm together and installing your PiCam before mounting it to your printer.
- Use a 16-20mm M3 screw and M3 nylock nut to connect the main arm to the extender, and another to connect the extender to the camera arm. Note: The extender is optional. I prefer it for removing the camera further from the print surface, giving a more full image of the print. Tighten the screws to a point where you can move the arms pretty easily but they mostly hold in place on their own.
- Insert a nylock nut into the camera rotating mount (the vaguely U-shaped piece). There's a M3 nut sized insert, I had to use pliers to get it in place. Insert a 16mm M3 screw from below the arm, tighten to the point where you can just rotate the camera.
- Now's a great time for a test fit. Take the front of the PiCam case (with the single square hole in the middle) and loosely mount it to the rotating camera mount. Just a single screw, don't put a nut on yet. Use a 16mm M3 screw to mount the main arm to your X-Axis motor or hold it in place by hand. For the best view long term I recommend getting the extruder roughly in the middle of the X axis. Take a peak through the front camera case's square hole and adjust the arms and camera until you're happy with how it's angled at the extruder. The idea of having it in the middle is most prints will be centered and you'll get the best view for most objects you print now without having to make lots of adjustments later. When you're happy with the angle of all arms and the camera tighten all the screws and nuts into place. I tried to tighten things to the point where they don't move unless I'm putting in some effort.
- If you didn't remove the arm to tighten the screws, go ahead and do so now so we can get your LED strip(s) in place. I recommend starting at the angle of the main arm, putting a single zip tie in place, then working towards the actual camera mount. Attempt to allow some give at the joints by letting some slack build up before putting the first zip tie on the next arm segment. Depending on your LED strip this might be easier or harder than it was for me, but it turned out ok. This will allow you to move the arms to make minor adjustments later without damaging the strips. You probably only need 2 zip ties per arm segment, just enough to hold things in place. Test your LED strips to ensure you didn't damage them in the mounting procedure.
- Depending on where/how you're mounting your Raspberry Pi, you can either mount the arm to the X Axis motor then the PiCam to the arm, or the PiCam to the arm then the arm to the X Axis motor. It might be easier to mount the camera with the arm off the printer or not. Up to you.
- You're basically done. Plug it anything that's not plugged in, move the axis' around to see how the arm's doing, check how it looks in Octoprint (I had to flip my camera horizontally and vertically on Octoprint, and I forgot to set it up in Octolapse before I started a print but I think you can rotate it there, too?), use a PiCam focus tool to get things looking good (I got mine to the point that I can read the text on the extruder motor), etc.
Tinkercad to the rescue
I loaded dragsterbox's parts into tinkercad, dropped in a couple boxes to reflect the size and angles needed, then cut his arm up so I'm using the bit that actually mounts to the X axis motor. You can see the tinkercad version here: