EMC02 - New motion controller board

540 views
Skip to first unread message

Neil Jansen

unread,
Jan 23, 2015, 12:12:03 PM1/23/15
to fire...@googlegroups.com
After listening to a lot of feedback from the recent survey and other responses in the group, I've decided to make a new motion controller board that answers some of the problems with the first one.  The trouble I've had getting the Atmega1284p bootloaded has also driven this change.  I still think I can get them working, but did this as a backup mitigation strategy.

The biggest difference is that this version holds an Arduino Mega 2560, RAMPS-style.  Unlike the RAMPS, this new board has the same hexagonal shape as EMC01, and has the same modular tool interface, which makes wiring very simple, and keeps all of the awesome features of the EMC01.  The modular tools are great because you get four (4) of them instead of two (2) like  the RAMPS.  And they're interchangable, and each module is hot-pluggable, and stores its settings into the tool, which means you no longer have to change config.h settings in Marlin/Repetier/etc., you can just plug them in and they will work.  We still have a bit of software to fully implement this, but I'll need these boards to do that.

Please note that this board is really just for beta testing and development usage.  Once everything is working well, the plan for me will be to go back to something like the EMC01 for the end-users that want to buy kits from me, assuming they don't want to hack their system up, they just want it to work.  I do think having the arduino shield form factor is great for development, but it doesn't make any sense for a consumer product.  So hopefully EMC01 and EMC02 will coexist nicely when the time comes.

We have the ability to have this board eventually support an Arduino Due as well.  It will require some buffering and whatnot, but there's plenty of room to add those parts on the board.  This means we can support faster delta calcs, and a few other clever things that I've got in mind.  This form factor is also able to hold a BeagleBoneBlack instead of an arduino in the middle, or a Raspberry Pi.  This opens the door for using the BeagleBoneBlack's builtin hardware I/O to do the motion control with RT-Linux and/or LinuxCNC... 

Pin-wise, it's not the same as a RAMPS, I moved the pins around to better suit the layout of the board.  But our fork of Repetier will support it no problem.  Other than that, it's very similar to how a RAMPS board works, in that it's just a breakout board, and limits the risk of screwing up bootloaders (like I'm going through now with the EMC01).  It's unlike a RAMPS in that the Arduino is on the TOP, and the breakout board is on the BOTTOM -- that is, it's flipped :)  This works a lot better, as it's got a wider footing and looks cleaner this way.  


First rev of EMC02 (please ignore the horizontal line artifacts, they're just Adobe Reader being dumb)

Inline image 3

Original EMC01 board for reference (to scale):
Inline image 2

Schematic is attached.  Please note this first version is really just a proof of concept to make 100% sure Repetier and the fastio.h code can in fact run the board with the specified pin configurations.  I still need to add buffering so that it can be 3.3V compatible for the Arduino Due, and breakouts for the extra I/O.  If anyone has any suggestions as to what to do with the extra I/O, or extra features, let me know.  

  • Buffering for 3.3V or 5V compatibility.  Use IOREF pin to determine 3.3 or 5V.
  • Two dedicated fan channels
  • PS-On (power supply on) for ATX power supply on/off
  • Jumpers for power supply selection - 12V power to Arduino (open/shunt) -- Note, opening this means the Arduino is being powered from USB.  Closing means the arduino is being powered from the EMC01's +12V.
  • Jumpers for power supply selection - 5V power to Arduino (open/shunt) -- Note, opening this means that the emc01 would need a voltage regulator added to the pcb and must provide its own +5V.
  • Jumpers for power supply selection - 7812 regulator bypass.  For folks that want to experiment with 24V.  An optional 7812 regulator can be added, which would allow +24V to the motors, which would be regulated down to +12V for the arduino and 5V regulators.
  • Extra I/O breakout.  Right now, all of the odd pins between D23 and D53 are open.  I have a plan for them once the Due version is working, but need to investigate if it's even possible... it might not be.  we'll see.
  • Eventually I'd like to replace the Stepsticks with DRV8825's.  Right now keeping them like this, lets us experiment with genuine Pololu's, DRV8825's, or anything else out there, to see what works best, and at what microstepping configuration.  These boards have jumpers/shunts, whereas the original EMC01 board did not.

I made this board in about 7 hours last night :)  I'm getting 5 boards made, if they work well, I'll turn the faucet on and make 100 more.  Hopefully I didn't make any stupid mistakes, but obviously, it's a very simple board.  Will be checked into github very soon (I'm on lunch break now, will have to wait until this evening at the earliest).


I'm open to any comments / suggestions / criticisms.

EMC02.pdf

da...@dalewheat.com

unread,
Jan 23, 2015, 12:50:59 PM1/23/15
to fire...@googlegroups.com
Someone's been busy!  Good work.  It's always helpful to have a different platform for testing.

I'm not clear on the orientation of the Arduino MEGA 2560.  Is this a big shield?  Are you showing the top or the bottom of the board?  I'm holding an Arduino MEGA 2560 in my hands as I write this, and I can't see how things plug together.

Please pardon my obtuseness.


Neil Jansen

unread,
Jan 23, 2015, 1:07:00 PM1/23/15
to fire...@googlegroups.com
Like this: (see attached)
--
You received this message because you are subscribed to the Google Groups "FirePick" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firepick+u...@googlegroups.com.
To post to this group, send email to fire...@googlegroups.com.
Visit this group at http://groups.google.com/group/firepick.
For more options, visit https://groups.google.com/d/optout.
IMG_1755.JPG

ICEC

unread,
Jan 23, 2015, 1:22:46 PM1/23/15
to fire...@googlegroups.com
Ahh . Not a bad idea indeed

As for extra things to do with pins ,
I always was thinking , I know FPD is modular , so when 3d printing with a heatbed, you will have the extruder stepper, a termistor, and an mosfet to drive the heating element . All on the 3d EAT01 tool board.
modular. sweet
but what about the heatbed.
Now it looks like ill have to connect the heatbed to a second EAT tool board to get it going when 3d printing , not the biggest problem cause the pick& place eat board probably doesnt need the mosfet to heat anything ( o yes for the switch) .

having an onboard dedicated connection for the heatbed on the emc makes some sense to me.
If we are not using the heatbed we are not removing it eather way , so the wires would have to run nicely. and not be connected to any tools.

heatbed would be a standard thing. not mudular . but a choice if you use/need it or not
Bye the way , the heatbed needs a termistor too.

so that will help you get rid of at least 2 more pins .
keeping the 4 modular tool fully free for the purpuse of the tool ( stepper driver , mosfet, termistor)


My idea

EAT  3D-Tool
Mosfet --> Hot-end heater                         Heatbed needs a pin / heatbed termistor needs a pin ( static,non modular add-ons)
Termistor --> tip temp
Stepper --> extruder  

EAT PnP-Tool
Mosfet --> Inline valve or vacuum pump ?              so one of the 2 still needs a pin
Termistor --> not needed       
Stepper --> hollow shaft for rotation  

EAT Solder-dispenser-tool
Mosfet --> Hotend heater    
Termistor --> not needed       
Stepper --> extruder  

Keeping one tool completly free still , and all tools modular that I can completly remove easy  , without having 2 tools attached to each other

my 2 cents for now

Igor

Neil Jansen

unread,
Jan 23, 2015, 1:31:20 PM1/23/15
to fire...@googlegroups.com
I like keeping the heated bed modular (via another EAT0001 as you say), because we have a LOT of people that don't want to use it for 3D printing at all.  If someone does decide later, they can just buy the plug-in module, and won't have to do any reprogramming or rewiring or anything.  It's all modular.  

For the PnP tool, the analog in will be used for a pressure sensor, instead of a thermistor.  We're adding code to OpenPnP to do make use of this at some point.



ICEC

unread,
Jan 23, 2015, 1:52:39 PM1/23/15
to fire...@googlegroups.com
Ok ok , I do understand why its your choice , and it seems logic to me too keep it to that
but if your having spare pins anyway, (develpment board). why not make a few unpopulated tru holes for that purpuse . for the guys like me that intend to test the limits in applications and are using it as true tools to build our visions and thouths any way we can

print parts one day , pick & place the next , print some cholalate, lazer engrave some logos . you never know what idea may hit you in the morning when your in the shower.

So it kinda makes sens to me to keep the EAT boards as specific to one tool as possible . so one board one tool , and not use 2 EAT boards to do one thing ( 3d print or Pick and place)
that does mean the heatbed needs a different connection , and the vacuum pump also I think, as it looks like its the inline valve we want to be triggering when pick and placing.
but will keep my EAT boards to a minumu, 4 boards , 4 completly differen functions . vacuumpump and heatbed I will not remove from the FPD even when Im not using them
else ill need at least 6 of them , or Ill have to switch back and forth with the wires. Not my idea of modular


So thats my thout . Im not trying to push you in any direction cause I can just as easily make a fork and try it out myself.
just sharing my thouth on the matter , Maybe it makes sense for a few more people


As an example for new ideas that just hit you from nowhere
New pin usage idea
What about adding a few pins (experimental) for an ESP8266 wifi module ?
Seems the module is verry capable, cheap and people are doing lost of things with it ,maybe we could use it nicly in our board , making it wireless ( it that works)
I have no clue if thats anything feasible . but I did buy a few of them just to look what can be done.
so at some point if I can connect it to the board would be nice . ( dont know if it makes any sense)

Igor

Karl

unread,
Jan 23, 2015, 2:05:08 PM1/23/15
to fire...@googlegroups.com
Neil, will I be able to drive a 5V solenoid of of EMC02?

(vacuum switch)

Neil Jansen

unread,
Jan 23, 2015, 2:09:27 PM1/23/15
to fire...@googlegroups.com
Via EAT000x modules, yes.  And I may add 1-2 solenoid outputs to the main board, but probably intended as pin drag feed for SMT tape.. But yea, could be used for vacuum solenoids and whatnot, in a pinch.  But I'd say if you're doing the integrated nema 8 tool with nozzle, then ideally it should go on the EAT000x board.. The EAT0001 does support a MOSFET output for this already :)  you'll have a few in the mail to play with, by next week hopefully if my bad luck streak from this week is over.  Sorry for the rambling reply :)


