When: 11 July 2019, 10am
Members present: All
Continuing from last night, we decided to focus on the following:
- Troubleshooting of Marlin/stepper driver (morning)
- Designing the stepper motor house (for yarn spool) (morning)
- Test out speed of stepper motor (for yarn spool) using Arduino (afternoon)
- Tidy up new embroidery base (afternoon)
- Arrange the wires properly (afternoon/evening)
Updates on Yarn Tension Issue
Yesterday we printed out Yarn Spool Coupler Mk I to connect a stepper motor to our yarn spool. Tony noticed Carissa trying to clamp the motor into the top part so it could be secured in place with a screw, and suggested that we use the metal 5mm to 8mm coupler that we bought which came with our Creality stepper motor. After searching for a while, we found the metal coupler and hammered it into the yarn spool – it fit perfectly! Once the metal coupler was in place in the yarn spool, the motor was secured in place with a screw.
Yarn spool coupled with the Creality stepper motor.
Lesson learnt: simple solutions (which don’t involve too much designing) work too!
Problem 1 | Troubleshooting of Marlin/stepper driver
Vanessa and Claudia started the day off by testing different settings for Marlin (changing the #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, n } line by varying the values of n) and the pulse/revolution value on the stepper driver.
We experimented with the lowest pulse on the stepper driver and a lower step number on Marlin. However, it did not work. The alarm on the printer was on. Next, we experimented with a pulse value that was in the middle of the spectrum of pulse (4000) provided by the stepper motor driver while keeping the step number on Marlin constant (8000). Though the alarm was not on, the speed was extremely slow. Therefore, in order to increase the speed of the stepper motor without triggering the alarm, we decided to re-use the previous step settings and the pulse settings on Marlin and the stepper motor driver respectively and move on to tampering with the settings on our software, Simplify 3D.
Simplify 3D
First, we need to increase the feed rate for the extruder. As there is no default feed rate function on Simplify3D, we need to figure out the optimal combination of settings that are related to the extruder to obtain the optimal feed rate. The settings to vary to obtain the combination for the optimal feed rate include:
- Extrusion multiplier (Higher = Faster)
- Extrusion width (Lower = Faster)
- Primary layer height (Lower = Faster)
- Default printing speed (Higher = Faster)
- Filament Diameter (Unique for our project that used Creality 3D Ender Printer) (Lower = Faster)
After much discussion, we decided to modify the settings for (1) and (5).
When troubleshooting on Tuesday, we figured out that the stepper motor jammed when the extrusion multiplier was increased from 0.09 to 2.00 Therefore, we changed to 1.00 where it did not jam. However, in order to increase the extruder feed rate and correspondingly, the speed of the stepper motor, we decided to cautiously increase the extrusion multiplier. Today, we gradually increased from 1.00 to 1.20. Afterwards, we reduced the filament diameter from 1.75mm to 0.75mm. Next, we tested out and YAY! The speed of the stepper motor was significantly increased without triggering the alarm on the stepper motor driver during the print job.
However, we realized that the speed of the stepper motor can be further increased. We then went to increase the extruder multiplier from 1.20 to 1.50 and decreased the filament diameter from 0.75mm to 0.30mm. VOILA! We managed to obtain a significantly faster speed than original (actually, it might be too fast for our print job but it could be easily solved by increasing the pulse on the stepper motor driver without triggering the alarm).
Next, we increased the pulse on the stepper motor driver from 4000 to 5000 while keeping the steps setting on Marlin constant at 8000. The jabbing speed obtained by the linear actuator connected to the stepper motor was reduced and nearer to our optimum jabbing speed.
Problem 2 | Designing the Stepper Motor House Mk I (for yarn spool)
With the motor attached to the yarn spool, we could start designing the stepper motor house. Claudia helped to take the relevant measurements and Carissa designed the house on Fusion 360.
Stepper Motor House Mk I, modelled on Fusion 360.
After checking and re-checking the dimensions, we sent it in for printing. According to Simplify 3D, the print job would take almost 5 hours, so we left it to print while we went back to working on the printer issues.
Before we left for the day, we were able to pick it up. It’s a good fit for the tmotor!
Stepper Motor House Mk I, printed in the golden filament that we ordered for the lab.
Preventing Needle Movement Before Print Start, Using G-Code
Vanessa found that there were two lines in particular which caused the printer to jab very quickly before the print started:
G1 E-4.0000 F2400
G1 E4.0000 F720
She then helped us to modify the G-code by opening the .gcode file in text editor and commenting the two lines by adding a semicolon before the start of the line.
Karn heard what we were doing, and suggested that instead of manually commenting the line, we should run our .gcode file through a Python program (using a regular expression, or regex, function) to automatically comment the line. With this, Claudia and Carissa set to work on creating a Python program for that purpose, and after a lot of troubleshooting, came up with this:
The Python program we came up with the automatically comment the two lines which were causing the printer to jab prematurely.
Though we spent all that time coming up with the program, we couldn’t find an easy way to save the G-code that Python printed in a .gcode format, other than by changing the .txt file into .gcode by replacing the extension manually. Also, when we saved the code that Python produced, we still had to manually delete the initial messages from the Python shell. For now we’ll be putting this aside and focusing on the more crucial problem – the problems our printer has with felting.
Problems with Felting: Yarn Feeder Mk XII
While Carissa was working on the Python program, Claudia and Vanessa continued testing out the printer. We found there was a tendency for the yarn to bunch up on the inside of the yarn feeder, which could possibly be due to the long yarn-catch region within the yarn feeder. With this in mind, Claudia and Vanessa redesigned the yarn feeder (yet again!) to shorten the yarn-catch region from 1.1cm to 0.7cm.
We faced some issues with cornering previously, which we thought we already solved. However, since changing to the new motor, the issue came back 😣 There was also an additional issue of the yarn being cut into bits. Alexis suggested that this could be caused by the rapid jabbing motion of the new, more powerful motor, since we didn’t have this problem with the previous motor.
Yarn Feeder Mk XII. Look at the yarn that we pulled out from the yarn feeder after a print job; it’s been stabbed to such wispy strands. Some of these strands can be seen stuck in the felt, even though we have already pulled the yarn out from the felt.
We weren’t exactly sure whether the issue was with the speed of the jabbing, the type of yarn, the tension, the speed of the x-y movement, or some other unknown cause. So, as true science students/researchers, we decided to vary one variable at a time to test.
Variety of Variables for Testing
Varying Speed of Needle Jabbing
We tested the different variables using our new, redesigned yarn feeder with the shorter yarn-catch region.
In general, we found that the slower the speed of jabbing, the lesser the likelihood of the yarn being cut into bits. Therefore, we changed the pulse for the stepper motor gradually from 5000 to 12800.
Here are some videos of our many, many test runs throughout the day:
[13:12] Real-time print of a circle. The jabbing motion has caused the yarn wool to be shredded into small strands. Though some strands managed to be embedded into the yarn, overall, it looks like poor effort. We want the felted yarn to be continuous. Yarn Feeder Mk X was used for this.
[13:22] Timelapse of a square. After felting the first corner, the subsequent corners were very poorly felted and adhering to the felt, so we stopped the print. Yarn Feeder Mk X was used for this.
[16:11] We switched to Yarn Feeder Mk XII. Timelapse print of a square. This time, the print was much better, though it wasn’t perfect. Everything was going well until the third corner, after which the thread didn’t stick well. You can see it being dragged from the third corner. A mistake may have been that we used rectilinear infill instead of concentric infill.
The settings that got us the best print were:
Simplify 3D Setting | =========== |
Extruder Multiplier | 1.50 |
Filament Diameter | 0.300mm |
Default Print Speed | 60mm / min |
X/Y Axis Movement Speed | 40mm / min |
Inner Perimeter Speed | 40mm / min |
Outline Speed | 80% |
Layers | 2 |
Infill | 30% |
Infill Type | Rectilinear |
Stepper Motor Settings | =========== |
Pulse | 12800 |
Marlin Settings | =========== |
#define DEFAULT_AXIS_STEPS_PER_UNIT | {80, 80, 400, 8000} |
Knowing this, we decided to focus more on changing the other variables.
Varying Infill Speed
The outline printed decently well because it was felting in concentric outlines. However, for the infill layer, the felting was done in rectilinear style and at a much higher speed. This cut the yarn into tiny bits and also made it difficult for the yarn to be felted into the felt cloth at very high speed. Hence, we decided to modify the speed settings on Simplify3D. We changed the inner perimeter speed from 80% to the same as the outline speed, which is 50%, as the cornering and felting was better than that at 80%.
Varying Yarn
We tried to change the yarn to a thicker yarn, but we weren’t able to feed it into the yarn feeder. So we tried a different type of wool yarn (black yarn), but we faced the same issue of the yarn getting cut into bits. In the end we switched the yarn back to our original brown wool yarn, and tried varying the other variables.
Varying Tension
WIP
Varying Motor Speed
WIP
More Troubleshooting
Because all the changes didn’t show much improvement, it was back to the drawing board for us. Tony and Guo Yao were perplexed over the fact that the yarn kept bunching up on the inside of the yarn feeder, so they went to look through Disney’s paper again, to find inspiration on what could be causing the problem. After watching their video many times, Guo Yao suggested that the issue was either due to (i) the angle of the yarn feeding into the yarn feeder; or (ii) the length of yarn catch region.We turned to Disney’s research paper for more answers, and found that:
- Diameter of yarn-catch region is 2mm (same as their average yarn diameter)
- Length of yarn-catch region is 8mm
- Bunching up was due to continuous yarn feeding
For the second last point, Tony disagreed – he said that the 8mm length of the yarn-catch region is probably too long, which he guessed may be causing the bunching up of yarn within the yarn feeder. The last point about bunching up made sense, but it didn’t seem to be the problem with our embroidery machine because it worked previously, even with continuous yarn feeding.Tony then suggested that we should modify the yarn feeder design to minimise the yarn-catch region, and to have a reverse cone shape at the bottom of the yarn feeder. The reverse cone shape would help to ensure that if there is any bunching up, it wouldn’t block up the yarn feeder.
Carissa’s notes on how we should change the design for Yarn Feeder Mk XII.
Guo Yao immediately helped us modify our yarn feeder (Mk XII, with the shorter yarn-catch region) to create this design, so that we wouldn’t have to spend more time re-designing and re-printing a new yarn feeder. The new yarn feeder turned out to work really well, and it solved our bunching problem! THANK YOU TONY AND GUO YAO FOR YOUR HELP!!
A Successful Print
After much trial and error with the settings we FINALLY managed to have a successful print!! 🎉
The first successful square cube printed!
Vanessa noted down the settings that we used to obtain this success:
Height of Yarn/Needle Feeder above base | ~ 2 mm
Home switch has been relocated to this position |
Simplify 3D Settings | =========== |
X/Y Axis Movement | 20mm / min |
Z Axis Movement | 40mm / min |
Default Print Speed | 40mm / min |
Extrusion Multiplier | 1.50 |
Outline/Perimeter Shell | 12 layers |
Extrusion Width | 2mm |
Filament Diameter | 3mm |
Stepper Motor Settings | =========== |
Pulse | 12800 |
Marlin Settings | =========== |
#define DEFAULT_AXIS_STEPS_PER_UNIT | { 80, 80, 400, 8000 } |
3D Printer Settings (Manually Changed) | =========== |
Flow Rate | 100 |
Print Size | 20mm by 20mm |
Another important thing to note is that the tension of the yarn had to be controlled manually – the yarn spool had to be turned continuously but with a bit of lag time in between. The tail of the yarn was also clipped to the edge of the foam base.
It’s just a small print, but it’s definitely a great improvement from all the other failures today! We’re proud of our embroidery machine for coming this far ❤️ Tony promised us pizza if we manage to get our embroidery machine to work, so we’re looking forward to that 🍕
That’s all, till we meet again!