Dropzone for FlashAir Uploads

I recently acquired Dropzone in as part of a discount software bundle. It essentially an enhanced "droplet" app that allows you to take action on files that you drag and drop to an icon.

I liked that it has a scriptable API in Ruby, and thought it might be a nice way to upload .X3G files to the FlashAir card in my Makerbot. The action does the following:

  • Set the "WRITEPROTECT" flag on the FlashAir card (as per the FlashAir Developer docs that are now available)
  • Uploads the file(s)
  • Downloads the files back from the card and compares with the original file. (Verify)

Dropzone gives you nice progress bars to let you know things are working properly:
Upload progress
Verify progress

Dropzone provides some "canned" settings screens for collecting parameters about your action. The closest one to this purpose was the FTP-style connection dialog. It defaults to port 21, so you MUST change this to Port 80 (unless you're doing some fancy port forwarding for some reason). Also it REQUIRES a username/password. You can put a bogus, dummy username and password there, or if you have your FlashAir card configured with a username and password, this will work to tell Dropzone your credentials. The other fields are not used.

Settings screen

I haven't tested this with a FlashAir II card yet, but I have one on the way. I did add some sanity checking to give an intelligent error message when you try to upload a LFN file to a FlashAir I. It doesn't prevent the attempt, since maybe there will be a firmware update or something, but when it goes to verify it present a better error message telling you LFN support is not available on the FlashAir I.



-You should understand what you are doing. This software is not intended as turn-key, reliable solution. You should engineer your own solution, which may wind up being better, safer, and more reliable than mine.
- Proceed at your own risk. You've been warned. If you break your bot, burn your house down, or injure yourself or others, I take no responsibility.

This software is provided by the author "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the author be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.

This is the Icon that I use. The script refers to the icon hosted here on extruded. If you want a local copy, you can download it as well as the script below.