So... if there is anyone out there willing to help me unravel the mysteries

So… if there is anyone out there willing to help me unravel the mysteries of dc motors w/ optical rotary encoders, for ingentis variants, my research has led me here. I state once again that I suck with the arduino coding. I believe this is the next logical step in 3d printing. DC motors are faster lighter and cheaper. The encoders are cheap and easy to salvage as are the motors (2d printers). 2d printers moved to this tech while gaining resolution and cutting costs. HELP ME!!! I can figure out the circuitry necessary and the microcontroller hook ups to make it work. I haven’t the foggiest on how to make it play nice with current boards though; which is a must to make this viable.

@Miguel_Sanchez mentioned to me that this would be best with a mcu for each motor. if so the leonardo micro knock offs are like 8 bucks eack on ebay. we could have each programmed to send signals to the normal reprap electronics. Even have the micro translate rotary encoder position to endstop commands. Then the output pins on the micro would send a signal telling the mega,due,etc… that max/min endstop has been hit and no physical endstop would be required. and with the micros taking the processing power the mega could have room for other features. Since the stepper drivers wouldn’t be there to utilize all pins. The micros and h bridges could free some pins up. Anyone with a better idea see something I’m missing? I could very well be wrong.

The way they do in in the article above is no longer based on pulse/direction pins which was your previous requirement. For doing it on a single processor you need speed and to capture all the interrupts caused by the encoders. In the example above I do not see how they can keep up with the four encoders, as only two external interrupts are available and the source code mentions only X/Y (two axis support). Not keeping the pulse/direction interface will require some modification of current firmware (Marlin?). Still, it is a very interesting direction you are exploring (though I am doubtful about its cost effectiveness if all elements are to be bought).

@Miguel_Sanchez you are talking about cost effectiveness with the guy who put 6 1204 c5 ground ball screws into 1 printer ;). I think the speeds and super accurate encoders would be worth $16 dollars in arduino micro clones, $ 5 bucks in h bridges, and scrounged encoders and motors. Dead printers are everywhere. hell drv8825 drivers are most of the replaced cost. I would probably keep the z as a stepper as I am not looking to increase its speed like the x and y axis. What I believe is easiest is for the arduino micro to emulate a stepper. It would read all of the encoder information and process commands to and from the board. It would be possible to print an enclosure that houses the motor, encoder, arduino micro, h-bridge, and also serves as it’s own t-slot mounting bracket. Just add a drive pulley and connect to the power, and maybe use something like a blank a4988 driver board as an interface for connecting wires to a standard printer electronics board. Also if we like this setup we could design some dev boards using a mpu directly on the same board as the h-bridge and the stepper driver adapter could be wired on the other end. This would be less to put in an enclosure. I want this to be an easy upgrade anyone could do should they desire. If we make the boards popular china will do the rest! Then we’ll just get it off ebay and resolder everything. Then we’ll crack open a inkjet or two and away we go!

@Miguel_Sanchez do you think the due could handle all 4? use it alongside the standard electronics. Or even embed the mpu into a dev board with h-bridges and send 4 or 5 wires to each motor+encoder unit. two to power the motor and 2 or 3 for the encoder signals.

Wish i could help you out with this friend but my coding skills are far from this also. Great direction you are going tho.

@D_Rob I haven’t given much thought but in order to keep up with the pulses at least one of the two signals of each encoder needs to cause an interrupt. Arduino UNO has two external interrupt pins (but Mega has six and Leonardo five!) , so I can see how it can handle two encoders.

But given the price of a microcontroller like Attiny85 it may well be better to have one controller per motor and keeping the step/dir interface for compatibility with existing software.

I had organized 3D printer building workshops and I have a critical eye for easy scaling. While using scrapped motors or controllers you have on your desk is great, other people may need to buy all of it in order to replicate your build. It is in that case when an approach might prove not cost effective unless the sum of all the costs is still lower than what you are replacing. Currently a stepper driver can cost less than $4 and an stepper around $8 in bulk, so that is the cost we are fighting for. I guess a DC motor can be had for $5 so this leaves around $7 for encoder and driver electronics. But I can see motor+encoder can reach interesting price points if bought in bulk:

However, let’s not forget low cost brushed motors have a limited lifetime :slight_smile:

@Miguel_Sanchez see what I mean about cheap 3pcs arduino nano:



but this is probably best for this application:

motor/encoder which is typical in a 2d printer. these things have much higher resolution than the 200 step per rotation stepper motors.:

@Miguel_Sanchez look at this gold nugget:

@Mike_Miller you are invited to this discussion as you showed some interest the other day.

@D_Rob It seems you can pair this with a Mega2560 board to have a four motor controller. More info

@Miguel_Sanchez do you think this could be “plugged” into the vacant stepper driver plugs on a ramps, rumba, etc? If so this is a simple solution for around $10 per motor/encoder and $23 for the driver board which covers 4 motors. A single extruder all DC motor conversion would only cost $63. 4x $5 a4988 is $20 and $12 per steeper motor is common so $48 for 4 total $68. DC motor are $5 cheaper.

Anything similar at 24v?

@D_Rob For plug and play I reckon one driver per motor is going to be simpler. More cost effective might be to have a single controller for four (or more) motors.

Now that I think about it, while encoder signal is time critical, the step input might become critical too once you reach a certain speed (meaning you might want it to be an interrupt-based input too).

Going up in the voltage does not work the same as for the steppers as these H-bridges are (usually) not constant current drives, meaning that raising the voltage above nominal voltage may damage the DC motor (and maybe increase the current beyond H-bridge limit).

I think the guy that pulls this off will do a GREAT service to the hobby. The motors are significantly cheaper, and our printer suffer (when not properly adjusted) from a lasck of closed-loop-ed ness.

I’ll watch with great interest as it’s a bit out of my skillset.

This is an interesting Proof of Concept, if not quite there from a precision standpoint…

Thinking about the tech in inkjet printers:Anything that’s capable of reliably spitting out 22 pages per minute, laying down 300dpi ink droplets on a sheet of paper (8.4 million addressable dots from 4 channels (CMYK) with dithering) could SURELY place some plastic.

@Mike_Miller , the ink droplets are that high res due to thousands of nozzles on the end of the print head. Not due to positioning accuracy of servos.

Interesting thing that. :slight_smile: There’s also the benefit of steady state operation, the motor doesn’t need to stop partway across the page and change direction.

Still, it’s an interesting lesson in driving the technology to the cheapest possible solution.

I think a BBB running LinuxCNC will be your fastest route to a servo 3d printer.

Or really just a LinuxCNC desktop box to start with. You can hack together a velocity controlled extrusion setup pretty quickly using slave axes and such, and LinuxCNC was born for servo control.

@Nicholas_Seward you are the guru of all things unique in reprap. What say you?