Monday 28 January 2013

How to control multiple 3D printers? BFQ

I don't know if anyone else has done this, but I think it would be useful to be able to create a queue for the parts you need printed on a reprap and have some software that works out how to lay it out on the bed, slices it, and starts the print whenever a printer is free.

I've called it BFQ (Bot Farm Queue)!!


Minimal configuration:
  • Printers all have different size beds. Program must be preconfigured with a list of printers and their corresponding sizes.
  • Printer beds are now different shapes. We need to accomodate standard rectangular as well as circular/triangular delta bot beds - I'm talking Rostock.
Optional configuration
  • dual extrusion enabled?
  • multicolor extrusion?

Users will add STL files to a queue. The program works out that printer A is available with a 200 x 200 x 150 mm built platform. The first item in the queue is selected and laid out on the bed in Slic3r, followed by as many as possible of the remaining items. When the item at the front of the queue doesn't fit the program should look for smaller items further down the queue to fill the bed with. Slic3r would then generate the required gcode and the program uses pronsole.py to send the code to the required printer.

Difficulties
  • Program must 'auto layout' STLs in Slic3r. Slic3r's built in function for this is currently not that advanced.
  • We must find a way to connect 10, 20, 100 printers to a computer. This may be possible using a simple USB hub but needs testing and a way to send the print command to the right pronsole instance connected to the right printer. (assumes 1 instance of pronsole running for each connected printer)




When I have some time over the next month I may start experimenting with some of the required features. Step 1 for me is sorting out the auto-layout. I think if I can crack this then the rest should be easy (famous last words).

If you want to help or have any suggestions please comment below :)









Too many orders for reprap printed parts!

It's not every business that has the luxury of having too many orders but I have found out first hand that the demand for printed reprap parts far outweighs the supply.

The issue is simple: it takes a printer between 10-20 hours to print parts for another printer, meaning that if you sell more than 1 a day you can't keep up with demand (with only 1 printer of course).

A simple solution of course is to print myself more and more printers and use those to print the orders but I don't have the time or the space at the moment to run them all. I am currently building myself a brand new awesome rostock printer which I will blog about as I build it over the coming weeks. This will partially solve the problem, but I still think that demand for repraps is increasing much faster than supply.

Will this mean a price hike - I doubt it, but the longer lead time for acquiring parts may put some people off. I hope that as designs are iterated and improved the parts required for building will become cheaper and the electronics should become cheaper due to normal mass production in China.

After looking around and finding many many reprap online shops with a banner saying 6-10 weeks waiting list, or closed until demand calms down - I don't think I'm the only one with this problem.

It's a really exciting time for 3D printing and the reprap project as demand is absolutely exploding. I urge anyone with a 3D printer to print as many printers as possible for other people as this is the primary bottleneck for rapid adoption. Giving them away would be even better, but even selling the parts feeds the printing ecosystem and opens the doors for more designers and engineers to play with this awesome technology!

Monday 21 January 2013

Reprap Resuming a Broken or Paused Print

A pain that most of us 3d printers always come across eventually is a failed print due to lost connection, power cuts, etc. Recently I was controlling pronsole.py over ssh and the LAN failed. The best solution is to run pronsole as a background process (press cnt-Z and then type bg at the prompt) which will keep the process running after a lost connection. This time though I forgot and I was 2.5 hours into a print!

After months of ripping off the busted parts and chucking them I figured it was time to learn to continue or resume a busted print.

  • reconnect to pronsole over ssh (on my raspberry pi!!)
    • OR open pronterface (or other host software)
  • connect to the printer again
  • type M114 : Get Current Position
  • open the Gcode in a txt editor and find the Z height returned by M114
    • delete all code above it
  • search in the remaining code for the X coord followed by the Y coord (beware of rounding errors)
    • Once you find a match delete all code above that line.
  • save the file and load it into pronsole (or pronterface)
  • print
If all goes well the printer should continue as if nothing had happened!

Best of luck, and please comment about your experiences with paused/broken prints and how you resolved them.