0

I have the electronics for a RepRap 3D printer (arduino MEGA 2560 + RAMPS) and I would like to add a few additional modules:

  • Cameras to use as a surface scanner (even something kinect-like). They are used only to detect the shape of an object already present on the base before printing.
  • A syringe interchanger (possibly using magnets)
  • A RFID reader to identify the syringes.
  • SD Storage

I'm at the starting phase of the project and don't know very well where to begin. Do you think the arduino will be enough to manage all the modules?

Any pointers on resources or problems I could find will be much appreciated.

HenryHey
  • 117
  • 5
  • 1
    This question is way too vague, and can't be answered in its present form. – Dave Tweed Dec 21 '12 at 12:55
  • 1
    Actually the actual question, which is at the end, is answerable, and with one word. The word us "no" on account of the camera if for no other reason. Of course one could use a webcam direct to a pc, but then the point of the sdcard would be questionable. – Chris Stratton Dec 21 '12 at 13:23
  • 1
    The Arduino is far too under-powered to handle real time video processing. You'd be much better off using a Raspberry Pi with a Linux OS for that type of stuff. And you can use the Arduino as a peripheral if desired. If you must really want to use an Arduino, you could, but the 3D printer would be slower and it would be much harder to program from an Arduino. You can see http://electronics.stackexchange.com/a/50038/9730 for an idea on using the Arduino for video processing. – Garrett Fogerlie Dec 21 '12 at 14:24
  • Sorry for misleading you about the camera usage, I tried to explain it better. – HenryHey Dec 21 '12 at 16:20
  • My impression is that in these printers, the ATMEGA-based controller doesn't really know the geometry of the model, but rather it has "compiled" operations something akin to G-code to fairly blindly execute. So knowing the base geometry, even with all the computer-vision problem solved in some smart camera, probably isn't going to be information it can utilize. You'd be better off putting a "computer" (micro PC or high end ARM board running a full linux) in the base with a USB host port for the camera and your adaptive algorithms, and keeping the ATMEGA board just as a motion delegate. – Chris Stratton Dec 21 '12 at 16:33
  • 1
    I think this question bring up a very interesting aspect which is that usually people underdesign their processing because the arduino is simple to use. In reality, it is best to start with a relatively powerful processor and then scale down once you see how much performance you need. Otherwise, you'll be constantly wasting time optimizing instead of solving the main issue. – Gustavo Litovsky Dec 21 '12 at 17:32

1 Answers1

4

The Atmega Arduinos lack the power to do any serious computation. Another shortcoming is the low number of interrupts you can use. (8bit @ 16MHz, 2 external IRQ)

The new Arduino Due has a much stronger CPU, the same form factor and price as a Mega, and can handle more IRQs. (32bit @ 84 MHz, as many IRQs as pins)

One problem is the change in I/O Voltage, which is now 3.3 V. RAMPS should be working with minor tweaks, see here

Then again, you may want to do the heavy lifting on your computer, or any one of a number of ARM dev boards, and just send the g-codes to RAMPS. Look at Raspberry Pi or maybe STM32F4discovery, or netduino for that matter.

posipiet
  • 1,484
  • 8
  • 5
  • +1 for the Arduino Due, I hadn't heard of it. Finally a reason for me to buy an Arduino like product. – Garrett Fogerlie Dec 21 '12 at 13:55
  • I can't seem to find the processor for the Arduino Due, the AT91SAM3X8E, from any distributor. In fact, I couldn't find any SAM3X on Mouser at all. Do you happen to know if it is a new item, or what? – Garrett Fogerlie Dec 21 '12 at 14:08
  • Availability: http://www.stkcheck.com/evs/atmel/atmelheader2.asp?mfg=atmel&part=ATSAM3X8E ; afaik it was introduced Q2 2012 and seems to be a pretty standard implementation of ARM Cortex M3. – posipiet Dec 21 '12 at 14:51
  • 1
    Even a Cortex M3 may not be up to the task of adapting to build geometry, and simply porting the existing functionality to it will be a substantial project (though it would be good for someone to tackle that). – Chris Stratton Dec 21 '12 at 16:35
  • @posipiet thanks, I guess my problem was I didn't have the correct part, I searched for AT91SAM3X8E instead of ATSAM3X8EA. – Garrett Fogerlie Dec 22 '12 at 05:11