This is an external filament buffer to be used with the Mosaic Palette 2 and Palette 2 Pro.
IMPORTANT! Version 7.0.6 of the Palette 2 firmware introduced jam and run-out detection that makes it incompatible with the buffer since it will trigger false errors that will make the Palette cancel the print. When I told them about this, they was nice enough to add an option for disabling this feature in version 7.2.6. Look at the bottom of the description for instructions on how to do this.
The internal buffer in the Palette 2 multi material splicer is way to small to fully utilize the splicing capability of the machine. And due to other unfortunate design decisions made for the entire buffer system the machine can not even fully utilize the tiny buffer that it have.
Most objects have an uneven division between the up to four materials being used per layer, and then it is important that the buffer is big enough to average out the load on the splicer over the whole layer. Something the undersized buffer of the Palette 2 is nowhere close to be able to do.
Be aware that using this buffer can cause calibration problems. The palette tracks the progress of the printer and compares it to how much filament have been pulled out of the palette. And it then continuously adjust the splice lengths to compensate for variations in the printers consumption (due to extruder slippage or other anomalies).
It does this by inserting instructions in the gcode to make the octoprint server that feeds the printer to "ping" the palette. When it receive such a ping it assumes that is where the printer is at, and calibrate accordingly. The problem with the buffer is that if it is deeply depleted when a ping is being sent the printer have used a lot of filament that have not yet been accounted for by the Palette's scroll wheel.
For me it seems to perform very well up to at least ~100mm/s. Then it is only briefly depleting the internal buffer and it does not have to high a risk of having a ping fire while it is being depleted. And if it is unlucky with a ping, the offset will not be very large. I have also succeeded a print at 200mm/S, but that is really stretching it. It will never starve the printer at such a speed, but I would expect calibration issues.
I have a couple of ideas on how the firmware could be changed to avoid the calibration issues. If the printer would ping much more frequently (so missing some of them would not be a big deal) and the palette would ignore any pings it receive while it's buffer empty switch is being pressed I believe that should be enough to synchronize the palette with the external buffer. Unfortunately the firmware is closed-source so only Mosaic would be able to implement such a change. So if you like the idea of the buffer, you know where you have to go lobby for some external buffer love from the firmware :-)
In the V2 of the buffer I have included an exploded view to make it easier to assemble it. And I also made a build video showing how to put it all together after printing.
Here is a video demonstrating a 200mm/s print using the buffer. Please note that even though it did stay in calibration for this test, I was very surprised by that, and do not expect that to be the case for larger prints. It was only meant to demonstrate that the printer would not be starved. Unless we get some dedicated support from the firmware I consider 100mm/s to be the upper safe limit.
In addition to the print you will need:
5 x 608 ball bearings.
12 x M3-8mm self tapping screws.
13 x M3-10mm self tapping screws.
1 x M3-14mm self tapping screws.
4 x M3-18mm self tapping screws.
An appropriate spring. The spring I used have a 40mm x 7mm coil (when relaxed) and the wire is 0.7mm in diameter.
A 4mm OD PTFE tube between the output of the buffer and your printer.
Here is a video I made before being 100% done with the design of the V2 talking a bit about the new features of V2 compared to V1.
How to disable run-out detection:
Like mentioned above the run-out detection in newer firmwares is incompatible with the buffer. But in 7.2.6 they added the option for disabling it when using the buffer.
I have not had time to test this myself yet, so I'm still running 6.1.5 and as such has not yet tested the instructions I got from Mosaic on how to disabled it.
Unfortunately there is no regular preference option to do this, and you have to connect it to a PC via USB and connect to it using a terminal program. They mention that you can use the Arduino IDE, but I guess most terminal programs should work. I'm planning to test with Putty first. Or maybe a terminal program running on the RPi so I don't have to connect it to the PC at all.
Here are the instructions I got from Mosaic:
The first thing todo is to connect to your Palette over serial. You can do this by using the Arduino IDE and connecting the Palette via USB to your PC. With it connected please set up the baudrate to 115200 and newlines to be enabled.
- Send command "070 DB8 D1"
- Send "070 DB8" to verify that the command was successful you should receive "070 DB8 D1" if it was.
I also asked how to set it back to default and that can be done by sending the command "070 DB8 D0".