On Friday, January 23, 2015, Karl <ka...@firepick.org> wrote:
Neil, will I be able to drive a 5V solenoid of of EMC02?

(vacuum switch)

--

Joshua Pritt

unread,
Jan 23, 2015, 2:30:58 PM1/23/15
to fire...@googlegroups.com
Dang, Neil.  Does this mean all that work I saw you doing for the old boards goes in the trash!?

Neil Jansen

unread,
Jan 23, 2015, 2:34:53 PM1/23/15
to fire...@googlegroups.com
Nope, they can be bootloaded, even if I'm having issues doing so at the moment, so they'll all get good homes (mostly with end users and non-developers).  I'm switching out the stk500v1 for the optiboot tonight, which should work from what I've read.  We'll see.

ICEC

unread,
Jan 24, 2015, 12:07:54 PM1/24/15
to fire...@googlegroups.com
Im still not getting why you guys are not doing it my way  (bitbang as my blog post), Ive seem to have no trouble burning the bootloader or uploading sketches
just doing that in a different way. yes its a bit messy .and still needs to get fixed for a easy working board . but it works for the boards already out now.

Igor


 

On Friday, January 23, 2015 at 8:34:53 PM UTC+1, Neil Jansen wrote:
Nope, they can be bootloaded, even if I'm having issues doing so at the moment, so they'll all get good homes (mostly with end users and non-developers).  I'm switching out the stk500v1 for the optiboot tonight, which should work from what I've read.  We'll see.

On Friday, January 23, 2015, Joshua Pritt <ramg...@gmail.com> wrote:
Dang, Neil.  Does this mean all that work I saw you doing for the old boards goes in the trash!?
On Fri, Jan 23, 2015 at 2:09 PM, Neil Jansen <njan...@gmail.com> wrote:
Via EAT000x modules, yes.  And I may add 1-2 solenoid outputs to the main board, but probably intended as pin drag feed for SMT tape.. But yea, could be used for vacuum solenoids and whatnot, in a pinch.  But I'd say if you're doing the integrated nema 8 tool with nozzle, then ideally it should go on the EAT000x board.. The EAT0001 does support a MOSFET output for this already :)  you'll have a few in the mail to play with, by next week hopefully if my bad luck streak from this week is over.  Sorry for the rambling reply :)


On Friday, January 23, 2015, Karl <ka...@firepick.org> wrote:
Neil, will I be able to drive a 5V solenoid of of EMC02?

(vacuum switch)

--
You received this message because you are subscribed to the Google Groups "FirePick" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firepick+unsubscribe@googlegroups.com.

To post to this group, send email to fire...@googlegroups.com.
Visit this group at http://groups.google.com/group/firepick.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "FirePick" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firepick+unsubscribe@googlegroups.com.

To post to this group, send email to fire...@googlegroups.com.
Visit this group at http://groups.google.com/group/firepick.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "FirePick" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firepick+unsubscribe@googlegroups.com.

Alan

unread,
Jan 25, 2015, 2:37:52 AM1/25/15
to fire...@googlegroups.com
Cool!

I've been thinking about the 3V3 and 5v thing on the EAT boards. There's no pin that lets you know what logic voltage the EMC is running at. I think adding an IOREF pin would make sense on the modular tool connector. Even a 5v line would come in handy to pull stuff up to. BUT that means changing the connector. If everything on the Modular tool went thru a buffer, there's already a 5V reg on there to pull it up to. Then boards could be plug and play with any 3V3 EMC or EAT boards without having to sense the voltage. If the buffers on the EMC side you always have 5V fed to the modular tool which could be 3V3 at some point. The hard/expensive part would be the analogue and i2c pins, it would probably be cheaper to use a small ardiuno with eeprom + I2C transistor level shifter?


On the topic of the heaterbed + hotend not fitting on one EAT. If the EAT had a small arduino running as a I2C slave that looks exactly like a EEPROM you could read and control as many things as you want. (it might approach the max current tho?). This could also allow for smart pick an place heads. You could probably add a filament sensor and servo/ bed leveling to this?

I was also thinking about some form of E-stop pin as well on the EAT modular connector. There's an enable on there for the stepper but say you wanted to e stop the small arduino that has heater plates running of it.. But I guess the E-stop could be switching / on off power to the modular tool.

Speaking of switching the modular tool power, If you have spare pins measuring the input supply voltage can come in handy, also measuring the supply current, even to the extent of measuring how much current each modular tool is using so there could be a switched of if there's a overload.

And extra pins could also drive test /self test mechanism's, like test a mosfet is working by monitoring the output pin voltage, if you see a high low transition you still have control of it, it would be awesome to self test the stepper controller like that, who hasn't blown up one? lol. A mosfet could be added in places to cause short's to test temperature sensor measurement, switch between 0v, 5v 100k. toggle a hardware watchdog circuit? 

Neil Jansen

unread,
Jan 25, 2015, 11:15:35 AM1/25/15
to fire...@googlegroups.com
On Sun, Jan 25, 2015 at 2:37 AM, Alan <alang...@gmail.com> wrote:
Cool!

I've been thinking about the 3V3 and 5v thing on the EAT boards. There's no pin that lets you know what logic voltage the EMC is running at. I think adding an IOREF pin would make sense on the modular tool connector. Even a 5v line would come in handy to pull stuff up to. BUT that means changing the connector. If everything on the Modular tool went thru a buffer, there's already a 5V reg on there to pull it up to. Then boards could be plug and play with any 3V3 EMC or EAT boards without having to sense the voltage. If the buffers on the EMC side you always have 5V fed to the modular tool which could be 3V3 at some point. The hard/expensive part would be the analogue and i2c pins, it would probably be cheaper to use a small ardiuno with eeprom + I2C transistor level shifter?

I'm thinking about handling that in a slightly different way.  Right now, the EAT0001 has its own +5V regulator, and assumes that all of the digital and analog signals are +5V.  On the EMC01 board, they're pass-through and go right from the modular connectors (J11-J14) right to the atmega1284p.  In the case of the EMC02, you're simply adding some buffering chips to the EMC02 PCB, and this means the EAT000x design stays exactly the same.  There would be a buffer (or set of buffers) that take all of the 3.3V logic and makes the output of the buffer match whatever is on the IOREF pin.  For analog input, it would go through an opamp that would scale the output between 0 and IOREF.
You can absolutely make an EATxxxx module that has an on-board ATTiny or Atmega.  In fact, I would think that most of the really crazy modular tools that pop up later, including a brushless outrunner motor for PCB milling and drilling would use a microprocessor instead of an EEPROM.  I fully encourage this, but at the same time, I realized pretty early that we needed to hit Minimum Viable Product stage really quickly, and I didn't have time to write that code.  So the EEPROMs are basically the simplest way to implement it, yes, but we can certainly (and should certainly) throw microprocessors on there down the road.  This is also how I plan to implement more than 4 modular tools down the road.  Basically you'd have a "hub" that uses a microprocessor to expand that one input address to multiple output addresses.
 

