The June 21st Update: Software/Firmware Bugs & Fixes plus a Shipment Update

Hey everyone!

Happy Wednesday, we hope you’ve had a great week, it’s been a rocky one here at Maslow.

Get ready for our least thrilling update to date. We had a couple pretty significant software issues to contend with this week, and the manufacturer of our Arduino Shields still hasn’t shipped them (but promised us a tracking number for tomorrow). If you are going to skip reading an update, skip this one.

The Bugs:

On the software front we had a chaotic week when I let a bug slip through into last week’s release of Ground Control / Firmware v0.76 that broke the calibration process, and spent most of my week scrambling to figure out what I did and how to fix it. The issue had to do with a catch I added which was meant to trigger under circumstances where the calibration process was initiated with impossible conditions such as with negative chain lengths. Unfortunately, the function could be triggered during the calibration process which would result in inaccurate values being reported for the machine’s dimensions causing erratic movements.

The good news is that I think I’ve tracked the issue down and fixed it for today’s release of version Ground Control / firmware v0.77. I’ve also smoothed some of the movements during the calibration process.

In last week’s update we reported we were tracking down a bug which was resulting in the machine sometimes receiving garbled lines of gcode. The conditions were rare, some of our beta testers weren’t seeing it at all, others were seeing the issue regularly. I was seeing about 1 in 1000 lines sent to the machine corrupted. Because the bug was showing up differently on different computers it was a tough one to track down, but I think I’ve got a handle on what was happening. The issue was that the Arduino has an internal 64 character serial buffer, while our firmware has a 256 character buffer. The 64 character Arduino buffer is used only for a few thousandths of a second to send and receive information from your computer, while the 256 character buffer in the Maslow firmware is used to store lines of gcode until the machine is ready to run them which can be more than a second in the case of a long straight cut. The conditions needed to see the issue are as follows:

1. The 256 character buffer is nearly empty because the machine has just finished a series of very small movements meaning it processed a lot of gcode quickly using up its reserve of code

2. The computer running Ground Control is a fast-ish computer

Under these conditions the Firmware will request up to 256 new characters of gcode from Ground Control, and Ground Control can send those 256 characters to the firmware faster than the firmware can move them from the 64 character buffer into the 256 character buffer. Once the 64 character buffer fills up, characters are lost.

I would like to do more exhaustive testing before declaring the issue fully resolved, but I believe that version 0.77 of the firmware/Ground Control fixes the issue by throttling the speed at which new lines of gcode are sent to the machine (credit to andymillernz for the pull request that fixed the issue). A long term solution is to focus on making sure that the the firmware empties the 64 character buffer as quickly as possible. The process of tracking down this bug also involved a good amount of rewrite and cleanup of the serial connection code that I feel really good about.

No project of the week this week, while battling bugs, I didn’t have a chance to build anything cool.

Hannah’s Mini Update:

We still have not received the arduino shields. We received an email from our supplier this morning stating that they would ship tomorrow and we will post in the forums as soon as we have a tracking number. We’re having these shipped by DHL (the quickest means possible), so that should mean they will arrive some time next week. Bar will have to check them out and test them to be sure they’re good to go, but from the photos our supplier sent, we aren’t anticipating any issues with this. Once again, thank you for your patience and apologies for the delay. We’ve started printing shipping labels and preparing to pack up boxes so that hopefully the shields will just need to be added to each box, a label stuck on, and the kits will be on their ways. Realistically, as long as the shields truly do ship tomorrow, we’re most likely looking at shipment starting the first week of July. Thanks to everyone for being so prompt about getting your backer surveys back to us. Believe us, we want to get those kits out the door as badly as you want to receive them!

Sorry for the bummer of an update everyone, without even pictures. Hopefully we’ll be back next week with some more exciting news.

Until then, have a great week everyone!

-Bar and Hannah