So it has been awhile since I worked on this project, but I am happy to report that after a few weeks of minor frustration with marlin hiccups I have now started to make big progress again.
My top objectives are:
1. To get a Lulzbot Mini 1 modded (with minimal effort) to have a Prusa Mini removable bed plate system. Done!
2. To continue to use the original stock Rambo Mini 1.1b electronics board, but with a new up-to-date (custom) marlin firmware. Done!
3. To be able to print like I did before with everything centered and adjusted to the correct height for printing on the new removable print bed. And to be able to print with the old Lulzbot Cura 21.08 or the newer PrusaSlicer. Done-ish, but needs tweaking!
Other future modifications may be: An upgrade to a newer Rambo Einsy with trinamic stepper drivers for ultra quiet use. Possible z-axis modifications to be more like a Lulzbot Mini 2. A new extruder design with possible automatic bed leveling sensor pinda probe. Add an LCD screen!
The first major hurdle lately has been trying to update to Marlin 1.9 or Marlin 2.0 with the configuration settings to work correctly with the Lulzbot Mini. I got pretty far along when i decided i wanted to center my new prusa mini bed plate when a print begins.
I ran into a weird Marlin bug where the manual_y_home_pos setting would invert the y-axis stepper motor and crash the machine! I tried reporting the bug to the marlin code people, but no one would help. They just kept asking the same annoying question over and over whether I was testing with the bug fix branch, which i replied multiple times that i was.
https://github.com/MarlinFirmware/Marlin/issues/18479
The “fix” for this came from a helpful tip from my friend who suggested i use the “Drunken Octopus” Marlin fork which was originally being maintained by lulzbot before the awful situation where they nearly went bankrupt, fired over 100+ employees illegally, and eventually got bought out and moved to North Dakota. It worked, so I’m thinking it must come down to some overlooked configuration setting I must have missed??
https://github.com/drunken-octopus/drunken-octopus-marlin
The Drunken Octopus fork is now maintained for lulzbot-type machines by that same former employee and is now also used for the new SynDaver Axi Desktop Printer which is a 70-80% clone of the Lulzbot Taz 6 / Pro series. The SynDaver Axi printer is not entirely open source being a hybrid of open source and proprietary, which is an interesting mix, but I don’t necessarily have a problem with that as long as the original source is available (which is).
In an ideal world I do think some licences like the new CERN-OHL-S Licence are what open source hardware and software should aspire to be. Basically the idea that if you use open source that the whole product from then on and forever will be open source. That would mean no mixing of open source and proprietary. But we do not live in an ideal world (yet). I personally think creative commons licences with non-commercial, no-derivatives, and other restrictive licences are insulting and are NOT true open source. I personally do not honor them because of their inherit hypocrisy. If you want to share your work with the world then do so in it’s entirety or don’t do so at all. I’m not the only one with this opinion, in fact the OSHWA says so as well.
Why aren’t non-commercial restrictions compatible with open source hardware?
There are a few reasons. If you place a non-commercial restriction on your hardware design, other people don’t have the same freedom to use the design in the ways that you can. That means, for example, that if you and someone else both release designs with non-commercial licenses, neither of you can make and sell hardware that builds on both of your designs. Rather than contributing to a commons of hardware designs for everyone to build on, you’re limiting others to a very narrow range of possible uses for your design. In particular, because making hardware invariably involves money, it’s very difficult to make use of a hardware design without involving some commercial activity. For example, say a group of friends wanted to get together and order ten copies of a hardware design – something that’s often much cheaper than each person ordering their own copy. If one person places the order and the others pay him back for their share, they’d probably be violating a non-commercial restriction. Or say someone wants to charge people to take a workshop in which they make and keep a copy of your hardware design – that’s also commercial activity. In general, there are just very few ways for someone to use a hardware design without involving some sort of commercial activity.
https://www.oshwa.org/faq/#non-commercial
Good for SynDaver for swooping in and hiring a bunch of Lulzbot’s former abandoned employees, a hilarious move I must say. You can see why I no longer am supportive of Lulzbot as a company, and Jeff Moe in particular. Funny how Lulzbot created their own competition. Up to this point it was perfectly conceivable that a Chinese (or any) company could clone the Lulzbot series completely like they have the Prusa printers, but up to this point no one ever had.
Anyway, back to the modification project. Things are going well. I have successfully test printed a few times. At first the prints were not centered on the bed, but I finally figured that out. I now am testing manual mesh bed leveling code in the marlin firmware and despite not having an automatic bed leveling probe it seems I can get this to work without one. I have not yet enabled memory saving so as of now i need to level the bed every time I use it, and this slows the whole process down a lot. I probably will enable that next so i can use octoprint again and just click “send print to printer”.
Eventually I want to replace the extruder assembly with one that has a pinda probe. I’m actually thinking I may want to use a Prusa MK3S printhead to keep things compatible with my other build. Not sure whether i will need to make other mods to accommodate that or not. I will at the very least need a cable adapter. If / when I do that I will most likely swap out the Rambo Mini for the Rambo Einsy (that i bought from Ultimaker) for the trinamic drivers and LCD support.
I came up with what I think is a pretty clever mounting system that still is fast, easy, and a complete drop-in replacement with no major modifications to either the prusa hardware or the lulzbot hardware. The only modifications needed were a small adapter for the heatbed cable and thermistor wires, and some countersunk holes on the bottom side of the prusa mini bed plate. The rest were 4 3D-printed ninjaflex corner mounts that hold things together quite well. I have posted the files on Thingiverse & soon to YouMagine.
https://www.thingiverse.com/thing:4604335
I am happy with how this mod has been turning out. I have tried to do it step by step with as few mini mods as possible so that it could perhaps be done by anyone, with any version of a Lulzbot Mini (1 or 2). I have tried not to stack the mods so that if one person wanted to repeat my process and only do just the bed replacement on a really old Lulzbot Mini 1 without changing the electronics or the extruder print head then that would work. On the other hand if someone wanted to do this on a Lulzbot Mini 2 or in combinations with other mods, those could probably work fine too. The firmware does need to be replaced regardless though as the bed height is higher than the old one and no bed leveling probe is currently installed so major z-axis crashing would occur.
I at least have a fairly up to date version of Marlin working decently well now. It uses the Drunken Octopus fork and is fairly up to date with Marlin 2.0 and other upstream changes. So in many ways this firmware is an upgrade to what was on my mini before I started and can only improve. I want to double check motor settings for speeds and feedrates to make sure I have things optimized as best I can. But otherwise it seems to be working well with a properly tuned slicer.
I have also officially abandoned the Lulzbot Cura 21.08 slicer. I was using the old Lulzbot Cura 21.08 instead of the newer Lulzbot Cura 2 because the older software just ran so quick compared to the new one and frankly I thought the new one sucked and looked like crap. I still do if i’m honest. But since I no longer have a stock Lulzbot machine anyway I figured I would give the newest version of the Ultimaker Cura a try. I was pleasantly surprised!
Not only is the Ultimaker Cura more up to date and more polished than the Lulzbot fork, it comes in a better Linux package than the Lulzbot version that is not up to date with needed dependencies on my newer PopOS 20.04 laptop. So I literally could not even install the Lulzbot skinned version of Cura 2 on my Linux machine. Once I set up a custom printer in Ultimaker Cura I was pleased to find it worked great! It even made the motors twice as quiet! I tinkered around with trying to use PrusaSlicer to slice and control the lulzbot mini, but i have not figured out the best settings for the motors quite yet. I got it to work once, then it reverted to it’s default motor settings and sounded terrible. Since Ultimaker’s Cura worked flawlessly with no motor adjustments and the motors were so quiet compared to the old Lulzbot Cura 21.08 and PrusaSlicer (for now), I will be using Ultimaker’s Cura until I am ready to tinker with PrusaSlicer again.