On the topic of the heaterbed + hotend not fitting on one EAT. If the EAT had a small arduino running as a I2C slave that looks exactly like a EEPROM you could read and control as many things as you want. (it might approach the 
max current tho?). This could also allow for smart pick an place heads. You could probably add a filament sensor and servo/ bed leveling to this?

Yep, exactly :)  Now you're getting it :)  The modules are the place to do fancy stuff like this.  No need to add filament sensors onto the main board, especially since well over half of the people that are willing to buy one right now may never need a filament sensor at all, let alone 3d printing capability.  Keeping it modular is the way to go.
 

I was also thinking about some form of E-stop pin as well on the EAT modular connector. There's an enable on there for the stepper but say you wanted to e stop the small arduino that has heater plates running of it.. But I guess the E-stop could be switching / on off power to the modular tool.

I've had a lot of experience with E-Stop circuits, as one of my first entrepreneurial contract jobs back in '06 or '07 was a CNC breakout board that interfaced Mach3 via a parallel port (this was back in the early days of DIY CNC, before nice motion controllers existed).  Here's my current thinking on E-Stops, and yea, now's probably the time we want to add one into our system (that is, sooner rather than later)
  • The E-stop switch itself should be normally-closed, and should open when pressed, and should be a non-momentary design, that needs to be pulled to be reset.
  • This E-Stop switch is really more of an e-stop circuit, where other things can be added into the circuit to make a "chain", where anything that opens the contacts on this chain will make the whole system stop.  Other safety devices can be added here.
  • At least the way we did it on the CNC breakout boards was that the e-stop button would kill power to the motors.  The E-Stop was in series with a selectable [+12V/+5V/+24V] power source, and a few relay coils that energized power to the motors, spindle, and two more relays for M07/M08 (normally used for flood/mist coolant).  The motor power for this board was mainly intended to go to Geckodrives, but for our little StepSticks, we can definitely cut power to the motors this way, through the pin VMOT.  Now, in the case of the modular tools, we would need to cut power to the +12V on the four modular connectors (pins 5,6,7,8 of J11-14).
  • Because these breakout boards were meant for large CNC machines capable of taking a limb off, we had some other safety circuits too: An I/O pin from Mach3 could trigger the E-Stop (a small relay was on the breakout board, that was inline with the aforementioned e-stop circuit, as normally open so it would only energize when the Mach3 software was running and energizing the pin).  We also had a charge pump circuit, those were very popular at the time of Mach3 because you couldn't trust Windows to not screw up the software-controlled digital output PWM's for STEP and DIR, as it's not a real-time operating system.  So Mach3 would generate 12.5 kHz square wave on an I/O pin, that would go to a charge pump circuit, which was a flip flop filtering circuit iirc, that would trigger the e-stop via the pcb relay if Windows decided to act up.
  • I'm not sure we need much of that on our little breakout board, but figured I'd share with the class.  When you assume that our system might be used down the road for lasering and milling and whatnot, we should start the process of figuring out which of these safety features we need.  Especially when you consider that none of this code was reviewed for safety, being open source and all.
  • There is a g-code (actually an m-code) command to enable power to the motors... In Marlin, it's M17 / M18.  This *sort of* works as an e-stop.  It basically enables or disables the stepper drivers, via the /ENABLE line.  All of the modular tools also have a /ENABLE line, and part of the upcoming modular tool interface spec is that a tool MUST shut off when the /ENABLE is not grounded.  So assuming that the stepper driver and the modular tools obey the /ENABLE signal, there's your E-Stop right there.  You can do it with some 7400 series logic gates, or in the arduino with a digital input pin, but basically in the end, you want the e-stop button to make the /ENABLE lines go HIGH or OPEN.  Simplest way to do this is wire the E-Stop button to GND and the other pin to an arduino input pin, with a pullup resistor.  If the input goes high, some code in the repetier/marlin software should make all the /ENABLE lines go HIGH.
 
Speaking of switching the modular tool power, If you have spare pins measuring the input supply voltage can come in handy, also measuring the supply current, even to the extent of measuring how much current each modular tool is using so there could be a switched of if there's a overload.

Good point, actually, one of the things I wanted to put on the next revision of the board was to put current sensors (INA168 or thereabouts) on the delta stepper motors, as a way for the machine to possibly know if it crashes into anything, and maybe to be used during Z probing (I've also mounted an accelerometer on the head to see if that works for Z probing as well, we'll see if either of them works).  Being that all of the 3 steppers and 4 modular tools are all wired together, I'm wondering if it's possible to just use a single INA168 for all of them.  If you're trying to measure motor current, for example, you can just tell the firmware to turn off any heated beds or hotends for a second while making the measurement (this would be better to do in user software really).  It would also save a bunch of money and PCB real-estate to do a single sensor, rather than one for each motor or modular connector.

 
And extra pins could also drive test /self test mechanism's, like test a mosfet is working by monitoring the output pin voltage, if you see a high low transition you still have control of it, it would be awesome to self test the stepper controller like that, who hasn't blown up one? lol. A mosfet could be added in places to cause short's to test temperature sensor measurement, switch between 0v, 5v 100k. toggle a hardware watchdog circuit? 

I don't know that I agree there about adding pins to do that... But if a particular module wanted to implement self-test functionality, and communicate that back and forth via I2C, that's perfectly ok.  


