Welcome! Log In Create A New Profile

Advanced

Software Modifications for New Toolhead

Posted by jbayless 
Software Modifications for New Toolhead
December 15, 2009 05:45PM
Hello all,

My project team is working on adding new capabilities to the existing Reprap system; we are building a toolhead to let it print wires. More about that later. On the hardware side, the new mechanism involves three motors (DC or stepper). The software requires updating too, accordingly. Here is some brief introduction of our software plan, and we would love to get your comments or questions. In particular if you are an author of one of these various software programs and you are reading this, it would be great if you post to let us know if we're going in the right direction.

The software package we're using is:
-Firmware: Sanguino 3rd Generation Firmware (Protocol: [docs.google.com])
-Host Software: ReplicatorG (http://replicat.org/)

We have downloaded the source code and tried to locate the parts that will need updating. From our understanding, here are the places we have found so far:

====Firmware====

-Commands.h
What it does: it defines the "query commands". For example, "#define SLAVE_CMD_SET_MOTOR_1_PWM 4".
What we plan to do: to define more motors by assigning new "query commands", because we are planning to add new motors.


-Configuration.h
What it does: it defines the electronics setup.
What we plan to do: to assign pin numbers to new motors


-PackageProcessor
What it does: it defines what does each function (such as "change tool") mean to the hardware.
What we plan to do: The functions in the file look relatively "low level" to me. For example, it doesn't have a function for "changing from tool A to tool B", but just "change tool". Therefore, we guess that we need to add new higher-level functions to call these low-level ones, without the necessity to add new low-level functions.


-Steppers
What it does: it translates the movement of the print head into the operations of stepper motors.
What we plan to do: to add functions to control the new stepper motors.



====ReplicatorG====

-GCodeParser.java
What it does: it translates each Gcode into its implementation.
What we plan to do: to add new Gcode.


-Driver.java
What it does: it provides an interface for driving each machine (such as Reprap and CNC Cupcake).
What we plan to do: to declare new functions in it.


-DriverBaseImplementation.java
What it does: it selects which tool the machine is using, and what is the state of this tool.
What we plan to do: to implement the possible states of the new tools we're adding.


-Sanguino3GDriver.java
What it does: it translates functions such as "enableMotor()" into changing the flag variables of the motor.
What we plan to do: to add translations to the functions we add in "Driver.java".



Once again, comments or questions are highly appreciated. Thanks! =D


Bing, Jacob, and Mo

Edited 1 time(s). Last edit at 12/15/2009 05:45PM by jbayless.
Sorry, only registered users may post in this forum.

Click here to login