Ideas to place

From RepRapWiki
Jump to: navigation, search

Got an idea for RepRap that you haven't had the time to get off the ground? Add it to the list!

The RepRap Team is considering the option of participating in Google Summer of Code (GSoC) 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?


Getting Started

The first step is to join reprap-dev, the friendly but technical mailing list for all you friendly but technical people out there.

It's compulsory more fun this way.


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.


  • For people that want to make one tiny change to the software, write a well-documented README.txt or INSTALL.txt (perhaps a copy of installing RepRap on your computer and microcontroller firmware installation?) that
    • 1. quote exactly what commands to type to download the latest version of a full build environment (Eclipse, Subversion, Arduino Development Environment, etc.), the host software source and the firmware source, and a standard test object.
    • 2. points out a few locations in the source that are popular things to tweak (user-adjustable #define lines, etc.)
    • 3. quote exactly what command(s) to type to re-build the tweaked host software, re-build and download the tweaked firmware, and use it to print out a standard test object.
  • autobaud: make host software automatically detect whatever random baud rate today's firmware uses. (Test response to high speeds first, then slower speeds).
  • Combine the efforts of ReplicatorG/Skeinforge and the Host software.
  • Pleasant3D has some very fast skein tools- we should attempt to incorporate it into Skeinforge/Host software
  • 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 from Java to C++ or Python. Java is a relatively weak programming language compared to C++ or Python. However, isn't Wiki:RewriteCodeFromScratch one of the Wiki:ThingsYouShouldNeverDo ?
  • Consider porting the Host RepRap software to Android: Reproid. Does "substituting an Android-powered device for a PC" meet the "Ability to print autonomously without a PC attached." criteria for the Gada Prize ?
  • 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 that directly imports into the Host
    • Package a free, open source CAD/CAM tool with the Host (OpenSCAD, Blender, etc)
      • Have a plugin/feature in one of those tools that allows STL's to be directly skein'd from the program, and then opened inside of the Host
    • 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.
      • See Fibre Core for more ideas on combining glass fiber with plastic extrusion.
    • 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.
  • Whatever happened to the ShareRap project?[1][2]

RepRap fax machine

  • "RepRap fax machine": a FTP-server-like application on a standard PC connected to a RepRap that lets people anywhere in the world submit parts to a job queue (presumably in STL format), and then later automatically streams them to the reprap.
    • By default parts are "on hold until local operator approval" until the local operator approves or rejects them.
    • perhaps let remote people see all the jobs in the queue and the estimated time start print and end print times.
    • If there is room on the print bed, perhaps print parts from several people at once.
      • The highest-priority part is always printed. If the next-highest-priority part won't fit on the at the same time bed, perhaps a few small low-priority parts can jump ahead in the queue and get printed.
    • perhaps specify the kind of plastic needed, so that when a spool of ABS is loaded, only ABS jobs are run. Later when a spool of PLA is loaded, all ABS jobs are put on hold indefinitely and PLA jobs are run.
    • Is this the same as RemoteElectronicPullRenderingAndProvisionSoftware ?
    • Is this the same as BotQueue ?
  • "RepRap remote monitor": A webcam-like application on a standard PC connected to a camera and (perhaps indirectly) a RepRap, that lets people anywhere in the world watch live video of the RepRap at work (perhaps from several cameras at different angles, one of them mounted on the working tool head). Also see some related data -- extruder temperature, bed temperature, name of the part(s) currently being printed, who requested these parts, etc.


This page has been flagged as containing duplicate material that FirmwareWishList also attempts to cover.
These pages should be merged such that both pages do not attempt to cover the duplicate topics.

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.


  • "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.
  • Smaller memory foot print, i.e. there is a lot of stuff being loaded into flash that doesn't need to be there/doesn't get used, so more use of #ifdef and header files as needed would reduce this foot print. Teacup Firmware has many attempts in this direction already.
  • Reduce the need for the CPU to calculate floating point numbers and just use straight integers. Teacup Firmware is all integer calculations, but not widely adopted yet.
  • 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).
  • Modify firmware to support storing and retrieving files, models, etc.


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


  • 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. (or why not make it 8 extruders and 3 bits... e.g. cmyk+support, just sayin')
  • 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).
    • Add support to select builds on the LCD, and load them off the SD card.
  • 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 serial FT232RL.
  • Adding g-code to start print at certain date and time.


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.


  • 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.
    • One 3D printer design that doesn't require nuts or bolts or threaded rod or the wrenches needed to tighten them: "getting rid of Mendel's nuts" (It requires 9.4mm aluminium tubing held together by printed plastic parts and assembled with mallet)
    • Another 3D printer design eliminates the metal frame entirely: Tantillus. (Alas, Tantillus requires big pile of nuts and bolts).
    • How about besides the 3d printed parts, only need some roof screws (at worst) and a piece of lumber for sawing (besides the rails and the extruder). 3D printed parts includes rack gears so no belts are required (optional 3d printed corners).
  • 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.
  • Switch over to thermocouples to monitor temperature
    • Crowd-source the production of thermocouples
  • Should have a separate or attached addition to any 3D printer that melts back down failed projects and into usable filament in minutes. Recyclebot Recycler Re-Extruder
    • Why make filament from 3d parts? chop the stuff up, put in a tank, pressurise this tank, and tubes going out and coming back in to blow the bits along tubing into the moving extruder which then melts the air-preheated parts down, the pressure that exists in the tank and tubing forces the flow out. There is then the complication of turning off (or diverting) the flow...


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

See also

External Links