So anyway, right now my to-do list is:
  • We should probably add an e-stop, but do it via a making the 3 motor and 3 modular tool /ENABLE lines go HIGH when the switch opens.  The question is, do we do this in arduino firmware (e-stop direct to digital pin + some added lines of code), or do we do it in logic gates, where the e-stop goes to some AND / OR logic, to make the /ENABLE lines go HIGH when the e-stop gets pushed?
  • Modular tool pinout will stay the same, but it's still possible to perform self monitoring though, as I described above.
  • Adding current and voltage monitoring on the VMOT (+12V to the motors) is a good idea, and I'll have that done for the next rev.
  • We should try to make the EMC02 board +24V compatible (it currently isn't on the first rev).  not sure how this ranks priority wise, as I don't know what it buys us other than maybe lower current on the heated bed, and slightly cooler motors.
  • I also want to add PS_ON logic to turn an ATX power supply on when the PS_ON digital pin (currently D12) goes LOW.  Right now this is an empty net in the circuit.  Should probably go to the back screw terminal or something.
  • Still need to add IOREF and buffering logic to make the board compatible with 3.3V without blowing anything up.\
  • Need to add two dedicated fan outputs on the main board (one for end effector and maybe one for the emc02 board)
  • Jumpers for power supply selection - 12V power to Arduino (open/shunt) -- Note, opening this means the Arduino is being powered from USB.  Closing means the arduino is being powered from the EMC01's +12V.
  • Jumpers for power supply selection - 5V power to Arduino (open/shunt) -- Note, opening this means that the emc01 would need a voltage regulator added to the pcb and must provide its own +5V.
  • Jumpers for power supply selection - 7812 regulator bypass.  For folks that want to experiment with 24V.  An optional 7812 regulator can be added, which would allow +24V to the motors, which would be regulated down to +12V for the arduino and 5V regulators.
  • Extra I/O breakout for prototyping / debugging.  Right now, all of the odd pins between D23 and D53 are open.  
  • Eventually replace the Stepsticks with DRV8825's.  Right now keeping them like this, lets us experiment with genuine Pololu's, DRV8825's, or anything else out there, to see what works best, and at what microstepping configuration. 


Neil Jansen

unread,
Jan 25, 2015, 1:52:21 PM1/25/15
to fire...@googlegroups.com
Sorry for the late reply Igor, this one was sitting in my drafts folder as I was out of town yesterday.


On Fri, Jan 23, 2015 at 1:52 PM, ICEC <igorcon...@hotmail.com> wrote:
Ok ok , I do understand why its your choice , and it seems logic to me too keep it to that
but if your having spare pins anyway, (develpment board). why not make a few unpopulated tru holes for that purpuse . for the guys like me that intend to test the limits in applications and are using it as true tools to build our visions and thouths any way we can

I agree, and will be adding unpopulated through-holes for development purposes on the next revision.

print parts one day , pick & place the next , print some cholalate, lazer engrave some logos . you never know what idea may hit you in the morning when your in the shower.

Agreed, that's why I really like the modular tool approach.
 
So it kinda makes sens to me to keep the EAT boards as specific to one tool as possible . so one board one tool , and not use 2 EAT boards to do one thing ( 3d print or Pick and place)
that does mean the heatbed needs a different connection

I completely disagree. Some might want a PCB heated bed with a thermocouple.  Some might want a silicone pad heated bed with integrated thermistor, maybe with a steel plate so it's magnetic.  Some might want a J-Head, some might want E3D hotend.  Some people might want to 3d print without a heated bed. Why not give people the opportunity to mix and match heated beds and hotends?  I see no reason to integrate the two into a single connector.  Yes, you have to plug and unplug two connectors, but the wiring works out better, and it's just more elegant.

 
, and the vacuum pump also I think, as it looks like its the inline valve we want to be triggering when pick and placing.
but will keep my EAT boards to a minumu, 4 boards , 4 completly differen functions . vacuumpump and heatbed I will not remove from the FPD even when Im not using them
else ill need at least 6 of them , or Ill have to switch back and forth with the wires. Not my idea of modular

SMT nozzle and vacuum pump (or solenoid) will be a single module.  If you want multiple SMT nozzles, you have 1 module for each nozzle.  Some will be OK with just one nozzle.  others might want 2-3 for different size parts.  For example, MELF nozzles to pick up round diodes.  All modules will allow you to interchange the nozzles, however it's quicker to just swap modules, as the module's electronics know what the tip information is, which means you don't have to keep manually telling OpenPnP what type of nozzle it is, every time you change it.  As soon as you hot-plug it, it will know what's installed, and when you run the job, it will prompt you to change them out, and eventually do that part automatically if/when the auto tool changer is working.

 
So thats my thout . Im not trying to push you in any direction cause I can just as easily make a fork and try it out myself.
just sharing my thouth on the matter , Maybe it makes sense for a few more people

I'm definitely interested in feedback, but I do have a pretty good vision as to how this all fits together, and I've probably not done a great job of explaining it.  I do think the system I am in the process of rolling out is a good one, but I think everyone will have to use it and interact with it, before they really believe in it.
 

As an example for new ideas that just hit you from nowhere
New pin usage idea
What about adding a few pins (experimental) for an ESP8266 wifi module ?
Seems the module is verry capable, cheap and people are doing lost of things with it ,maybe we could use it nicly in our board , making it wireless ( it that works)
I have no clue if thats anything feasible . but I did buy a few of them just to look what can be done.
so at some point if I can connect it to the board would be nice . ( dont know if it makes any sense) 

There will be approximately 16 general purpose I/O pins (D23-53 odd pins, on the back 2-row connector), that can be used for any development purposes like wifi module, etc.  I'm also looking into whether or not some of those pins could drive a cheap (< $2 USD) camera module once we've got the EMC02 Rev A or Rev B version that supports Arduino Due.  I've no idea if this will work, but we have a lot of example code we can port over, from various github projects, such as OpenMV.  Considering that USB cameras are typically $30 USD, this would be a great way to get the price down.  At 250000 baud USB serial, we could likely send 640x480 x 16-bit color at a reasonable enough framerate, right from the arduino.  
 

 

Peter Shabino

unread,
Jan 25, 2015, 2:16:19 PM1/25/15
to fire...@googlegroups.com
A large % of I2C eeproms will work form about 1.8V to 5V. If there is nothing else on that I2C bus just power the eeprom off Vref and it will work just fine no isolation needed. Cheap I2C isolation can be made from a pair of FDV301 or similar fets. Tie the gate to the lower voltage domain, drain to the high voltage I2C bus and the source to the low voltage I2C bus. Don't forget to have pullups on both sides of the isolation fets to the proper voltages. analog can be more difficult. Either you need some sort of op amp circuit to go up / voltage divider to go down or you can just limit all analog inputs to Vref max. When using this for a bed thermistor in a voltage divider setup the ref voltage has no affect on the output. If you have 5V in, a 1k pull up, and a 10k thermistor would give a 4.54V output or a 8 bit dac reading of ~231. Same setup with 3.3V in would give 3V out or a 8 bit dac reading of ~231.

Later,
Peter

My projects:
http://www.wire2wire.org/



Date: Sat, 24 Jan 2015 23:37:52 -0800
From: alang...@gmail.com
To: fire...@googlegroups.com
Subject: [FirePick] Re: EMC02 - New motion controller board
To unsubscribe from this group and stop receiving emails from it, send an email to firepick+u...@googlegroups.com.

Douglas Pearless

unread,
Jan 25, 2015, 3:23:45 PM1/25/15
to fire...@googlegroups.com
Hi Neil,

Great work!.

<soap-box>
Can we ***please*** move the:

A6 => Y_STEP
A7 => Y_DIR
(and for completeness)
A8 => Y_STOP

down to the lower analog pins

A2 => Y_STEP
A3 => Y_DIR
A4 => Y_STOP

and add a standard Atmel 10 pin JTAG header
</soap-box>

With the luxury of extra pins, this will make my debugging life so much easier :-) :-)

Cheers
Douglas
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted

Neil Jansen

unread,
Jan 25, 2015, 3:35:44 PM1/25/15
to fire...@googlegroups.com
Respectfully, no, that's not going to happen, at least not in the mainline FPD branch.  Those pins are not shared with the Arduino Due (If I recall correctly, the Due actually provides a JTAG connector).  If you or someone else wants to debug the 2560, you can simply insert a prototype board in between the EMC02 shield and the arduino board, and install a header there, and reroute those two pins.



Douglas Pearless

unread,
Jan 25, 2015, 3:37:37 PM1/25/15
to fire...@googlegroups.com
Hi Neil,

my 2c with on:
"Eventually replace the Stepsticks with DRV8825's. Right now keeping them like this, lets us experiment with genuine Pololu's, DRV8825's, or anything else out there, to see what works best, and at what microstepping configuration."

I think having the step-sticks is a very good idea as if a user ever fries one of these, you can simply pop them out and replace (or even upgrade if newer and better drivers become available).

In fact, I was thinking about re-designing the EAT001 tools to use these rather then the DRV8825 chip directly for that very reason.

Cheers
Douglas

Douglas Pearless

unread,
Jan 25, 2015, 3:48:21 PM1/25/15
to fire...@googlegroups.com
Hi Neil,

OK, no JTAG on the EMC02.

With the EMC02 work without modification with a Arduino Due?

Cheers
Douglas

Neil Jansen

unread,
Jan 25, 2015, 3:48:30 PM1/25/15
to fire...@googlegroups.com
100% agreed for development purposes, that's why the current version has StepSticks.  However eventually I'm going to sell these to people that have zero desire to modify or otherwise tinker with the actual FPD machine.  For people that aren't constantly unplugging motors and plugging things in backwards, it's pretty hard to blow up a DRV8825 or similar stepper driver.  I've never, for example, had to replace a stepper driver in my HP laser printer, because I'm never in there swapping motors. 

My intention is to make two PCBs: One for development purposes, and one for consumer usage.  This also allows me to know 100% that I'm using genuine TI parts, because I'm buying the chips myself from TI or an authorized distributor, and not having to buy the modules from China, where quality control issues and clones are an ongoing issue.


Re: Redesigning EAT0001.  To me, the EAT0001 is a better implementation of a StepStick, for the purposes of a hotend or heated bed or SMT tip.  The EAT0001 modules themselves don't cost *that* much more than a stepstick does, and it's a smaller footprint.  I think if you were to make such a device, it may come in useful for people down the road, but I don't think that makes the current EAT0001 obsolete by any means.  Both have their place.

Neil Jansen

unread,
Jan 25, 2015, 3:50:54 PM1/25/15
to fire...@googlegroups.com
With the EMC02 work without modification with a Arduino Due?

Douglas, please go back and and read my earlier posts in this thread, I've explained it pretty well there already.  A quick summary though, not for the first rev (which is 2560 only), but the next rev will support it.  I needed to get the first version made to test some things, and didn't have time to add all the 3.3v buffering.  That will take some more time.

Douglas Pearless

unread,
Jan 25, 2015, 4:09:05 PM1/25/15
to fire...@googlegroups.com
Hi Neil,

I have gone back and re-read the earlier posts :-)

When you have checked the EMC02 into the repository I will grab a copy and look at what is required to add the 3.3v/5v convertors, etc.

Do you have a preference for how that is achieved? (Or would it be simpler to make a future EMC board 3.3v only and move off the ATMega 5V only host boards)?

My preference is to go from EMC01 to EMC0x with Arduino Due, though I realise that this may not suit your need to get the FPD into production, I am happy to work on an EMC03 for Arduino Due myself. :-)

On a foot note, I have my EMC01 working, I have a few issues with homing collisions, but rather than pollute this thread, I will raise them in a new thread.

Cheers
Douglas

Alan Grimmer

unread,
Jan 25, 2015, 4:15:31 PM1/25/15
to fire...@googlegroups.com

