MakerBot Replicator 2 Tip: First Layer Not Close Enough

We’ve been printing using PLA on scotch blue painters tape.  I’ve learned a lot about how critical the first layer is.  If you get it too thin, then it just barely smears on and will clog up the extruder.  That can cause issues with subsequent layers not bonding correctly (in my opinion).

If you get it just right, and your tape is clean (alcohol wiped), then the PLA will stick very well to the tape.  Maybe too well. 

If you get the nozzle too far away, then the model doesn’t stick. Here is a picture of a bad first-layer (not close enough).

IMG_2382

This model peeled up during printing and broke the cooling fan ductwork on the extruder head.  Baaaaadddd.  If you see a print starting like that, best to abort it and start over.

IMG_2396

MakerBot Replicator 2 – Arduino Bumper

I was using a piece of foam rubber under my Arduino for the Marble Roller project.  Not so nice, right?

Having a brand new MakerBot Replicator 2 on my desk, I decided to, well, make a nice bumper (or 3).

No design time needed as someone else did the hard work: http://www.thingiverse.com/thing:26237

Printed out wonderfully.  Fits perfectly.

IMG_2375

IMG_2376

Arduino Marble Roller #4 – Video

An update on the MMZ Arduino Marble Roller project.  We got the mechanics in place and a reliable system for transferring the marble to the top of the ramp via servo motor.

Because it is the job of the servo motor to simply move the platform up and down as opposed to accomplishing significant amounts of work, we counter balanced the ramp with a spring to assist the servo in lifting it.

Eli does a great job explaining it in this video:

Making a Wooden Shield

We made a wooden shield out of 3/4″ hardwood plywood.  To get the perimeter, we bent an aluminum bar into the shape of one side, and then used it to trace both sides, making it symmetrical.

We softened a section of 4″ PVC pipe and flattened one side.  After plenty of sanding the endges, we screwed it to the back of the shield with 3/4″ screws.

We cut the handle out of a section of 2×4 on the bandsaw, routed, and sanded it smooth.  Here are the pictures!  All done but a coat of gold or silver paint.

IMG_2211 IMG_2213 IMG_2214

 

 

Arduino Bipolar Stepper Circuit

I got a cool little 4-wire bipolar stepper motor and wanted to drive it via Arduino.

I based the design on this reference: 

http://arduino.cc/en/Reference/StepperBipolarCircuit (credit for following image belongs there as well)

 

 

bipolar_stepper_four_pins

Here is how it looks for real.  Kind of a mess of wires, but you know what?  It works great.

IMG_2031

 

 

 

Introducing FileStruct (for Python)

FileStruct is a lightweight and fast file-cache / file-server designed for web-applications.  It solves the problems of “where do I save all of those uploads” that has been encountered time and time again.  FileStruct uses the local filesystem, but in a sensible way (keeping permissions sane), and with the ability to secure it to a reasonable level.

https://github.com/appcove/FileStruct/

Here is a simple example of taking an image upload, resizing, and saving it:

with client.TempDir() as TempDir:
   open(TempDir.FilePath('upload.jpg'), 'wb').write(mydata)
   TempDir.ResizeImage('upload.jpg', 'resize.jpg', '100x100')
   hash1 = TempDir.Save('upload.jpg')
   hash2 = TempDir.Save('resize.jpg')

Design Goals

Immutable Files

FileStruct is designed to work with files represented by the SHA-1 hash of their contents. This means that all files in FileStruct are immutable.

High Performance

FileStruct is designed as a local repository of file data accessable (read/write) by an application or web application. All operations are local I/O operations and therefore, very fast.

Where possible, streaming hash functions are used to prevent iterating over a file twice.

Direct serving from Nginx

FileStruct is designed so that Nginx can serve files directly from it’s Data directory using an X-Accel-Redirect header. For more information on this Nginx configuration directive, see http://wiki.nginx.org/XSendfile

Assuming that nginx runs under nginx user and file database is owned by the fileserver group, nginx needs to be in thefileserver group to serve files:

# usermod -a -G fileserver nginx

Secure

FileStruct is designed to be as secure as your hosting configuration. Where possible, a dedicated user should be allocated to read/write to FileStruct, and the database directory restricted to this user.

Simple

FileStruct is designed to be incredibly simple to use.

File Manipulaion

FileStruct is designed to simplify common operations on files, especially uploaded files. Image resizing for thumbnails is supported.

Temporary File Management

FileStruct is designed to simplify the use of Temp Files in an application. The API supports creation of a temporary directory, placing files in it, Ingesting files into FileStruct, and deleting the directory when completed (or retaining it in the event of an error)

Garbage Collection

FileStruct is designed to retain files until garbage collection is performed. Garbage collection consists of telling FileStruct what files you are interested in keeping, and having it move the remaining files to the trash.

Backup and Sync with Rsync

FileStruct is designed to work seamlessly with rsync for backups and restores.

Atomic operations

At the point a file is inserted or removed from FileStruct, it is a filesystem move operation. This means that under no circumstances will a file exist in FileStruct that has contents that do not match the name of the file.

No MetaData

FileStruct is not designed to store MetaData. It is designed to store file content. There may be several “files” which refer to the same content. empty.logempty.txt, and empty.ini may all refer to the empty fileData/da/39/da39a3ee5e6b4b0d3255bfef95601890afd80709. However, this file will be retained as long as any aspect of the application still uses it.

Automatic De-Duplication

Because file content is stored in files with the hash of the content, automatic file-level de-duplication occurs. When a file is pushed to FileStruct that already exists, there is no need to write it again.

This carries the distinct benifit of being able to use the same FileStruct database across multiple projects if desired, because the content of file Data/da/39/da39a3ee5e6b4b0d3255bfef95601890afd80709 is always the same, regardless of the application that placed it there.

Note: In the event that multiple instances or applications use the same database, the garbage collection routine MUST take all references to a given hash into account, across all applications that use the database. Otherwise, it would be easy to delete data that should be retained.

How to Generate a SSH Keypair (public/private) on Windows

Have you ever been asked to generate an SSH keypair in order to gain access to a server, github, or an sftp site?

Here is how on windows.

First, download puttygen.exe from here:

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

 

Second, run puttygen.exe and follow these instructions:

(except, put your name instead of Sharon)

(On step 8, copy and paste this and send it to whomever requested it)

puttygen instructions

Simondale Excavating at work

We’ve been working on the installation of electrical and cable (internet) service at our property.

Simondale Excavating installed 1800 feet of conduit through the woods, under multiple roads, and near buildings with impeccable accuracy and attention to detail.  All conduit was bedded with limestone dust and carefully back-filled to prevent damage.

Installing Conduit for Electrical and Cable service.

CIMG0776

CIMG0789