2GodBDGlory Posted March 16 Posted March 16 Well, this project is a bit outside the typical scope of this forum, but I think it's an interesting combination of Lego electronics and 3D printers, and I just wanted to post it somewhere, I guess! Moderators, if you think it's not Lego enough, feel free to move this to the Technic Pub So, this project started when thinking about ways that my cheapo self could acquire a multicolor 3D printer for dirt cheap. Of course, none of the commercially available multicolor printers were dirt cheap enough for me, so that meant DIYing something. The trouble with that, though, is that you're going to need more motors, and my old Ender 3 doesn't have any extra motor outputs. Sure, you could upgrade to a mainboard with more ports, but those all seemed prohibitively expensive as well. Then I got thinking, what if I could use a totally separate device to control color changes? An Arduino might be the default option for something like that, but that would probably require some outlay to let one run the more powerful motors I'd be needing, and then I'd have to actually learn how to program an Arduino! But you know what I already own and know how to program, and has powerful enough motors? A Lego Mindstorms EV3! After settling on that, the main question was how to get the 3D printer to communicate with the Mindstorms. Maybe it could theoretically be done via some digital protocol, but that's high-grade software stuff, and I'm a hardware guy! Instead, I installed two Mindstorms sensors on the 3D printer: One touch sensor that could be activated by moving the print bed all the way forwards, and one color sensor that could be activated by four different colored squares I printed and stuck to the bottom of the bed. The principle of operation, after the printer decides it needs a color change, is as follows: (Or go down to the video at the bottom) 1. Ram the print head against the right side of its movement range to activate a filament cutter I modeled and 3D printed (Using a Lego spring!) This feature was removed after proving unreliable, but the lack of it was similarly unreliable... More on that later. 2. Retract the filament far enough up to make room in the 4-into-1 splitter I printed and mounted in the bowden tube 3. Run the print bed to the front, hitting that touch sensor, putting it into a "wait for color selection" mode 4. Move the print bed to a position with a colored square above the color sensor, telling the Mindstorms to work to activate the proper extruder, from 1 to 4 5. Run the Mindstorms motor mounted in the upper unit. This ran a Lego worm gear to a 3D printed 40T gear copy, which then ran a random Allen key as an axle, which rotated four different cams on a shaft. These cams would press against three of the four extruders at any given time, deactivating them by preventing the idler wheel from pressing the filament against the extruder drive gear, and leaving only one of them under tension. (Note that some things are broken in these pictures, such as the mounting points for the two springs on the right) 6. Move the print head over a wiper/purge chute 7. Extrude filament until all of the old color has been purged out 8. Continue print I should also explain how the upper extruder drive unit works. I've just got the original extruder stepper motor hooked up to an AliExpress "Lego" planetary hub for convenient reduction. This then rotates a screwdriver (Which had a convenient 5mm shaft), on which were mounted the four extruder gears. This sounds like an absurdly complicated system, and, well, it is! In the end, reliability just wasn't where I needed it to be. First the filament cutter wouldn't work all the time. Then I removed it, but then the un-cut molten blobs of filament would jam once in a while. On top of that, the Mindstorms would inexplicably quit its program during prints, and there just tended to be a lot of mess floating around from the purge cycles, that didn't get cleaned off. In the end, I guess I just got tired of the hassle, and decided that I should probably convert it back to a simple, reliable, single-color setup, which I have now done since filming. It's a sad decision to make, but I still think it was a super interesting project, and I think my expenditure on parts was under $20, which isn't too bad! Anyways, this has taken up quite a bit of time over the past year, but not all of it, and I've got more Lego projects coming! I hope this is still interesting to people despite being only tangentially related to Lego... Quote
grum64 Posted March 17 Posted March 17 I’ve read this twice and still don’t entirely understand it but that’s a lacking on my part not your explanation. However I understand enough to know there’s undoubtably some very clever thinking behind it. Personally, I wouldn’t know where to start with something like this. Quote
Toastie Posted March 17 Posted March 17 Wow! What a wonderful project! All the complexity, all the challenges, the way you tackled these, the many partial solutions, attempts, retries. This project is a perfect example of how research, serendipity, clear analysis, persistence, documentation >certainly< would have eventually led to a working prototype. You decided to stop the project, because the sum of issues, at this budget level, told you to do so. That is totally fine. However, I don't like the term "[Failed]" in the title, this is so not true: "Did not work as envisioned", "Budget (< $20) was not matching the needs", "Lessons learned", is much more in line with all you have accomplished. Which is a lot! Using a 5 mm screwdriver (and not cutting the handle off): Brilliant - it worked they way planned. And: You can now still use it for other tasks (such as driving screws ;) - Allan key: Brilliant, EV3: brilliant, LEGO parts: brilliant. I love every aspect of your approach. I bet that with a more conservative budget, you could get this going without hassle. Not only that; I just googled a few Arduino/EV3 communication solutions - seems to be entirely possible for a hardware person like you are - after all, you successfully programmed all the other stuff successfully! This was a multidisciplinary hard/software project and the lessons learned are incredibly valuable - who knows now what for. Well who cares? In your next crazy project (that you hopefully will post here) you can rely on your (further) accumulated experience and knowledge. When in doubt whether that new crazy project is appropriate for this forum, just hot glue a piece of LEGO to it, claim it does not work without, and take a video along with some text explaining what you tried. And don't use "failure". I am so much looking forward to that one! Congratulations on how far you came! All the best Thorsten Quote
HorcikDesigns Posted March 18 Posted March 18 Wow, I like it (especially the way the two machines communicate with eaxh other). How does the stepper motor connects to the planetary gearbox? Can the HUB withstand the load well? Looking forward to next progress Quote
2GodBDGlory Posted March 18 Author Posted March 18 21 hours ago, grum64 said: I’ve read this twice and still don’t entirely understand it but that’s a lacking on my part not your explanation. However I understand enough to know there’s undoubtably some very clever thinking behind it. Personally, I wouldn’t know where to start with something like this. Thanks! I appreciate hearing that 21 hours ago, Toastie said: Wow! What a wonderful project! All the complexity, all the challenges, the way you tackled these, the many partial solutions, attempts, retries. This project is a perfect example of how research, serendipity, clear analysis, persistence, documentation >certainly< would have eventually led to a working prototype. You decided to stop the project, because the sum of issues, at this budget level, told you to do so. That is totally fine. However, I don't like the term "[Failed]" in the title, this is so not true: "Did not work as envisioned", "Budget (< $20) was not matching the needs", "Lessons learned", is much more in line with all you have accomplished. Which is a lot! Using a 5 mm screwdriver (and not cutting the handle off): Brilliant - it worked they way planned. And: You can now still use it for other tasks (such as driving screws ;) - Allan key: Brilliant, EV3: brilliant, LEGO parts: brilliant. I love every aspect of your approach. I bet that with a more conservative budget, you could get this going without hassle. Not only that; I just googled a few Arduino/EV3 communication solutions - seems to be entirely possible for a hardware person like you are - after all, you successfully programmed all the other stuff successfully! This was a multidisciplinary hard/software project and the lessons learned are incredibly valuable - who knows now what for. Well who cares? In your next crazy project (that you hopefully will post here) you can rely on your (further) accumulated experience and knowledge. When in doubt whether that new crazy project is appropriate for this forum, just hot glue a piece of LEGO to it, claim it does not work without, and take a video along with some text explaining what you tried. And don't use "failure". I am so much looking forward to that one! Congratulations on how far you came! All the best Thorsten Thanks for the thoughtful reply! I was originally going to subtitle it "Proof of Concept," but I guess I decided to try to stay on the humble (and safe from criticism) side and go with "Failed." Oh, I don't think Arduino-EV3 was necessarily the communication problem I was looking at; it would have been more Creality V4.2.7 Main board to Arduino/EV3 that the ideal would have been. Your mention of budget constraints has me thinking, what could I do better if I was willing to spend a little more money? A good first step would probably be using an actual servo motor mounted on the print head for a filament cutter, which is an approach I've seen other people take. Beyond that, I guess just being willing to use the filament to print the upper unit in a very overbuilt configuration for strength. I'd then need to figure out a more reliable wiping mechanism, and how to prevent the EV3 from shutting off. It would be a lot of work, and I'm not ready to start something like that now, but maybe someday! 8 hours ago, HorcikDesigns said: Wow, I like it (especially the way the two machines communicate with eaxh other). How does the stepper motor connects to the planetary gearbox? Can the HUB withstand the load well? Looking forward to next progress Thanks! The stepper just goes directly into a 3D printed adapter (100% infill, PETG), which then adapts to a Lego CV joint, which drives the planetary hub Quote
Mikdun Posted March 19 Posted March 19 That's a great adventure, even if failed. I also had to read it few times to partially understand how it works. You can be proud of making this mix of factory, Lego and DIY stuff. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.