You still need some level shifting for the EAT boards. Which would stay 5v I guess based on that last comments

--
You received this message because you are subscribed to a topic in the Google Groups "FirePick" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/firepick/OQhaZB_v6rY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to firepick+u...@googlegroups.com.

Neil Jansen

unread,
Jan 25, 2015, 4:30:56 PM1/25/15
to fire...@googlegroups.com
When you have checked the EMC02 into the repository I will grab a copy and look at what is required to add the 3.3v/5v convertors, etc.

Do you have a preference for how that is achieved? (Or would it be simpler to make a future EMC board 3.3v only and move off the ATMega 5V only host boards)?

No, my plan is to make a single shield board that meets the new Arduino 1.0 shield spec.  They provide an IOREF pin that the shield can use to determine whether the board is 3.3V or 5V.  I want to use that so the shield can be used with any current or future Arduino board that uses the 1.0 spec.  However, what we might do for a cost-saving measure, is to provide some zero ohm jumpers that allow the buffers to be bypassed for folks that want a cheap breakout board for the 2560 that plan to avoid the due for cost reasons.  That way, you can populate the full board or just populate the important parts and a few cheap 0 ohm resistors, depending on what you want.  


My preference is to go from EMC01 to EMC0x with Arduino Due, though I realise that this may not suit your need to get the FPD into production, I am happy to work on an EMC03 for Arduino Due myself. :-)

I want to investigate the Due very soon to see if it gives better quality for prints.  So it's actually pretty high on my list to get the Due compatibility in.  Basically I guess this is the roadmap:
  • EMC01 Rev B: This is what Douglas and I have successfully built.
  • EMC01 Rev C: Fixes the air-wire issue that Douglas found on the crystal. Suitable for consumer usage, not as good for development platform, but will work in a pinch.
  • EMC02 Rev --: Proof of concept, Arduino Mega 2560-only <---- This is where we're at today
  • EMC02 Rev A: First revision with IOREF/3.3V/5V, which has compatibility with both Mega 2560 and Due.  This will probably be what most people in the beta test program get.
  • EMC01 Rev D: Will probably go back at some point and update this to be the next "consumer" version that has integrated DRV8825's and integrated CPU, which might be 1284p or 2560 or ATSAMxxx or whatever.  It may very well be the same size as EMC02 which would give us some more space to work with.
On a foot note, I have my EMC01 working, I have a few issues with homing collisions, but rather than pollute this thread, I will raise them in a new thread.

Have you tried Karl's new pulleys?  They reduce homing collisions by quite a bit.   One thing I try to remind people of, is to try and make sure the end effector is in the middle of the machine before homing.  There will be software in OpenPnP that ensures that the end effector is in the middle at the end of any operation to reduce the chance that the end effector is in a corner and may bind up, if that makes sense.

Douglas Pearless

unread,
Jan 25, 2015, 5:14:43 PM1/25/15
to fire...@googlegroups.com
With regard to the EAT001 tool boards,

I have been reading the data sheet for the DRV8825 and it will interface with 3.3V with no problems.

The 24AA014 works from 1.7V - 5.5V (and is therefore quite happy to work on 3v3) and the AIN going to 5V could instead be routed to 3V3.

My preliminary investigation has resulted in these proposed design changes:


Thoughts?

I may create a STEPSTICK version and therefore we *might* be able to make the a 2 layer board which is much cheaper to make.

Cheers
Douglas

Neil Jansen

unread,
Jan 25, 2015, 5:46:31 PM1/25/15
to fire...@googlegroups.com
On Sun, Jan 25, 2015 at 5:14 PM, Douglas Pearless <douglas....@gmail.com> wrote:
With regard to the EAT001 tool boards,

I have been reading the data sheet for the DRV8825 and it will interface with 3.3V with no problems.

The 24AA014 works from 1.7V - 5.5V (and is therefore quite happy to work on 3v3) and the AIN going to 5V could instead be routed to 3V3.

AIN at 3.3V is the only one that worries me, as you lose a bit of resolution when you're using it with a 2560.  You're basically losing 33% or so of the 12-bit resolution.

The only other thing I'd check or change on your modifications above, is the 3.3V rail.  If you're intending to power all of that from the 3V3POUT from the DRV8825, then you'll need to make sure it will provide enough current for the stuff you're adding.  I've not looked at it, it might, but is probably worth looking at.  Also, if you replace teh DRV8825 with your stepstick, then you're going to need to generate that 3.3V from the +12V by means of an SOT23 or 223 style voltage regulator. 

 

Neil Jansen

unread,
Jan 25, 2015, 5:53:49 PM1/25/15
to fire...@googlegroups.com
 You're basically losing 33% or so of the 12-bit resolution.
 
That is, unless you tie the AREF to 3.3V, which, if we're making sure all of the pins going to the arduino board are 3.3V, then that would actually probably work.. You'd keep the 100% of the resolution.  This might actually work.

Douglas Pearless

unread,
Jan 25, 2015, 5:58:16 PM1/25/15
to fire...@googlegroups.com
Hi Neil,

I am 80% complete on a revision (EAT0003) to use the DRV8825 step-stick (EAT0002 uses the DRV chip per se).

It will have an onboard 12V => 3.3V LDO regulator AND it looks like it can be a 2 layer board :-)

When it is finished later tonight, I will post the designs.

Cheers
Douglas

On 26/01/2015, at 11:53 am, Neil Jansen <njan...@gmail.com> wrote:

 You're basically losing 33% or so of the 12-bit resolution.
 
That is, unless you tie the AREF to 3.3V, which, if we're making sure all of the pins going to the arduino board are 3.3V, then that would actually probably work.. You'd keep the 100% of the resolution.  This might actually work.

--
You received this message because you are subscribed to a topic in the Google Groups "FirePick" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/firepick/OQhaZB_v6rY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to firepick+u...@googlegroups.com.

Neil Jansen

unread,
Jan 25, 2015, 6:06:32 PM1/25/15
to fire...@googlegroups.com

On Sun, Jan 25, 2015 at 5:58 PM, Douglas Pearless <douglas....@gmail.com> wrote:
Hi Neil,

I am 80% complete on a revision (EAT0003) to use the DRV8825 step-stick (EAT0002 uses the DRV chip per se).

It will have an onboard 12V => 3.3V LDO regulator AND it looks like it can be a 2 layer board :-)

When it is finished later tonight, I will post the designs.

 
Cool, one thing to be careful of, try to keep the stepstick above the part where the screw terminal is.  This might mean that your board will be ~30mm or so taller than a normal EAT0001.  There's basically keepout zone in the middle area of EAT0001 that shouldn't be more than 10mm tall from the board's surface.  And the back area's keepout is about 2-3mm above the board.

As far as naming goes, Alan Grimmer was working on a laser driver so he's already got EAT0002 reserved :) ..

So how about:

EAT0001: Original board (hotend / heated bed / SMT vacuum tip w/rotation stepper driver)
EAT0002: Alan Grimmer laser diode driver
EAT0003: Douglas Pearless's StepStick version of EAT0001

Does that work? 

Douglas Pearless

unread,
Jan 25, 2015, 6:09:07 PM1/25/15
to fire...@googlegroups.com
Hi Neil,

OK, EAT0003 is for the StepStick version that is 3V3 tolerant.

Re:the keep-out zone, what is the reason for this?  Is is mechanical (I.E. the support guides), or something else?

Cheers
Douglas


Neil Jansen

unread,
Jan 25, 2015, 6:26:17 PM1/25/15
to fire...@googlegroups.com
OK, EAT0003 is for the StepStick version that is 3V3 tolerant.

Ahh, I get what you meant there. 

