So it's been about 3 weeks since our last release. I know it's been a bit quiet, but I am pleased with the fixes we managed to tackle. Our full release notes are available, but I've highlighted the important bits here.
Disconnect while heating is 'fixed'!
Many of you have encountered this problem:
After starting a heating operation (baking or reflow) the heated bed will start ramping to the target temperature. Shortly after the bed reaches the target temperature, the timer countdown will freeze and the temperature graph will stop updating. The software won't crash but you are no longer able to interact with the printer even though it still says connected. Restarting the software will restart the printer and lose your progress.
It was discussed in the forums, and we've also received numerous support emails. This problem has been plaguing us for weeks, mostly because we are not able to reproduce it in our own office - hence any theories we might have are difficult to prove.
We suspected the problem might be related to how the heater was being controlled.
The firmware uses PID control to regulate the bed temperature. This means that as the bed temperature approaches the target temperature, a Pulse Width Modulated (PWM) signal of varying duty cycles turns the heater ON/OFF to try and gently approach the target temperature without overshooting.
The PWM signal has a frequency of 7Hz. Given that the heater is 550W, this means we are pulsing ~4.5A (120V) or ~2.5A (220V) several times a second. This leads to noise being injected into the system which can trigger a serial or printer reset.
The electrical fix is to be more conservative with the capacitors used in our power lines... But we can't do much about that now.
The software fix is simple, remove PID / PWM control so the heater turns ON when it is under temperature and OFF when it is over temperature. This reduces the ON/OFF frequency dramatically.
We reached out to a couple of our users that could reliably reproduce this problem. (Since we could not)
We provided them with a custom firmware image that had PID control turned off and asked them to try a baking cycle again. We eagerly waited for the results.
One by one they replied with positive news. Each of them was able to perform a heating sequence without experiencing any lockups.
We will be rolling this change out to everybody. It's possible that the software/printer might still lockup, but it should be a much rarer event.
We've changed how the heater is controlled. The temperature graph will have large oscillations as it maintains temperature (see below). This shouldn't have negative effects on baking or reflow functionality. Please let us know if your heating issues are resolved.
We got a chance to tackle several Gerber problems. Mainly improving support for Diptrace, Orcad and Kicad files.
Just a reminder, as mentioned here - if you have problems loading Gerber files please send them our way.
Orcad Users - Our algorithms have struggled to process Gerber and Drill files. I believe that Orcad is not adhering to the Gerber standard. If you use Orcad please send your files my way so I can familiarize myself with their exports.
Eagle Users - Avoid using polygons or creating pads with rounded edges. Eagle exports these polygons as an outline filled with horizontal lines. It is difficult for us to detect when this occurs and you might end up with double dispensing (poor print quality).
As an example, the pads below are identical in Eagle. However the left one got recognized by our algorithms as a pad, but the right one did not. The left one will be printed as a single continuous trace, but the one right will be printed as many many individual lines.
- We've improved our serial communications in general, and now an error will be displayed if the printer disconnects while baking.
- Fixed an embarassing issue where a support package would fail to submit if the printer was not connected.
That pretty much covers the update.