Wednesday, June 1, 2011

Post two, A bit more about what I am doing and a little update.

The project I am working on here at Neuron Robotics is software that will enable Neuron Robotic's DyIO platform able to control a 3D printer, this is appealing because the DyIO is very affordable compared to conventional methods used for controlling a 3D printer as well as having many more capabilities that the user may want to utilize.  The software for such a project as this will be split into multiple levels as it cannot be handled by one single level software platform (one stand alone application), a multi level design is required.
Image From http://www.solidsmack.com/wp-content/uploads/2010/05/fab@home-3d-printer.jpg

The different levels of this software differ on the style of programming, there will be software written in a low level language (standard C) that will run on the DyIO's hardware and software written in a high level language to run on the computer (Java).
Image from http://hritcu.files.wordpress.com/2006/11/dukewithhelmet.jpg

The high level component (Java) will be divide into the following levels: A level for controlling all linear motion and geometry, as nonlinear motion (curves an arcs) will be implemented in low level software on the DyIO. A level for calibrating the printer to its zero positions for the X, Y, and Z axes using either one limit switch per axis or two switches per axis, the calibration will be run from a simple GUI written in Java swing that the user will be able to operate with ease. The Calibration level will use functions in the linear motion level to drive the axes to their zero positions. The final level will be a software layer that sits between the other levels and the Fab@3D printer software that will allow the standard Fab@3D printer software to use the DyIO and the associated software pieces to control Cartesian Box 3D printer as if you were using one of their standard supported control solutions.

The low level software will be written and C and be part of the DyIO firmware, the low level will be used for all non linear motion of the printer e.g curved and arced motion. This level will be called by the higher level software in java whenever nonlinear motion of the printhead is required, data will be sent to the lower level software using Bowler Packets and Neuron Robotics' Bowler Communication System. This component will live int he DyIO firmware and be universal for all sorts of 3D Printers. The Java source code for this project will be open to promote community support for other Fab@3D printers to be controlled by the DyIO. The software will be written with heavy use of Object Oriented Programming Concepts and have a very modular design, this practice coupled with having the java source open should promote future community support of other printers.

There will be more to come stay tuned!

No comments:

Post a Comment