That does bring up an important compatibility problem.   We don't want two incompatible versions floating around out there, there's too much opportunity to plug somethign together wrong and break stuff (for example plugging an +5V EAT0001 in to a 3.3V Arduino Due would be bad for the Due as it's not 5V tolerant).

The best way I can see to fix this, is to simply swap out the EAT0001 U3 regulator for a 3.3V one.  This means we don't need an EAT0003 version at all.  It just becomes an EAT0001 Rev B, mod #1.  We would lose the resolution when using them with +5V chips like the atmega1284p, but that wouldn't be that bad in the long run, especially after we've got the new Due compatible EMC02 coming out in the future.  And maybe it's possible to rework the emc01's to use 3.3V as a reference, but I'd have to look into that... It might have other implications depending on how the atmega's port function switching works.  If it does, then it's just a single 30awg wire to rework into it.  If not, then it would still work fine, just with a bit of resolution loss (not the end of the world really).

 
Re:the keep-out zone, what is the reason for this?  Is is mechanical (I.E. the support guides), or something else?

It's a mechanical keepout zone, if you see the pics on the hackaday page left sidebar, you'll see how there's an acrylic top plate with 3d printed guides so the modular tools go in fully aligned and cant' be plugged in backwards.  that's the keepout zone. 



Douglas Pearless

unread,
Jan 25, 2015, 8:24:53 PM1/25/15
to fire...@googlegroups.com

This version should work on both 3V3 and 5V systems (the 4k7 inline resistors should enable the board to work on a 5V system, these are not needed for the EEPROM address lines A0 and A1 as these are only ever ground or pulled to 3V3 via R4/5.).

I may need to update the 4k7 series resistor current limiter’s to a ‘better’ design, though I have used these in other designs and though primitive, they do work.

Perhaps it is simply time to leave behind all the old 5V stuff and move properly to 3V3 and Arduino Due / ARM compatibility as it seems that Arduino are certainly moving more to ARM and away from 5V technology?




ICEC

unread,
Jan 25, 2015, 8:51:07 PM1/25/15
to fire...@googlegroups.com
no appologies needed, Ive seen your super busy with progress here so thats all normal
left over tru holes everybodys happy :p .  I have to say I have been reading along and indeed its a good explanation of the thouths and methods chosen.
Great info , I think ill have to reread it a few times , one thing I do know is im also want one of the revB boards when there ready .

went to do some hacking with the DRV8825 connected to a parallax propeller, just to try some things out and understand the underlaying ( propeller is super easy for me, been using it for a while )
Im seeing now that my ( use a propeller as a mcu for the emc) was a bad idea , as we will hopelessly run out of pins and resources.
Unless they manage to bring the long behold propeller 2 or 3 , its a thing to forget about.

What I can tell about that short hacking with the DVR8825 is that it will run fine of 3.3 volts , as thats what im doing now , propeller is also 3.3v pins . so that new EAT design shoud work
off course taking account all the other things the board also has to accomodate and do


In other words , ill be reading along and trying to make sense of it all for now and hope I get a new EMC Rev B board soon with lots of free pins :p

Igor

Douglas Pearless

unread,
Jan 25, 2015, 8:51:35 PM1/25/15
to fire...@googlegroups.com
Hmm,

The Arduino Zero looks like a very interesting board, Cortex M0, 256K flash, doesn’t have lots of extra pins and features we don’t need, could be a very low cost board to bring us into a 3V3 world? (with the host PC doing most of the work!)

Cheers
Douglas

Douglas Pearless

unread,
Jan 25, 2015, 9:02:50 PM1/25/15
to fire...@googlegroups.com
Correction,

I just counted the I/O pins, there are not enough, so Arduino Due is the better model.

Neil Jansen

unread,
Jan 25, 2015, 9:29:34 PM1/25/15
to fire...@googlegroups.com
On Sun, Jan 25, 2015 at 8:24 PM, Douglas Pearless <douglas....@gmail.com> wrote:

This version should work on both 3V3 and 5V systems (the 4k7 inline resistors should enable the board to work on a 5V system, these are not needed for the EEPROM address lines A0 and A1 as these are only ever ground or pulled to 3V3 via R4/5.).

I may need to update the 4k7 series resistor current limiter’s to a ‘better’ design, though I have used these in other designs and though primitive, they do work.

So that settles it, I'm going to rework the 25 or so EAT0001's that I have right now to use the 3.3V regulator for U3.  The exact part number I'll use is MIC5205-3.3YM5, although any pin-compatible regulator would work.  This one is only good to 16V though, so I don't think it would work for 24V systems directly (however there's no reason that a future EATxxxx can't have a screw terminal input for 24V or even 115VAC, and then a switched output to be used, instead of the board-provided 12V.  So I think it's OK there, you can switch pretty much whatever you want, but the bus power would be limited to 12V (theoretically could go a bit higher but never to exceed 16).  

I do agree with your inline resistors for SDA and SCL.  I'll get that updated for the next EAT0001 rev, along with the voltage regulator change (5V to 3.3V).  I may be able to rework these into the 25 or so existing EAT0001's but it won't be pretty :)  
 
Perhaps it is simply time to leave behind all the old 5V stuff and move properly to 3V3 and Arduino Due / ARM compatibility as it seems that Arduino are certainly moving more to ARM and away from 5V technology?

I've already stated my position on this several times on this, we're keeping +5V support for Atmega2560, as it's a well-proven platform that we're not yet ready to abandon.  Plus, it's cheaper than Due.  The Atmega1284p is cheaper than both, which is another reason I'd like to keep the EMC01 style platform, even if it is a bit limited on pins.  I'm sure there even cheaper options in the future, like the LPC1686/9 used in Smoothie, and all of those are acceptable solutions, as soon as they are proven to work (We're not that far along yet though.. There is still a lot of work to do before we completely abandon the Atmega1284/2560.

ICEC

unread,
Jan 25, 2015, 9:55:35 PM1/25/15
to fire...@googlegroups.com
Neil , is the BeagleBoneBlack also compatible somehow with the rev b board ?

Neil Jansen

unread,
Jan 25, 2015, 10:06:14 PM1/25/15
to fire...@googlegroups.com
On Sun, Jan 25, 2015 at 9:55 PM, ICEC <igorcon...@hotmail.com> wrote:
Neil , is the BeagleBoneBlack also compatible somehow with the rev b board ?

No, however the new form factor that the EMC02 board uses is large enough that it would be pretty easy to swap the arduino schematic symbol and footprint for the BeagleBoneBlack.  It would probably be better to wait until the EMC02 Rev B is complete before that work is attempted.  But anyway, it is possible and very desirable to try the BeagleBoneBlack, as you end up with a single, unified platform that can do motion control and serve as a single-board computer, similar to the Pi.  For that matter, it's also possible later on to integrate the Raspberry Pi into a variant of the EMC02, however you'd need an Atmega1284p on the EMC02 to do the motion control stuff.  There's plenty of room for the connectors for any of the popular single-board computers and microprocessor boards. 

If anyone wants to head up one of these variants, let me know.  I've not yet had a chance to write up a formal specification, but will hopefully do that very soon.

Alan Grimmer

unread,
Jan 26, 2015, 1:56:29 AM1/26/15
to fire...@googlegroups.com

This is why I was after that iref pin to the modular tool, it could be sensed and an optional voltage divider / opamp could sort out analog.

Ive actually had the plan on using a step stick module for the laser driver EAT board so we might end up with a similar looking pcb.

The laser driver I'm looking at as an opamp stage that needs a pwm/ttl level input to set the power level and an enable pin.

The enable pin has an opto on it so it's 5v/3v3 compliant. The ttl pin I was going to feed thru a 4050 buffer chip so it's 5v and 3v3 compliant.

Its just the analogue temp sensor that I can't figure out a cheap buffer to auto translate to 3v3 or 5v.  Using an arduino is cheapest i can see so far. This is for dev to make it at robust as possible.

Do u reckon sensing the level of the enable pin with its disabled would be enough to do the auto sense thing?  Its active low so as long as it's disabled when you plug it in it should be ok?

Douglas Pearless

unread,
Jan 26, 2015, 5:21:34 AM1/26/15
to fire...@googlegroups.com
Hi Alan,

Can you post a schematic of what you have so far?

It will make it easier to discuss 



Sent from my iPhone

Douglas Pearless

unread,
Jan 26, 2015, 5:37:28 AM1/26/15
to fire...@googlegroups.com
Re: the new pulleys, yes I am using these but I still have an issue where two axis are homed and I home the third and the arms sometimes pop off.

I have emailed Karl and suggested that the ratchet is moved further around and on doing so will give more clearance.

This photo shows what I mean:

image1.JPG

I believe that the flat plane in the cut away with the ratchet needs to move further around so that it is flush with the arm.

This should all but eliminate to arm collisions and does not affect the operation of the pulley.

Cheers

Douglas
Sent from my iPhone
--

Alan

unread,
Jan 26, 2015, 5:53:45 AM1/26/15
to fire...@googlegroups.com


This is the last schematic I eagle-d , the rest is still in my head, I haven't separated the driver into a step stick yet. (ive got some magor changes to make to the laser driver and I'll start a thread in a few days to kick that off so just keep comments to the 3v3/5v interfacing and step stick layout

ICEC

unread,
Jan 26, 2015, 9:16:07 AM1/26/15
to fire...@googlegroups.com
Ok, I understand that . its indeed better to wait ,it would be difficult to make it fit all those different controllers

I was looking into printpi . opensource firmware for the rpi or any other linux(BBB) to drive the steppers , read the sensors directly .  No atmega needed
this is what im reading on now , I cant say if its what we need or if it will work with our current setup/ goals. but im wondering around there .
Dont know if you have heard about printpi ,  maybe just some food for new ideas

here is a vid of a Mini Kossel doing 120mm/sec
maybe ill just make a wireboard for now :p


But indeed I was looking into using an BBB ( RPi B for now ) as the main controller , also carrying along the rest (octoprint maybe - cams etc) like you say

Igor

Douglas Pearless

unread,
Jan 26, 2015, 7:57:48 PM1/26/15
to fire...@googlegroups.com
Hi Alan,

For the EAT0002, can I suggest a 47k resistor inline with the SDA and SCL lines and change the 5v to 3v3 regulator and then it should work with either 5V or 3V3 (subject to actual testing!).

Perhaps use the same regulator as Neil is proposing for 3V3?

Cheers
Douglas

Douglas Pearless

unread,
Jan 26, 2015, 8:34:05 PM1/26/15
to fire...@googlegroups.com
Opps pressed send too soon.

I was wondering if you did the following:
(1) Delete U1 & R9
(2) Route the power that U1 was supplying via a current sensor (like http://www.allegromicro.com/en/Products/Current-Sensor-ICs/Zero-To-Fifty-Amp-Integrated-Conductor-Sensor-ICs/ACS717.aspx with the output to J1 pin 13 AIN) to a MOSFET that is now switched on by output pin of the inverting output buffer (a bit like a heater bed for a 3D printer) and onto J5 pin 6 (Hotbed GND) which is different from EAT0001 which grounds pin 6 whereas EAT0002 supplies 9V on that pin.
(3) Place the laser diode between J5 pin 6 and J5 pin 8 (GND)
(4) change the regulator to 3V3 and add the 4k7 resistors inline for SDA and SCL per previous post

As the laser diodes are very expensive, this allows the FPD can monitor the current and take appropriate action in the case of excessive current.

Also you now still have the stepper motor interface pins available which could be used for something else (no idea what, or even why you would need a stepper, or perhaps two servos on this tool!!!), but I think it is more in line with the design philosophy and pinout of the EAT0001 (and EAT0003 for that matter) - happy to be challenged on this :-)

Cheers
Douglas

Neil Jansen

unread,
Jan 26, 2015, 9:03:52 PM1/26/15
to fire...@googlegroups.com
I realize I'm waffling on this a bit, but that's because of the amount of rework I'm going to have to do, depending on the conclusion of this decision.

Right now, the going plan is to rework the EATxxxx's to replace the 5V regulator for a 3.3V one.  This would mean that the AIN would only go up to 3.3V meaning a loss in resolution,and also means that I have to rework all of my boards.

Option #2 presented by Alan was to change the pinout and add an IOREF pin.  This would mean that I have to scrap $800 in boards that I just had made.  I can't afford to do this right now, unfortunately, and I want to prevent a case where we have two incompatible modular tools out there.

I'm going to propose Option#3, which was actually my first option, before I somehow got caught up in Option #2.

Why not just keep the EAT0001's as-is, running at +5V?  In the case of the Arduino Due or any other 3.3V board, then the carrier board (EMC02 or variant thereof) would need to just use a few 74HCT125's or 245's, which are penny parts anyway.  A single 4-channel opamp could scale the +5V AIN down to 3.3V, and would mean that there is no loss of resolution at all.

This makes even more sense when you realize that every year, the native digital I/O voltage absolute limits go down... Look at the Intel Edison.  It has 1.8V digital I/O.  So Option#3 is better for future usage, because no matter what the voltage of the microcontroller or SBC is, you're just changing how you buffer it on the EMC0x board.  The EAT0001's will always put out and accept +5V, and the carrier board must make the output +5V.

As I said, I know I'm waffling on this, but I think this is the smart choice to make.  I would like to hear what you guys think about this, specifically Alan and Douglas as you guys have had a lot of good input on this so far.

Let me know comments/criticisms/feedback either way.

-Neil




Cheers
Douglas

--
You received this message because you are subscribed to the Google Groups "FirePick" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firepick+u...@googlegroups.com.

Douglas Pearless

unread,
Jan 26, 2015, 9:25:58 PM1/26/15
to fire...@googlegroups.com
Hi Neil,

My thoughts are at the moment all the EAT0001/2/3 boards can be modified to a 3v3 & 5v tolerance with just changing the regulator and adding two resistors, which only adds a cent or two to an EAT001/2 board and would be a very minor PCB change.

Dare I say, such a simple change could even be achieved on existing boards by not (or un)soldering the SDA and SCL pins on J1 to the PCB, bend them slightly and solder the 4K7 resistors between the pin and the PCB. (Not that I have ever had to do a modification like this :-) )

I think 1.8v would be a bit of a stretch at this point in FPD’s product lifecycle and given Neil really wants to get into production as soon as he can and not have to throw away otherwise perfectly good boards, my personal vote is for the regulator change and adding the resistors SUBJECT to this being properly tested, then the move to ARM is trivial and EMC03 does not need any level shifters or A/D scaling to work and I suspect using 12 or 14 bit A/D convertors at 3V3 while not providing full scale, should be good enough for anything we need?

I am trying to get EAT0003 that uses a DRV8825 carrier board (or even the TEMIC carrier board mentioned in another post) finished :-)

