GSoC 2010

From RepRap
Revision as of 00:48, 19 March 2010 by Grogyan (talk | contribs)
Jump to: navigation, search

The RepRap Team is considering the option of participating in Google Summer of Code (GSoC) 2010 as a means of increasing our development efforts.

With the development and rapid evolution of Mendel software, firmware and electrical areas of the RepRap project may be being out paced by hardware development. Current hardware designs have their limitations as well and certainly in the area of tool heads there are many directions we could take. What do you think? Got an idea that you haven't had the time to get off the ground? Add it to the list!

Software

Students interested in working on a software project should be familiar with the language specific to that project however generally a knowledge of Java and C++ will help in understanding existing code.

Ideas

  • Bring the RepRap host forward to support 64 bit operating systems.
  • Better stability of the Host across multiple operating systems and Java versions.
  • Consideration to port the Host to C++.
  • Implement a generic low-level C/C++ software driver that can serve as a tool for existing and future RepRap softwares. Requirements:
    • OS-independent standardized API - POSIX/Windows - multiple implementations may be required. API should be highly documented and finalized.
    • High stability - end product should be at a maximum as buggy as the best existing drivers - otherwise it will not replace existing per-application drivers
    • Multi-Firmware - firmware independence is essential to the longevity and usefulness of the proposed driver level
  • Multi-Use - Python back-end to allow ease of functional expansion; rather than re-write code to do something, make a plug-in
  • CAD/CAM tool set
    • Ability to have skienforge drive more than one color extruder from a single 3D model
    • Ability to have skienforge drive a second extruder to laminate fiberglass into a solid plastic build. Should be able to either define a fiberglass density and have it automatically alternate plastic and fiberglass, and to lay fiberglass down in different directions. Also ability to specify exactly where and how much fiberglass is added so that reinforced beams will have thick fiberglass tensile bundle along top and bottom, and also reinforce vertical and cross pieces.
    • Ability to have skeinforge select one of several orifices sizes on a single extruder, and to change the spacing and layer thickness to allow for the faster build-up of coarse, bulk fill setting on one hand, and fine detail with slow fill rate on the other. It should also build up the edges first for several layers, then medium fill near the edges and repeat until edges are built up enough to hold bulk fill stream.
    • Improve open source 3D modeling software to allow defining fiberglass reinforcing, and selecting different materials in single model.
    • Design rule checker for either 3D models, STL files, or G-code files to check for hard to manufacture spots like large unsupported spans not on the bed, details too small to resolve, objects too close to keep separate.
    • STL pre-processor that will estimate thermal shrinkage and make corners and bottom edge protrude enough to shrink to correct shape.
  • 3D scan software to take data from a spinning LED/laser and an offset CCD camera to produce a 3d top surface. Software to combine several different 3D scans of one item to get a more accurate model to replicate the part. A auto-replicate mode.

Firmware

Students interested in working on a firmware project should be experienced in C/C++ (the languages used in the RepRap firmwares). Knowledge of GCode, RS485, binary communication and embedded programming may also be helpful depending on the project.

Ideas

  • "The Network is the RepRap" - develop a network compatible firmware upgrade for the existing RepRap motherboard as well as software driver and the relevant electronics.
    • Implement the RepRap as a CANBUS device so that it can interact with external automated devices.
    • Implement the RepRap as a ethernet enabled device so that it can cheaply network with consumer off the shelf routers and switches. This will also speed up the downloading of fabrication files, allowing the host computer to disconnect or do other things.
  • Support for moving as much of the stuff that currently has to be configured in Firmware, and out and controlled by the Host, example using a thermistor or Max6675 thermocouple.
  • Smaller memory foot print, ie there is a lot of stuff being loaded into flash that doesn't need to be there or get used, so more use of #ifdef and porting in header files as needed would reduce this foot print.
  • Reduce the need for the CPU to calculate floating point numbers and just use straight integers.
  • A full embedded C version of the "Arduino code", meaning that any processor with a minimum spec can be used instead of ATMEGA range of CPUs supported by the Arduino IDE
  • Implement open source versions of the libraries used in the RapMan electronics (v3 and v3.1) so that a complete firmware package can be distributed and innovated upon by the community.
  • Additional challenges such as implementing an interactive serial over USB (or ethernet).
  • Add a SD or other flash card reader to the mother board to store one or more projects so that it can work off line. Modify firmware to support storing and retrieving files, models, etc. On board LCD display to allow selecting from the list of stored parts.

Electronics

Electronics may play into GSoC since firmware modifications are often hardware related. A working knowledge of ECAD such as Eagle is recommended here.

Ideas

  • Selectable extruders by headers rather than in in firmware for up to 4 extruders, and their special ID is controlled by a simple truth table of two bits.
  • Work with Makerbot to finish the RepRap Gen 4 Electronics
  • Make simplest electronics design for at least PCB be printed by reprap
  • Move towards easier to source and lower cost chips, instead of eclectic ones.
  • Support for offline printing from the SD card or other flash.
  • LCD, what can I say, just a generic 16 x 2 back lit LCD for all those little things you need to know at a glance like temperature.
  • All external extruders should not use an extra separate pair of wires controlled directly from the primary CPU as it is now for Gen 3 electronics, but instead be all controlled trough serial.
  • Adding to the electronics noise suppression circuitry.
  • Plug n play modules to the serial comms to allow the choice of remote printing either by Ethernet | Bluetooth | WiFi on top of USB to seial FT232RL.

Hardware

Again due to their relation to electronics and thereby software mechanical design skills and MCAD is a part of the interdisciplinary skill set which could help GSoC 2010 student applicants. OpenSCAD and Solid Edge specifically are commonly used within the RepRap community and core team.

Ideas

  • The Cartesian robot should be changed as much as possible to replicatable parts that should just "snap" together, like so many plastic products made in China.
  • Port the tool change system to Mendel and integrate it with existing print heads.
  • Work on making a printable drive/support system, using some form of a Sarrus linkage
  • Heated Bed - it's the most important add on to RepRap however everyone is still doing his own version. We need to develop a cheap, accessible and simple Heated Bed.

Documentation

  • Create an interactive guide that help someone to build a RepRap so that the entry level of building one is lower.

External Links