Cheers
Douglas

You received this message because you are subscribed to a topic in the Google Groups "FirePick" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/firepick/OQhaZB_v6rY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to firepick+u...@googlegroups.com.

Neil Jansen

unread,
Jan 26, 2015, 9:36:09 PM1/26/15
to fire...@googlegroups.com
On Mon, Jan 26, 2015 at 9:25 PM, Douglas Pearless <douglas....@gmail.com> wrote:
My thoughts are at the moment all the EAT0001/2/3 boards can be modified to a 3v3 & 5v tolerance with just changing the regulator and adding two resistors, which only adds a cent or two to an EAT001/2 board and would be a very minor PCB change.

Contrast that to not changing them at all.  $0 for parts and $0 for labor.  

Dare I say, such a simple change could even be achieved on existing boards by not (or un)soldering the SDA and SCL pins on J1 to the PCB, bend them slightly and solder the 4K7 resistors between the pin and the PCB. (Not that I have ever had to do a modification like this :-) )

Well I have done rework like that before, and I can tell you it sucks, and I'm not going to spend hours underneath a stereo microscope to do that.
 
I think 1.8v would be a bit of a stretch at this point in FPD’s product lifecycle and given Neil really wants to get into production as soon as he can and not have to throw away otherwise perfectly good boards, my personal vote is for the regulator change and adding the resistors SUBJECT to this being properly tested, then the move to ARM is trivial and EMC03 does not need any level shifters or A/D scaling to work and I suspect using 12 or 14 bit A/D convertors at 3V3 while not providing full scale, should be good enough for anything we need?

I'm not saying I want to switch to an Intel Edison with 1.8V I/O, I'm just saying that the EAT0001 needs to be future-proof down the line with any EMCxxxx down the line, even 1.8V boards.  Keeping the EATxxxx boards at 5V and simply adding penny-part buffers chips and opamps is a much more future-proof way to go. 
 
I am trying to get EAT0003 that uses a DRV8825 carrier board (or even the TEMIC carrier board mentioned in another post) finished :-)

I would hold off on sending them out until we've gotten this decided.  And at the moment I'm heavily leaning toward Option #3 (no change to EAT0001, and official spec for all EATxxxx is +5V input and output on all pins, and mandating that all EMCxxx boards use appropriate buffering). 

 


Alan Grimmer

unread,
Jan 27, 2015, 3:32:40 AM1/27/15
to fire...@googlegroups.com
I think I prefer option #3, because first up my current design works with 5v. It's a solid number we can aim for and stick with, as long as its a fixed spec we have something to aim for and simplify how complex the buffering is,  and because the whole step voltage down thing is easier than say fixing at 3v3 where it would need a step up and step down logic. a voltage divider would work for analog inputs.


I believe that there may be a 2.0 modular tool spec years away that would need a 1Gbs data bus and 1.8v logic as the norm! lol

Alan Grimmer

unread,
Jan 27, 2015, 3:37:33 AM1/27/15
to fire...@googlegroups.com
And just to be clear its the analog input that's the sticking point for me to buffer. the rest can be done as Douglas mention's.

So if anyone has some fancy method to do that i would be all ears.
 
an analogue opto would be cool, but way to expensive.

Paul Jones

unread,
Jan 27, 2015, 5:42:33 AM1/27/15
to fire...@googlegroups.com

Use one of those cheap Microchip ADCs (eg MCP3425) via i2c?

What about using a Vadc of 2.048 or similar so it works with both 3v3 and 5v?

 

Paul.

 

--

You received this message because you are subscribed to the Google Groups "FirePick" group.

To unsubscribe from this group and stop receiving emails from it, send an email to firepick+u...@googlegroups.com.

Neil Jansen

unread,
Jan 27, 2015, 8:41:15 AM1/27/15
to fire...@googlegroups.com
On Tue, Jan 27, 2015 at 5:42 AM, Paul Jones <pa...@pauljones.id.au> wrote:

Use one of those cheap Microchip ADCs (eg MCP3425) via i2c?

What about using a Vadc of 2.048 or similar so it works with both 3v3 and 5v?


Only problem with that is you need them to be addressable, and not walk on the eeprom address.  Otherwise, yea, that'd work.  If we put a little ATTiny on there, we could go that route, but that may be overkill at this point.

Just keeping the AIN scaling to 5V makes everything really easy.


I'm going to make a full schematic for EMC02 for Option #3 and tally up the BOM cost and see if the layout fits.  But in the meantime I'm not going to rework any of the EAT0001 boards, they'll stay +5V until that's done.  If anyone wants to help me figure out the buffering and whatnot, that would be great.  I'm not an expert there, and I know there are a lot of clever ways to do that.  Here's the buffering strategy:
  • 1x I2C bus.  Assuming that the EAT0001's are unchanged, then the eeprom stays wired to +5V.  The series resistors on SDA and SCL become unnecessary at that point.  Because the pullups are on the EMC02 side and not the EATxxxx side, I think we're OK here, and that the 24AA014 will work with either 3.3V or 5V from the microprocessor without any buffering or glue logic.
  • 4x Analog input coming back from the modular tools.  Plan: Use opamp and scale the output down to 3.3V (or pass through at 5V) depending on IOREF.
  • Q1 on the  EAT0001 will also work regardless of whether it's given 3.3V or 5V.  It even works lower than that, iirc.  So we don't have to do anything here either.
  • DRV8825 / Pololu / etc. driver: Step, direction, /ENABLE etc., should work at 3.3V or 5V input so I won't add any buffering on those.  Need to look closely at the datasheets for all possible choices here and see if any of them require 5V or have issues with mixed voltages.  If anyone knows this info off the top of their head, please let me know.
  • External I/O buffering: Right now the EMC02 has a few other non modular tool connectors that might need buffering.  For example, the 4x servo connectors will probably need a 74HC145 to give them +5V as some servos are unhappy with less (although the majority would probaly work with a 3.3V PWM).
  • The optical endstops would need to be buffered or go through a resistor ladder.  They output +5V and we'd need to bring that down to 3.3V or keep at 5V, depending on VREF.  Any suggestions on how to do that here?
  • NeoPixel connector: the new rev of the EMC02 will have a dedicated channel or two for NeoPixels, for experimenting with ring lighting colors and intensity.  I'll need to make that output +5V regardless of what IOREF and the mcu logic voltage is.

c.j.s...@gmail.com

unread,
Jan 27, 2015, 1:38:49 PM1/27/15
to fire...@googlegroups.com
Endstops: Reprap CRAMPS uses SN74cbtd3861 5V to 3V3 level shifter.

Neil Jansen

unread,
Jan 27, 2015, 2:18:03 PM1/27/15
to fire...@googlegroups.com
That looks perfect and is reasonably priced, thanks for passing that along.



On Tuesday, January 27, 2015, <c.j.s...@gmail.com> wrote:
Endstops: Reprap CRAMPS uses SN74cbtd3861 5V to 3V3 level shifter.

--

ICEC

unread,
Jan 29, 2015, 10:27:43 AM1/29/15
to fire...@googlegroups.com
Somethings that might help.

I was looking at the RAMPS-FD schematic , ramps board for the duo.
It has an excellent e-stop buffer mechanism (page 4) , maybe thats a design that can work for us also .
does use some logic, but think would be better to keep it independant from the controller

So maybe you should take a look at that and see what you think. some other things also that can be usefull (design wise)

I am currently tweaking with my stepper modules in a breadboard .
using DRV8825 modules powerd by 3.3volts to controll it. Till now im not seeing any problems , so 5v or 3.3 volts should both work ok.

I did always have that high pitch sound coming from the modules or I have to turn the current way down to stop it, In the video you posted a few post ago they guy mentioned using 24 volts got rid of that noise for him on the DRV8825
so that what im kinda upto next . to figure out if that indeed works better for me too.
if thats the case. ill be working with . 24Volts for the Motors controled bij 3.3volts and a 3.3 volts system

Hope it helps

Igor


On Tuesday, January 27, 2015 at 8:18:03 PM UTC+1, Neil Jansen wrote:
That looks perfect and is reasonably priced, thanks for passing that along.



On Tuesday, January 27, 2015, <c.j.s...@gmail.com> wrote:
Endstops: Reprap CRAMPS uses SN74cbtd3861 5V to 3V3 level shifter.

--
You received this message because you are subscribed to the Google Groups "FirePick" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firepick+unsubscribe@googlegroups.com.

David P

unread,
Jan 30, 2015, 6:12:39 PM1/30/15
to fire...@googlegroups.com
Would it make any sense to integrate the motordrivers into the board later on?
I could make the EMC board revision with the ATSAM controller, but i think it's hard to proper route it without a 4 Layer board. Would that be ok?

Neil Jansen

unread,
Jan 30, 2015, 6:43:06 PM1/30/15
to fire...@googlegroups.com
On Fri, Jan 30, 2015 at 6:12 PM, David P <chavo...@gmail.com> wrote:
Would it make any sense to integrate the motordrivers into the board later on?
I could make the EMC board revision with the ATSAM controller, but i think it's hard to proper route it without a 4 Layer board. Would that be ok?

I want to try to integrate DRV8825's into the board later on.  But keeping them modular for now is a great way for the developers to test different drivers.  A 4-layer board that big would be very pricy.  We would have to keep it 2-layer or stick with the stepstick format.  Regarding the ATSAM, the EMC02 as discussed in this board will continue to be an Arduino shield-type board as it is now (Rev -- supports the atmega 2560 only, and Rev A will support Atmega or Due which has the ATSAM).  EMC01 will continue to be an Atmel-AVR based board, although the exact chip might change (atmega1284 was nice because it was small, easy to place with rudamentary PnP or hand-placing techniques and kapton stenciling, and had just enough IO).  Since the EMC02 will support Due after Rev A, it would be safer to get all of the bugs worked out of that design, and than finally integrate the arduino bits into the shield, and rename that to EMC03 or EMCxx depending on what else happens.

I could definitely use some help with the board stuff, but mostly what i I'm needing now is to get the 3.3V compatibility into the EMC02 so that it's Due compatible.  I think that alone will make a lot of people here happy, that weren't so happy with the original EMC01.

My current Rev-- is sitting in customs right now somewhere in the United States, so I should hopefully have them next week, fingers crossed.  I want to have the first one built and working before i send off for the Revision A that has the 3.3V stuff, as this is going to be an iterative process, even being as simple of a board that it is.
 

David P

unread,
Jan 30, 2015, 6:49:21 PM1/30/15
to fire...@googlegroups.com
I could definitely use some help with the board stuff, but mostly what i I'm needing now is to get the 3.3V compatibility into the EMC02 so that it's Due compatible.  I think that alone will make a lot of people here happy, that weren't so happy with the original EMC01.


Allright, i'll take care of that in the next days! :) 

Karl

unread,
Jan 31, 2015, 9:21:44 AM1/31/15
to fire...@googlegroups.com
Sometimes I wonder if US Customs and Area 51 are connected. They are both "we're not here" zones.

Neil Jansen

unread,
Feb 8, 2015, 11:39:09 PM2/8/15
to fire...@googlegroups.com
EMC02 Rev-- board has been assembled, tested, and seems to work great. 

https://www.youtube.com/watch?v=fTsGQ6XjD2s


As discussed earlier, the plans were to include Arduino Due (3.3V / SAM3X8E ARM Cortex-M3) support, along with some other features and fixes.  I completed the initial schematic capture and PCB layout for Rev A tonight, and will post that in a separate thread, for peer review.  

Douglas Pearless

unread,
Feb 9, 2015, 12:10:01 AM2/9/15
to fire...@googlegroups.com
 Looks awesome, great stuff!

Cheers
Douglas
--
You received this message because you are subscribed to a topic in the Google Groups "FirePick" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/firepick/OQhaZB_v6rY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to firepick+u...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages