FireStep with EMC02

527 views
Skip to first unread message

Karl

unread,
Jun 19, 2015, 11:32:22 PM6/19/15
to fire...@googlegroups.com
FireStep 0.1.5 is available:

https://www.youtube.com/watch?v=0rBLWl5E1Qo

* EMC02 pin assignments are default (but RAMPS1.4 is configurable)
* A4988 drivers are a great improvement over DRV8825 in terms of low current adjustment for maximum speed
* I have no idea which way to hook up EOPTO02 and so haven't been able to test

There is still a lot to be done on FireStep (e.g. FPD tool support, etc.), 
but my focus is now on FireREST as the FireStep driver.

Karl

unread,
Jun 20, 2015, 8:45:29 PM6/20/15
to fire...@googlegroups.com, ka...@firepick.org
FireStep 0.1.6 has homing bug fix.

Neil, many thanks for Dozuki documentation. I've wired up my EMC02 using
the EOPTO01 you sent me. With the now working electronics, I'll have enough
to resume vision calibration once I complete FireREST support for
FireStep. Since FireREST is NodeJS based, I hope to connect to FireStep
from: 1) Raspberry Pi 2 or 2) my Chromebook. I think that's a wide enough
range of application computers to satisfy many use cases.


Karl

unread,
Jun 21, 2015, 10:35:38 PM6/21/15
to fire...@googlegroups.com, ka...@firepick.org
Here's LooseCanon with EMC02 and EOPTO01 running FireStep.

The PH5Curve noise is quite distinctive. Now you know why I want
these "quieter" 400step motors. The smaller steppers would be louder.
The homing noise is different because it's not a PHCurve, just a steady
stream of pulses till the optos trigger.


Note the smooth and gentle start/stop. The extrusion frame is rock solid with 
no discernible wobble. My original concerns about the presumed need for stiff
extrusion bracing are proving irrelevant for PnP (apparently 3D printing is 
a lot rougher and "bumpier"). Any bracket, plastic or metal, will work just fine for PnP.

If you want to try this yourself, just send the following to FireStep using the Arduino
IDE serial window. It's an array of 5 FireStep JSON commands:

[{"hom":""},{"mov":{"x":7000,"y":2000,"z":3000,"mv":16000}},{"mov":{"x":10000,"y":10000,"z":5000,"mv":16000}},{"mov":{"x":1000,"y":11000,"z":2000,"mv":16000}},{"mov":{"x":5000,"y":5000,"z":5000}}]

Karl

unread,
Jun 21, 2015, 10:49:14 PM6/21/15
to fire...@googlegroups.com, ka...@firepick.org
....and...

To prove how smooth and gentle FireStep is....

...I balanced a ping pong ball on the pen.


Try THAT with Marlin!

:D

Jason von Nieda

unread,
Jun 21, 2015, 10:54:14 PM6/21/15
to fire...@googlegroups.com
That's pretty awesome Karl! Nice work!

Your video link, though, is referencing your account and doesn't work for people who are not you. Here's a better one :) 


Jason


--
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.

Karl

unread,
Jun 21, 2015, 11:10:51 PM6/21/15
to fire...@googlegroups.com, ja...@vonnieda.org
Thanks, Jason! My bad. YouTube fries my peabrain.

BTW, FireStep should also work with Cartesian machines. 
Once I wrap up FPD calibration, I hope to take a look at OpenPnP integration.
I'm hoping it will just fit right in, since the OpenPnP motion planner is organized
logically around "start here and go there", with path left up to the driver.



On Sunday, June 21, 2015 at 7:54:14 PM UTC-7, jason wrote:
That's pretty awesome Karl! Nice work!

Your video link, though, is referencing your account and doesn't work for people who are not you. Here's a better one :) 


Jason

On Sun, Jun 21, 2015 at 7:49 PM, Karl <ka...@firepick.org> wrote:
....and...

To prove how smooth and gentle FireStep is....

...I balanced a ping pong ball on the pen.


Try THAT with Marlin!

:D

--
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.

Jason von Nieda

unread,
Jun 21, 2015, 11:28:23 PM6/21/15
to fire...@googlegroups.com
Looking forward to that Karl. Let me know if you need any help with the OpenPnP integration. Happy to help.

Jason


On Sun, Jun 21, 2015 at 8:10 PM, Karl <ka...@firepick.org> wrote:
Thanks, Jason! My bad. YouTube fries my peabrain.

BTW, FireStep should also work with Cartesian machines. 
Once I wrap up FPD calibration, I hope to take a look at OpenPnP integration.
I'm hoping it will just fit right in, since the OpenPnP motion planner is organized
logically around "start here and go there", with path left up to the driver.

On Sunday, June 21, 2015 at 7:54:14 PM UTC-7, jason wrote:
That's pretty awesome Karl! Nice work!

Your video link, though, is referencing your account and doesn't work for people who are not you. Here's a better one :) 


Jason

On Sun, Jun 21, 2015 at 7:49 PM, Karl <ka...@firepick.org> wrote:
....and...

To prove how smooth and gentle FireStep is....

...I balanced a ping pong ball on the pen.


Try THAT with Marlin!

:D

--
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.

--
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,
Jun 21, 2015, 11:34:31 PM6/21/15
to fire...@googlegroups.com
On Sun, Jun 21, 2015 at 11:28 PM, Jason von Nieda <ja...@vonnieda.org> wrote:
Looking forward to that Karl. Let me know if you need any help with the OpenPnP integration. Happy to help.

So, Karl and I were talking earlier after he sent the youtube videos... REALLY cool stuff BTW.. I thought that FireStep wouldn't be ready for MONTHS... I mean being that it was written from SCRATCH and Marlin took YEARS to get right (longer if you count Sprinter / Grbl ancestry).


I'm having so much trouble with Marlin related to accuracy / missed steps, that i've decided to take a quick detour and try to get a FireStep driver started in OpenPnP.  I've already got the delta kinematics implemented, and I'm adding the JSON builder code now.... I'll have to fork FireStep and add in some code to allow me to toggle GPIO pins via JSON... that will allow me to control the pump and the ATX power supply soft-on/off.

I think this will actually go pretty quickly, I want to get this done pretty quick so that I can go back to Dozuki openpnp instructional guides.

If I can get decent motion in the next day or so, I'll write up on how everyone else can try it as well.  I'm looking forward to this, I think it will work well.  I'm also looking forward to Smoothie, but I still don't have my hands on a driver yet.  Luckily in OpenPnP this all abstractable so it we can support both Smoothie and FireStep with no issues at all.



--
Neil Jansen, Co-Founder
Tin Whiskers Technology, LLC

Jason von Nieda

unread,
Jun 21, 2015, 11:36:29 PM6/21/15
to fire...@googlegroups.com
Neil,

Check out the reference TinygDriver for some examples of using JSON in a driver. I've already got a JSON library in OpenPnP for that purpose, so if it suits your needs might as well use it.

Jason


Neil Jansen

unread,
Jun 21, 2015, 11:37:13 PM6/21/15
to fire...@googlegroups.com
On Sun, Jun 21, 2015 at 11:36 PM, Jason von Nieda <ja...@vonnieda.org> wrote:
Neil,

Check out the reference TinygDriver for some examples of using JSON in a driver. I've already got a JSON library in OpenPnP for that purpose, so if it suits your needs might as well use it.



Sweet, I'll check it out.  Thanks! 

Karl

unread,
Jun 21, 2015, 11:48:26 PM6/21/15
to fire...@googlegroups.com, ne...@tinwhiskers.io
Neil/Jason,

Many thanks for looking into this!
:D

Alan

unread,
Jun 22, 2015, 12:41:50 AM6/22/15
to fire...@googlegroups.com, ne...@tinwhiskers.io
That is seriously cool! I like the ping pong ball.

So to get my head around this, the serial data to the Arduino is in text JSON format instead of GCODE?

So if I wanted to link this to a slicer for 3d printing/ laser I need a converter stage that converts gcode to json ? I'm real keen to see how smooth the laser looks with this

Neil Jansen

unread,
Jun 22, 2015, 12:52:39 AM6/22/15
to fire...@googlegroups.com
On Mon, Jun 22, 2015 at 12:41 AM, Alan <alang...@gmail.com> wrote:
So to get my head around this, the serial data to the Arduino is in text JSON format instead of GCODE?

So if I wanted to link this to a slicer for 3d printing/ laser I need a converter stage that converts gcode to json ? I'm real keen to see how smooth the laser looks with this

Yes, you send it JSON.  Currently FireStep does not accept gcode as input.  I think all of us are concentrating on PnP application at the moment, but it is possible that FireStep could do 3D printing and other stuff later on, but that's probably a ways off. 

Alan Grimmer

unread,
Jun 22, 2015, 1:01:36 AM6/22/15
to fire...@googlegroups.com
sweet, I'll have a look if there's something I can fiddle with in there or make a simple console app that generates it for me. for the laser, drawing a square would let me test it out just using json strings on the comport. What direction would 3d printing take. Will we mod our own slicer to output direct json. or have a middle layer that converts gcode to json? you would lose all the nice stuff you can do with curves tho using gcode

--
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/lvLroV0db0U/unsubscribe.
To unsubscribe from this group and all its topics, send an email to firepick+u...@googlegroups.com.

Neil Jansen

unread,
Jun 22, 2015, 1:09:41 AM6/22/15
to fire...@googlegroups.com
On Mon, Jun 22, 2015 at 1:01 AM, Alan Grimmer <alang...@gmail.com> wrote:
sweet, I'll have a look if there's something I can fiddle with in there or make a simple console app that generates it for me. for the laser, drawing a square would let me test it out just using json strings on the comport.


 
What direction would 3d printing take. Will we mod our own slicer to output direct json. or have a middle layer that converts gcode to json? you would lose all the nice stuff you can do with curves tho using gcode

I think at the moment the answer is "we don't know".   Karl has a gfilter library that can run on a PC that converts g-code into modified output.  That could in theory take a sliced model and turn it into JSON.  However, we're missing a lot of stuff that a 3D printer would need.  For example, temperature controllers on the hotend and heated bed, safety features, and some other code that I've brought up in previous threads.  Given all that, i'm not even sure that FireStep is the right tool for that job.  I think it's great for PnP but other than that, I'm not sure...

I do know that Smoothie / MotionBoard will be capable of doing PnP and 3D printing with ease, and it supports gcode.  I'd be using that today if I had it in-hand, but I'm using FireStep in a pinch to get my machine moving reliably in the interim.

Karl

unread,
Jun 22, 2015, 1:37:56 AM6/22/15
to fire...@googlegroups.com, ne...@tinwhiskers.io
One thing to allow for with the laser is that it will burn more during acceleration because it hasn't reached cruise velocity. FireStep has longer accels (e.g., 350 ms) to keep that pingpong steady. For cutting, it will be fine. For engraving I'm uncertain.

What I'm finding is that 3Dprint and PnP movements are drastically different. 3D is highG bumper cars and PnP is silky smooth electric car. It's also stroke based, rather than "lotsa little itty bitty lines.". I have a hunch laser engraving possibilities are quite different and interesting with FireStep's stroke-based approach. My interest in PH curves was driven by 3D sculpting. I originally wanted to route smooth PHCurves in 3D space. That's a lot of sawdust so I gave up. Laser engraving, though.... hmmm!


Alan Grimmer

unread,
Jun 22, 2015, 2:06:34 AM6/22/15
to fire...@googlegroups.com
Ok cool i'll wait out for smoothie unless i get a sudden urge to fiddle

With the laser driver I'm just testing at the moment you can PWM the beam's intensity. So you could compensate to some degree to get even beam intensity over different accelerations... My main goal is just cutting stencil's so its not to important with that. But if you wanted to engrave a grey scale image it would start messing with the intensity. And if you use strokes of best fit that extend past the actual cut line you can turn off the laser during this period. Instead of trying to decel for a corner and ramp up again after it.

On 22 June 2015 at 17:37, Karl <ka...@firepick.org> wrote:
One thing to allow for with the laser is that it will burn more during acceleration because it hasn't reached cruise velocity. FireStep has longer accels (e.g., 350 ms) to keep that pingpong steady. For cutting, it will be fine. For engraving I'm uncertain.

What I'm finding is that 3Dprint and PnP movements are drastically different. 3D is highG bumper cars and PnP is silky smooth electric car. It's also stroke based, rather than "lotsa little itty bitty lines.". I have a hunch laser engraving possibilities are quite different and interesting with FireStep's stroke-based approach. My interest in PH curves was driven by 3D sculpting. I originally wanted to route smooth PHCurves in 3D space. That's a lot of sawdust so I gave up. Laser engraving, though.... hmmm!


Karl

unread,
Jun 23, 2015, 12:16:46 AM6/23/15
to fire...@googlegroups.com, ka...@firepick.org
FireStep 0.1.7 is available.

Digital and analog pin read/write using "io" command.
Eliminated 7kHz idle whine that was causing Neil to go postal.



Neil Jansen

unread,
Jun 23, 2015, 12:37:17 AM6/23/15
to fire...@googlegroups.com
That was quick... Thanks, Karl!  (that would have taken me like 3 days)

FYI to the group, this will allow me to add in to FireStep.
- Vacuum pump on/off (Pick / place functionality)
- ATX power supply soft-on/off
- Modular tool enable
- LED rings light on/off


I've managed to get the OpenPnP driver mostly written, and also a RotatableDeltaKinematicsCalculator.java which handles swapping back and forth between notations of Cartesian coordinates, degrees, and raw steps.  All of these will be configurable in the machine.xml eventually.. they're hard-coded for now, until I've got smooth motion suitable for PnP.


--
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.

NothingButGunpowder

unread,
Jun 23, 2015, 8:56:14 AM6/23/15
to fire...@googlegroups.com
Amazing work guys. I can't wait to get my machine up to try this!

Peter Betz

unread,
Jun 23, 2015, 9:59:28 AM6/23/15
to fire...@googlegroups.com
Awesome!! Looks like my machine's first motion will be under FireStep control!

Peter.

Karl

unread,
Jun 23, 2015, 5:47:08 PM6/23/15
to fire...@googlegroups.com, ka...@firepick.org
FireStep 0.1.8 is now available. In this release we now have EEPROM support.
In particular, you can save FireStep commands for execution on startup.
A common use of this feature would be to home and then move to origin.
This feature is great for impromptu demos, because all you need to do is unplug/plugin the 
Arduino USB cable.



At this point this is all I had planned for now, but holler if you need anything else.
I'm wandering back to calibration...

Anthony Webb

unread,
Jun 25, 2015, 3:22:59 AM6/25/15
to fire...@googlegroups.com
Thanks for the work on firestep, once it is ready to kick the tires I can give it a try.  Just completed my beta kit and have been showing it off to everyone.  I have openpnp showing the camera and motors moving, super excited to pick and place some parts!  Thanks again for a great project.

Karl

unread,
Jun 25, 2015, 7:05:42 PM6/25/15
to fire...@googlegroups.com, ka...@firepick.org
FireStep 0.1.9 is available.


A few minor bug fixes, most notably, FireStep reported that steppers were enabled when they really were not at startup.
Also, FireStep will now disable/enable steppers on pin configuration change. 

The EMC02 pin configuration works on one of my FPDs and Neil is
also testing it thoroughly. In addition, I am testing the RAMPS1.4 configuration {"syspc":2} with A4983 stepper drivers on my
other FPD.  A4983 drivers are being phased out by Pololu, but I have them, and it's an easy enough test.

BraveHearts amongst you should feel free to dive in and start testing. At the very least you'll be able to see if you
can move ping pong balls around without dropping them.


Thank you for all your support and patience. This is pretty exciting!  :D

Neil Jansen

unread,
Jun 26, 2015, 12:26:01 AM6/26/15
to fire...@googlegroups.com
I've officially got FireStep and OpenPnP talking, now we're rocking and rolling.  

Currently done and working:
  • FireStepDriver.java
    • Connect
    • Homing (Works WAY better than Marlin ever did)
    • Move to Cartesian position
    • Set steppers enabled/disabled
    • ATX power supply on/off
    • Pick (pump on)
    • Place (pump off)
  • RotatableDeltaKinematicsCalculator
    • Inverse delta kinematics
    • Forward delta kinematics
    • Improved homing position get/set
    • Exception handling for unreachable delta positions (this works WAY better than Marlin ever did)
The resulting FireStep motion?  Smoother than any quippy analogy I can come up with.

The sound?  The PH accelerations are awesome, they sound crazy but they work!

TBD:
  • Adding all of the delta kinematics and other config params to machine.xml (in FireStep, these are done at the application processor level rather than the motion controller level)
  • Need to make a 'wizard' panel that goes into the openpnp gui
  • Need to parse the return commands from FireStep and do something with them.  right now they go out to the console and I watch them as opnpnp blindly ignores them.  Basically I'll do a state model of FireStep's variables and throw errors when they don't match.
  • some other misc stuff that was neglected in order to get bare minimum working to test proof of concept.

This should be good news for the Arduino laggards, or technically everyone that hasn't obtained a SmoothieBoard / MotionBoard yet (99% of us).

Now that I've got working motion, I'll go ahead and get the PnP demo tutorial done and get the code posted to github, and instructions on how to get the firmware loaded.

Michael Anton

unread,
Jun 26, 2015, 1:32:37 AM6/26/15
to fire...@googlegroups.com
Those of us with unfinished machines need videos!!!  :-)

Mike

Karl

unread,
Jun 26, 2015, 1:48:03 AM6/26/15
to fire...@googlegroups.com, ne...@tinwhiskers.io
WOW! That's great news, Neil!  YAAAAAAAAAAAAAAAY!!!

I do recommend upgrading to FireStep 0.1.10:

FireStep 0.1.10 is ready and fixes a pesky direction bug.

I also updated the FireStep stepper calibration instructions that will help folks get the most out of their steppers:
FireStep stepper tuining is slightly different than what we're used to.

Karl

unread,
Jun 26, 2015, 1:50:13 AM6/26/15
to fire...@googlegroups.com, ka...@firepick.org, ne...@tinwhiskers.io

Anthony Webb

unread,
Jun 26, 2015, 10:11:20 AM6/26/15
to fire...@googlegroups.com
This is awesome news!  Once you have a new process put together for making the switch I am ready to test.  I assume I will need to pull/rebuild OpenPNP, then add some config to machine.xml, and finally load up firestep onto the arduino?  Sounds like a reasonably simple upgrade.  Thanks for the work on getting this done!


On Thursday, June 25, 2015 at 10:26:01 PM UTC-6, Neil Jansen wrote:

Anthony Webb

unread,
Jun 26, 2015, 10:13:16 AM6/26/15
to fire...@googlegroups.com
BTW, my stepper drivers are all tuned to .65V as per the dozuki guide.  Let me know if I need to tweak those first before using firestep.

Neil Jansen

unread,
Jun 26, 2015, 10:14:52 AM6/26/15
to fire...@googlegroups.com
Oh, and some more news, slightly off topic, but Jason is now making automated builds for OpenPNP, with installers, so now I'd people don't want to run from Eclipse, they can just download a binary.

With the gui changes Jason is making to OpenPNP core and my forthcoming gui updates to the org.firepick drivers, we're almost to the point where we won't have to modify the machine.xml by hand either.

So this process will just get smoother and easier as we move forward :)
--
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.

Karl

unread,
Jun 26, 2015, 11:52:56 AM6/26/15
to fire...@googlegroups.com, ne...@tinwhiskers.io
Regarding stepper tuning, Neil's instructions are fine and will facilitate switches back to 3D mode.

However.

If you want a fast PnP
machine, take the time to tune your steppers using FireStep instructions. The voltage will be lower.

Anthony Webb

unread,
Jun 26, 2015, 10:02:05 PM6/26/15
to fire...@googlegroups.com, ne...@tinwhiskers.io
Ideally someone with the kit could give us the new voltage we should trim to for the standard firepick hardware.  I'd rather not decouple my motors if I can avoid it, but I may do  just that if no one with the beta kit has done it yet.

Karl

unread,
Jun 26, 2015, 11:13:54 PM6/26/15
to fire...@googlegroups.com, anthon...@gmail.com, ne...@tinwhiskers.io
The voltages for the steppers depend on each stepper. Mine are all slightly different.
Neil's voltages really are fine. I.e., the standard will be "fast enough."

Only fiddle and decouple if you want to dive in deep and tune up your FPD. 
This is an OCD thing and I was getting carried away. :D

I even swapped out a perfectly fine but slightly slower A4983 for a smoother A4988.  Non of this is really necessary--I was just really curious to see how fast my FPD can go.  Probably the biggest open question is whether we should go with 400 step or 200 step motors. I haven't finished with the vision calibration and have no  data yet.

Alan

unread,
Jun 26, 2015, 11:43:22 PM6/26/15
to fire...@googlegroups.com, anthon...@gmail.com, ne...@tinwhiskers.io
Speaking of current limits, what voltage should be on the smt head stepper? extruder?

ric...@hornbaker.com

unread,
Jun 27, 2015, 2:47:13 AM6/27/15
to fire...@googlegroups.com
Karl,
Have you measured your top speed yet? Say, for a 200mm movement.

I'd be curious to hear where you think the performance is being capped - the number of movements per second through the driver, or the motor itself. Increasing the micro-step from 1/16 to 1/8 should give a hint, no?

Karl

unread,
Jun 27, 2015, 7:23:00 PM6/27/15
to fire...@googlegroups.com, ka...@firepick.org
On the head steppers, I would completely rely on Neil's recommended voltages, which, I suspect are ATX 12V.

On the speed cap, my fastest steppers (they differ), all spin no faster than 22,000 pulses/second. That is therefore
a simple mechanical limitation. FireStep itself can go much faster.

For a 200 step motor @ 16 microsteps, 22000 pulses/second is about 110/16 or 6.875 revs/second. 
FPD pulleys make a full traverse in a about 4.5 revolutions (just mark the stepper gear with a Sharpie
to see this). This means that if the steppers can survive top speed when loaded, we can move anywhere
in the FPD movement volume in well under a second.

To go any faster, we would need to switch to much more expensive servo technology and run closed loop. Personally, I think that
the cost/value tradeoff for steppers is quite compelling and I'll stick with steppers.

The limiting factor, then, is the loss of steps when moving fast. As steppers go faster, they lose torque, so slipping and skipping become
more likely the faster the stepper moves. This is actually the reason I recommend no-load tuning of steppers. They can't possibly
go faster than no-load speed. When loaded with the FPD mechanism, we'll of course go slower, but now we have an upper cap to
work with so we can back off to, say, 18kHz or even 12kHz according to what works.

One of the things I'm working on is calibration of max velocity. The strategy for doing this is quite simple. Using a camera, we move
as fast as we can such that a round trip sequence of moves always ends up in the same position as determined by the camera.
FireSight calcOffset is ideal for this comparison, since it can detect sub-millimeter XY errors quite easily with RaspiCam. Each machine
will have a different top speed given variances in manufacturing and assembly.

The above discussion only applies to pick-and-place with smoothly accelerating motion boards (e.g., FireStep) that provide
continuous and gentle acceleration over a path. 3D printing is subject to tight cornering and high acceleration use
cases, which is a completely different consideration.

If you want to switch between 3D and PnP regularly, follow Neil's documentation and tune your FPD for 3D printing, not for PnP.
If you want to dedicate your machine to PnP, you might be interested in no-load max speed tuning as per FireStep calibration instructions.



Reef Morse

unread,
Jun 30, 2015, 7:14:07 PM6/30/15
to fire...@googlegroups.com, ne...@tinwhiskers.io
Karl, the following files are missing:

#include <Adafruit_NeoPixel.h>
#include <ArduinoJson.h>
#include <ph5.h>

Thanks,  Reef

Neil Jansen

unread,
Jun 30, 2015, 7:16:01 PM6/30/15
to Reef Morse, fire...@googlegroups.com
Reef,

I'm going to write up a guide on how to install and run FireStep.  It's not trivial and a but unintuitive.  I don't believe that Karl has this written up yet.  I'll try to get this listed tonight.  If Karl wants to chime in here that might get you going but otherwise I would wait until I've posted the dozuki tutorial for loading FireStep.

Reef Morse

unread,
Jun 30, 2015, 7:21:56 PM6/30/15
to fire...@googlegroups.com, ne...@tinwhiskers.io
My bad.  I downloaded the Adafruit_NeoPixel.h from Adafruit and realized that the other files were included in the libraries.  It just compiled.

Reef

Karl

unread,
Jun 30, 2015, 8:03:49 PM6/30/15
to fire...@googlegroups.com, ka...@firepick.org

These are the instructions:

Let me know what I need to change about them.

Thanks!

Reef Morse

unread,
Jun 30, 2015, 10:26:07 PM6/30/15
to fire...@googlegroups.com
Karl, these look pretty good.
Only question I have is uncoupling the steppers since I now have them tucked neatly into their holders and have carefully tightened the belts :-).  Should I remove the entire gear or just the set screw?  I'd think the safest thing would be removing the entire 16 tooth gear.

Reef

Karl

unread,
Jul 1, 2015, 1:26:09 AM7/1/15
to fire...@googlegroups.com, reef...@gmail.com
Hmm. LooseCanon pulleys have that internal 3D printed belt tensioning gear that loosens in seconds with a half turn. This lets me slip the belt off the pulley so that it can spin freely. That is LooseCanon design, however, with the 3D printed gear embedded in the pulley. Sadly it's a design not printable by many 3D printers, so the beta kits have a different belt tensioner.

I'm much less familiar with the beta builds, and will need your help figuring out what to do. I can think of some possibilities:

1) loosen the belt tensioner (I think those are screws?)
2) remove the 16 tooth gear as you suggest

I'll document whichever you think is best. The steppers will spin at 6.5 revs/sec, so make sure they can spin freely!

Thanks for your help. :D

Anthony Webb

unread,
Jul 1, 2015, 5:46:11 PM7/1/15
to fire...@googlegroups.com, ne...@tinwhiskers.io
I went ahead and unhooked the pulleys and got firestep calibrated and running.  Here are a couple things of note (for me), again, coming from a working marlin install with the stock beta kit.

I first issued the 1,1,1 command from step 2 of the calibration guide, but did so before I had powered up the motors.  This meant that when I turned on the motors I was getting a loud siren sound, beep, beep, beep.  Like a fork lift backing up.  I thought I had screwed something up, but this was normal as I noted that the sound only happened as the motors turned.

Another side effect was that my vaccum pump was running and I didnt really know how to turn it off, so I just unplugged the module on top, problem solved.  Wish it were off by default.

Once the dust settled, first thing I noted was that the motors were spinning backwards, not clockwise as I had hoped, so I had to issue the command for x, y, and z to get my 3 motors turning the right way.

The marlin config asks that the steppers be at 650mv, and mine were.  As I tuned down the drivers as per the guide, they were noticeably more quiet.

Once I had complete the "optional" part of the config where you set mv to 20000 and re-tune my stepper drivers are all right at about 330mv.

All in all I think I have a working firestep.  Waiting for openpnp to be wired up to use it!

Anthony Webb

unread,
Jul 1, 2015, 6:21:50 PM7/1/15
to fire...@googlegroups.com, ne...@tinwhiskers.io
I will also note that I was NOT able to the stepper drivers tuned in with mv set to 23000

Reef Morse

unread,
Jul 1, 2015, 6:56:56 PM7/1/15
to fire...@googlegroups.com
1). Cut the pull tie on the 150 tooth pulley that tensions the belt. Remove the tie
2). Loosen the set screw from the 16 tooth pulley and slide it off the shaft of the stepping motor.

N-1). Slip the drive belt over the 16 tooth pulley and slide the assembly onto the stepper shaft. Make sure the set screw engages the flat part of the stepper shaft. Tighten the set screw after enduring that the belt runs on the middle of both pulleys.
N). Tighten the belt using a new pull tie (as shown in step X of the dozuki tutorial).

Karl

unread,
Jul 2, 2015, 12:09:01 AM7/2/15
to fire...@googlegroups.com, ka...@firepick.org
Anthony/Reef,

Many thanks for your detailed reports and feedback. I'll update the instructions tomorrow.

Those are quite some rough spots you guys overcame.

I'm glad you're finding about the same values for FireStep trimpot reference voltages (~330mv).
It was counter-intuitive to use a lower current to get higher velocity--it's the opposite of "push pedal, go fast."

That ghost pump needing to be unplugged is weird. FireStep in fact isn't (to my knowledge) doing anything
with those pins. I'm scratching my head on that one, so if anybody knows how to exorcise an unassigned
pin poltergeist, holler...


Peter Shabino

unread,
Jul 2, 2015, 12:18:54 AM7/2/15
to fire...@googlegroups.com
What does the Arduino do with unused pins? (float (tristate or set to inputs), Drive low, Drive high?) 

May just be a matter of setting up the unused pins to a known state that disables the pump (and other accessories like the heated bed and extruder) 

Later,
Peter

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



Date: Wed, 1 Jul 2015 21:09:01 -0700
From: ka...@firepick.org
To: fire...@googlegroups.com; ka...@firepick.org
Subject: [FirePick] Re: FireStep with EMC02

Anthony Webb

unread,
Jul 2, 2015, 1:05:51 AM7/2/15
to fire...@googlegroups.com
Definitely should pull the pump pin low by default, also probably the heated bed too.  Ideally those axis would default to false instead of true so the motors were turning the right way by default.  Overall it is awesome though!  I have built several CCN machines all driven by TinyG and find it so cool how similar the interfaces are, so awesome, cant wait to pick and place some parts!

greg....@kutu.com.au

unread,
Jul 2, 2015, 1:52:15 AM7/2/15
to fire...@googlegroups.com
Hi Karl,
   The 650mV recommendation sets the current at 1.625A, and the 330mV sets the current at 0.825A.  As the stepping speed increases, the time to ramp up to current decreases.  If the stepping speed is too fast, then as the controller ramps up the current (as a sine wave), then the actual current can't keep up.  So what happen is your nice sine wave turns into a triangle wave, and the 2 phases of the stepper aren't 90 degrees out of phase any more, so the steppers get noisy.  As you drop the current setting the waveforms improve, but so does the stepper power.  When I get a chance (I'm overloaded at the moment), I'll see if I can capture the waveforms on my CRO and optimise it.  0.825A seems a little low to me, so we may end up having to increase the stepper voltage after all.

cheers,
Greg

Neil Jansen

unread,
Jul 2, 2015, 7:58:14 AM7/2/15
to fire...@googlegroups.com
Sorry for not replying sooner, 

Everyone wanting to try FireStep should pull the latest changes in OpenPnP which include a FireStep driver that I wrote and Jason merged into the official repo last night.  Once updated, simply change your driver in machine.xml  to org.firepick.driver.FireStepDriver. 

I would also highly recommend my fork of FireStep on the FirePick-delta repo.  You will need this to get full usage of the machine including the power supply, nozzle rotation, and the vacuum pump.  These changes have not been sent to Karl yet.

I've not finished the dozuki instructions yet, but I've found the driver I wrote to be pretty safe and effective.  Certainly safer than what everyone's doing in this thread (trying to run it manually).

This info *should* be enough for the eager folks here to get started, and the functionality is good enough to do pick and place (I'm also working on the final tutorial to do a simple pick and place job but I'm getting pulled in a lot of directions at the moment).  For everyone else, I'll try to have the documentation caught up as soon as I can.

Karl

unread,
Jul 2, 2015, 9:39:28 AM7/2/15
to fire...@googlegroups.com, ka...@firepick.org
Neil, thanks for the update. Send me the pull request when you can--I'd like to keep FireStep current. 
I imagine you've solved the ghost (floating?) pin issue.

Greg, thanks for the triangle wave explanation. I'd like to drive the steppers at a higher current if we can
keep the speed high. Let me know about your research--I'm not sure what I can change in FireStep to
alter the waveform, since those are done by the stepper driver. I think the higher currents permit rapid
acceleration, which is a 3D requirement not a PnP requirement.  3D=>HighA   PnP=>HighV

Anthony, I measured my vrefs and they range from 285-415mV. Only one of my steppers reaches 23kHz, so I
run the testph at 20-22kHz.  Also surprising is that the individual stepper board or stepper motor matters.
I do get different top speeds with different motors and/or drivers. 

BTW, the higher speeds do introduce homing roughness. My ping pong ball jitters madly. The homing code
is slightly different and I'll need to smooth it out.

I also suggest making a record of your high-speed vrefs so that you can just use a VOM to change
your FPD tuning from Neil's recommendation to the high-speed vrefs without much hassle.

This is all bleeding edge stuff. Thank you for your enthusiasm and patience!

Karl

unread,
Jul 2, 2015, 10:10:33 AM7/2/15
to fire...@googlegroups.com, ka...@firepick.org
Anthony/Reef,

I've tried to meld your respective experiences in updates to Step 0 and Step 1.
Let me know if you have additional edits:

Thanks!

Anthony Webb

unread,
Jul 2, 2015, 10:49:40 AM7/2/15
to fire...@googlegroups.com
The updates look great!  Only feedback I would have is in step 1 mention what each of the calls are to change motor direction.  "xdh", "ydh", and "zdh" I had to go hunting for those names to be certain and it would be nice if it were right there in the config.

I agree with Karl, lets keep all code in one repo that is up to date so we arent playing the 2 steps forward 1 step back game.

Neil Jansen

unread,
Jul 2, 2015, 10:56:06 AM7/2/15
to fire...@googlegroups.com
Re: repos, yes that's exactly what I plan on doing but Karl won't accept my ugly hacks until I clean them up.  My repo can, in the meantime, be used for those unwilling to wait for the pull request, which might not happen for a day or two.
--
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.

Karl

unread,
Jul 2, 2015, 10:59:56 AM7/2/15
to fire...@googlegroups.com, anthon...@gmail.com
Anthony, thanks for pointing out the direction confusion. I've updated Step 1 to provide instructions as you suggest.

The Guru

unread,
Jul 2, 2015, 5:25:15 PM7/2/15
to fire...@googlegroups.com
Pins by default are inputs, so "floating" unless there is an external pull up (or down).

-Tom

Douglas Pearless

unread,
Jul 2, 2015, 7:59:01 PM7/2/15
to fire...@googlegroups.com
And be warned, as I found out, if you mis configure the heater pins for either the hot end or the heated bed for 3D so that they are not pulled low , i.e. they are floating, then this turns on the heaters fully with NO temperature control ...

Sent from my iPhone

> On 3/07/2015, at 9:25 am, The Guru <cyberr...@gmail.com> wrote:
>
> Pins by default are inputs, so "floating" unless there is an external pull up (or down).
>
> -Tom
>

Neil Jansen

unread,
Jul 2, 2015, 8:46:06 PM7/2/15
to fire...@googlegroups.com
On Thu, Jul 2, 2015 at 7:58 PM, Douglas Pearless <douglas....@gmail.com> wrote:
And be warned, as I found out, if you mis configure the heater pins for either the hot end or the heated bed for 3D so that they are not pulled low , i.e. they are floating, then this turns on the heaters fully with NO temperature control ...

This is why I'm trying to have FireStep and OpenPnP oonfigure the pins correctly, so that this sort of thing doesn't happen.  I don't recommend trying to talk to FireStep manually at an interactive prompt.  Too much opportunity for bad things to happen.  Just use the OpenPnP FireStepDriver.java and let it worry about setting everything correctly (which it currently does).

Ristola

unread,
Jul 2, 2015, 8:53:58 PM7/2/15
to fire...@googlegroups.com
Question regarding Firepick.

Loaded Latest version of Firepick to Arduino.
Uncoupled belts, and proceeded to calibrate, but only the Y-Axis appears to be enabled and slight hum.
All of the drivers are set to 0.400 current.

Re-loaded Marlin back on the arduino, and everything moves just fine.

What am I missing ?

Loren

On Friday, June 19, 2015 at 11:32:22 PM UTC-4, Karl wrote:
FireStep 0.1.5 is available:

https://www.youtube.com/watch?v=0rBLWl5E1Qo

* EMC02 pin assignments are default (but RAMPS1.4 is configurable)
* A4988 drivers are a great improvement over DRV8825 in terms of low current adjustment for maximum speed
* I have no idea which way to hook up EOPTO02 and so haven't been able to test

There is still a lot to be done on FireStep (e.g. FPD tool support, etc.), 
but my focus is now on FireREST as the FireStep driver.

Neil Jansen

unread,
Jul 2, 2015, 8:55:09 PM7/2/15
to fire...@googlegroups.com
On Thu, Jul 2, 2015 at 8:53 PM, Ristola <lo...@ristolatechnicalservices.com> wrote:
Question regarding Firepick.

Loaded Latest version of Firepick to Arduino.
Uncoupled belts, and proceeded to calibrate, but only the Y-Axis appears to be enabled and slight hum.
All of the drivers are set to 0.400 current.

Re-loaded Marlin back on the arduino, and everything moves just fine.



 Are you running from OpenPnP?

Douglas Pearless

unread,
Jul 2, 2015, 9:06:02 PM7/2/15
to fire...@googlegroups.com
Yep, I have considered several use-cases, especially when people are loading or updating firmware so that if it goes wrong, they cannot turn on motors and hot things by accident.

The simples solution I have come up with is delete GND connection on R28 on the estop circuit and route this to a spare pin on the Smoothie (or Arduino) so the firmware HAS to force the pin low in order for IC1 and IC2 to be enabled (and the ESTOP switch also has to be closed).

This has the effect that an un-programmed processor board, or a borked firmware load, is unlikely to drive the pin LOW and therefore a floating (i.e. un-configured pin or configured as an input pin) or high output will leave IC1 & IC2 disabled and therefore no power to motors, hot ends, etc.

Thoughts?

Cheers
Douglas

Ristola

unread,
Jul 2, 2015, 9:38:19 PM7/2/15
to fire...@googlegroups.com
I first tried sending the commands thru Arduino Serial Monitor to Calibrate Steppers.
Only the "Y-Axis" appears to be enabled as X and Z I can spin easily.
The Y-Axis hums but will not turn in either direction, regardless of the current setting.

After giving up on figuring out the commands to send to Calibrate / Test Firepick I updated my OpenPNP with the latest version as well.

Deleted my existing machine.xml, ran OpenPNP and let it create a new machine file.
Edited the machine.xml replacing the Null Driver for the firepick driver.  Everything appears to be fine there.
Selecting Start - takes about 20 seconds to change status... Wondering why there is so much delay with Firepick Driver vs Marlin.

Power supply Comes on, as well as the vacuum pump, and heated bed just for a few seconds.
Pick and Place Buttons control the vacuum pump properly.
Same condition with the Axis as before.
Only Y-Axis appears to be enabled.

After getting nowhere with Firepick, I re-installed the Marlin Firmware, ran Ponterface and everything performs as well as before.

Any Idea's what I am missing here ?

Anthony Webb

unread,
Jul 2, 2015, 9:51:55 PM7/2/15
to fire...@googlegroups.com
One other note form my experience that you may be seeing.  When I open the arduino console, it did not appear that my commands were working.  But I had to change the default line ending to "both" (in addition to setting the baud rate correctly) before my commands were received.  Perhaps in the calibration instructions we should have some sort of a ping command that you can run to make sure you are talking over serial correctly?  Beyond that, once you are certain your commands are being received well you may try to enable the motors that are not working, commands to do that are:

{"xen":true}
{"yen":true}
{"zen":true}

Ristola

unread,
Jul 2, 2015, 10:11:26 PM7/2/15
to fire...@googlegroups.com
Here is a paste of my Serial Terminal.
As I enter the commands to enable each, they show up in the results but still are not enabled.

Also the LED ring on the Effector flashes on/off as at the same time as D13 LED and causes the Bed Heater to pulse.

{"syspc":2,"ydh":false},"t":0.00}
{"s":0,"r":{"syspc":2,"ydh":false},"t":0.00}
{"s":0,"r":{"xen":true},"t":0.00}
{"s":0,"r":{"yen":true},"t":0.00}
{"s":0,"r":{"zen":true},"t":0.00}

Reef Morse

unread,
Jul 2, 2015, 10:17:42 PM7/2/15
to fire...@googlegroups.com
Is it worth considering in future board changes to add pull up or pull down resistors on those pins that are critical? I know this would occupy valuable real estate but it might prevent a problem in the field for future applications.
Reef

Reef Morse

unread,
Jul 2, 2015, 10:17:42 PM7/2/15
to fire...@googlegroups.com

Douglas Pearless

unread,
Jul 2, 2015, 10:22:30 PM7/2/15
to fire...@googlegroups.com
Try swapping the StepStick driver boards around ( after powering off and disconnecting the USB as well ) to isolate the issue to either a board or an axis.

Also using a multimeter to continuity race back the enable pin on the not working StepStick boards back to the associated pins on the Arduino board too.

If the above steps show it is the all ok and the issue isn't the stepsticks or the wiring, it will be a software issue.

Sent from my iPhone
--

Neil Jansen

unread,
Jul 2, 2015, 10:26:13 PM7/2/15
to fire...@googlegroups.com
On Thu, Jul 2, 2015 at 10:17 PM, Reef Morse <reef...@gmail.com> wrote:
Is it worth considering in future board changes to add pull up or pull down resistors on those pins that are critical?  I know this would occupy valuable real estate but it might prevent a problem in the field for future applications.

I added these on all applicable digital output pins that go to anything sensitive.  They DO assume that the correct firmware is loaded, however.

Anyone that's still having issues with firestep, please pull main/latest from either repo, Firepick1 (Karl) or firepick-delta (our official repo), switch to 'dev' branch, and try that.  There should be no problems with this code.  Karl merged my pull request earlier today.  If anyone has issues with this, with OpenPnP, please let me know.

Reef Morse

unread,
Jul 2, 2015, 10:27:00 PM7/2/15
to fire...@googlegroups.com
Karl, updates look good.
Might you consider adding a "go to" command such as going to 0,0,0? That would demonstrate that the FPD can actually go somewhere from somewhere else (Home, go to 0,0,0), or have it move to a specified place such as 50 mm along a given axis?

Thanks , Reef

Douglas Pearless

unread,
Jul 2, 2015, 10:27:15 PM7/2/15
to fire...@googlegroups.com
The MOSFET already has a pull down resistor, the issue is an an un-configured or mis-configured pin can ( and in my experience has ) caused the hot end to go on full power with no thermal control when I have been debugging the core firmware and another scenario where I had a mis configuration in the config file!

Sent from my iPhone

> On 3/07/2015, at 2:17 pm, Reef Morse <reef...@gmail.com> wrote:
>
> Is it worth considering in future board changes to add pull up or pull down resistors on those pins that are critical? I know this would occupy valuable real estate but it might prevent a problem in the field for future applications.
> Reef
>

Paul Jones

unread,
Jul 2, 2015, 10:37:03 PM7/2/15
to fire...@googlegroups.com
The relay on the heated bed for my ultimaker welded itself closed last week. The smoke alarm hadn't gone off yet but someone called out "Paul, what's that weird smell in the garage!". Although I was using a 10A 3 pole industrial relay, for some reason I never noticed I had only wired one pole. The bed got up to 154 degrees C and melted my print!

Just goes to show no matter how many precautions you take an independent backup system is always a good idea!!

Paul.

Douglas Pearless

unread,
Jul 2, 2015, 10:44:20 PM7/2/15
to fire...@googlegroups.com
You may want to consider some of these:

ST3826ImageMain-515Wx515H.jpg

They are bi-metal normally closed thermal switches, just put them in line with your hotbed and attach them to the hotbed and these will turn off the bed when the preset temperature is reached (but when they cool down below that temperature they go on again);

OR perhaps:

ST3812ImageMain-515Wx515H.jpg

A thermal fuse which permanently goes open circuit when a certain temperature is reached and has to be replaced. 

Cheers
Douglas

Ristola

unread,
Jul 2, 2015, 10:48:14 PM7/2/15
to fire...@googlegroups.com
I will check the enable's on each stepstick.
Being that I can re-load Marlin on the Arduino, and all of the Axis work fine, I kinda ruled out the Drivers.
I don't see why Marlin will enable all the drivers, but FireStep will not.

The FireStep Version (Latest)  on the Arduino is
#define VERSION_MAJOR 0
#define VERSION_MINOR 1
#define VERSION_PATCH 10

Paul Jones

unread,
Jul 2, 2015, 10:50:04 PM7/2/15
to fire...@googlegroups.com

Good idea. I’m used to removing thermal switches, not adding them, so I didn’t even think of it!!

 

 

 

Paul.

Neil Jansen

unread,
Jul 2, 2015, 10:58:45 PM7/2/15
to fire...@googlegroups.com
On Thu, Jul 2, 2015 at 10:48 PM, Ristola <lo...@ristolatechnicalservices.com> wrote:
I will check the enable's on each stepstick.
Being that I can re-load Marlin on the Arduino, and all of the Axis work fine, I kinda ruled out the Drivers.
I don't see why Marlin will enable all the drivers, but FireStep will not.

The FireStep Version (Latest)  on the Arduino is
#define VERSION_MAJOR 0
#define VERSION_MINOR 1
#define VERSION_PATCH 10
 

Have you using FireStep with the OpenPnP FireStepDriver yet?  I've had zero issues running it this way.  You have the latest FireStep driver so it should be trivial once you're using openpnp with the intended driver.

Ristola

unread,
Jul 2, 2015, 11:02:57 PM7/2/15
to fire...@googlegroups.com
That's the problem, I cannot get the FireStep to work.
I believe OpenPnp will be fine once the arduino is doing it's thing.
Where is the latest version of FireStep ?  I choose the one marked Latest.

Neil Jansen

unread,
Jul 2, 2015, 11:06:13 PM7/2/15
to fire...@googlegroups.com
On Thu, Jul 2, 2015 at 11:02 PM, Ristola <lo...@ristolatechnicalservices.com> wrote:
That's the problem, I cannot get the FireStep to work.
I believe OpenPnp will be fine once the arduino is doing it's thing.
Where is the latest version of FireStep ?  I choose the one marked Latest.

Either repo (firepick1 or firepick-delta).  'dev' branch.  main/latest.

You have the latest version of firestep per your last email.

You need to make sure openpnp is also at main/latest (either repo, firepick-delta or openpnp, 'develop' branch.  Go into openpnp, go to the config tree, select 'FireStepDriver', select your COM port and keep the baud rate at the firestep default (19200).  Hit "START", it will initialize and home the machine.  All features of the motion controller should work great at that point.

Ristola

unread,
Jul 2, 2015, 11:25:45 PM7/2/15
to fire...@googlegroups.com
Neil,

Ok to ensure I had the latest Pull (dev) , I sync'd, deleted my .openpnp directory and re-compiled.
Now I get the Error in Eclipse, it cannot read the configuration file.
Looking in the created .openpnp folder, it doesn't create the machine.xml any more.

Loren

Neil Jansen

unread,
Jul 2, 2015, 11:26:51 PM7/2/15
to fire...@googlegroups.com
This question might be better answered by Jason, I'll ping him and see if he can chime in.. hang tight

--
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.

Ristola

unread,
Jul 2, 2015, 11:56:07 PM7/2/15
to fire...@googlegroups.com
Neil,

I deleted all projects in Eclipse, Deleted all OpenPnp and Re-Cloned the (dev) branch since it appears to be updated yesterday.
I was able to get it to compile and re-create the .openpnp folder with machine.xml.
Has the Firepick driver already been included in the machine folder or is it suppose still be a manual edit ?

Neil Jansen

unread,
Jul 3, 2015, 12:00:15 AM7/3/15
to fire...@googlegroups.com
On Thu, Jul 2, 2015 at 11:56 PM, Ristola <lo...@ristolatechnicalservices.com> wrote:
Neil,

I deleted all projects in Eclipse, Deleted all OpenPnp and Re-Cloned the (dev) branch since it appears to be updated yesterday.
I was able to get it to compile and re-create the .openpnp folder with machine.xml.
Has the Firepick driver already been included in the machine folder or is it suppose still be a manual edit ?

You'll need to either (A) edit the machine.xml (change the default driver name to org.firepick.driver.FireStepDriver.java -- see below), or (B) set this via the GUI.


My machine XML looks like this for the driver part:
      <driver class="org.firepick.driver.FireStepDriver" port-name="/dev/tty.usbmodem262331" baud="19200" feed-rate-mm-per-minute="5000.0"/>

I *think* this can be done through the GUI but just tried it and can't select the firestep driver .. this might not be doable yet in the dev branch at this time, but the manual changes to the xml will get you going for now.

Hope this helps, let me know if you have any more issues, I'm happy to help, and apologize that I don't have the documentation up yet.

Ristola

unread,
Jul 3, 2015, 12:45:54 AM7/3/15
to fire...@googlegroups.com
Neil,

No problem with the editing.
This is what I edited mine to... <driver class="org.firepick.driver.FireStepDriver" port-name="/dev/tty.usbmodem1441" baud="19200" feed-rate-mm-per-minute="5000.0"/>

No movement on any of the steppers when requesting HOME.
Power supply comes on as soon as Openpnp loads.
Clicking Start - It takes 20 Seconds to complete / change status to Stop (or allowing anything from happening)
Pick / Place - Controls the vacuum pump perfectly.

The only Axis that the Enable goes Low on is "Y", X, Z, C are held HIGH.

Reloaded Marlin to make sure (one again) none of the drivers were defective... and it homes and jogs perfectly.
I have (7) driver's new in a pack from other projects in the past, and even tried those.. same results.
I have to believe it is in the FirePick Firmware however I have not dug into it enough to see how it works.
The Pins. appear to be setup the same as marlin as far as i can tell.

Clueless Now !

Loren

Anthony Webb

unread,
Jul 3, 2015, 1:00:48 AM7/3/15
to fire...@googlegroups.com
@loren are you running the firestep firmware from Neil's repo or Karl's?  Can you link me to the one you are flashing and I will try and flash and see if I have similar happen.  I have Karl's .10 release loaded and am not having any issues... BTW, I assume you are doing all this testing with your belts unhooked correct?

Ristola

unread,
Jul 3, 2015, 1:58:42 AM7/3/15
to fire...@googlegroups.com
Anthony,

The version I was trying to run showed V10, not even sure where I found it. But it failed terribly.
I deleted all files regarding FirePick and Re-pulled from Firepick1 (version 7) - This one is working fine, although openpnp has issues such as:
- Go to Zero only zero's the DRO.
- C Axis and -E Axis move at the same time 
- cannot train it to go between camera location and pick location. 
- LED rings do not turn on.

But it sure moves nicely.  And yes, I had all belts off until I got past the single axis being enabled.
What is the link for Karl's version.. I would happy to give that version a twirl.

Loren

Neil Jansen

unread,
Jul 3, 2015, 10:22:09 AM7/3/15
to fire...@googlegroups.com
On Friday, July 3, 2015, Ristola <lo...@ristolatechnicalservices.com> wrote:
- Go to Zero only zero's the DRO.

This is an open bug, im unable to fix this and am waiting for Jason.  It's very low priority however as all that's missing is an event to update the DRO with the new position.. It doesn't affect motion or anything job related.

 
- C Axis and -E Axis move at the same time 

Exactly what are you referring to by saying "C" and "E" axis?  These are ambiguous and you'll need to specify where and what.  It's confusing I'm sure, but openPnP uses XYZA, FireStep uses XYZABC but I'm only using XYZA (B and C are not used), and Marlin used XYZE but since you're not running Marlin I have no idea where you're getting "E" from? I'm not using the "C" axis in FireStep, at least I'm not intending to.

 
- cannot train it to go between camera location and pick location. 

Please elaborate here, what do you mean by train?  Do you have the camera offsets defined as per the dozuki tutorial?

 
- LED rings do not turn on.

That's intentional at this point as I've not added buttons or logic to turn them on yet.  The function/method to turn them on exists but nothing calls it.  

 
What is the link for Karl's version.. I would happy to give that version a twirl.

Again not sure what you're referring to here.  Karl's version of what?  FireStep?  It's in his repo, just like I said in my last email.

Karl

unread,
Jul 3, 2015, 10:44:35 AM7/3/15
to fire...@googlegroups.com, ka...@firepick.org
FireStep 0.1.11 prerelease is available for adventurers. I've tested it on my FPD without OpenPnP, hence the pre-release status. Release 0.1.11 incorporates Neil's pull request from his fork.  Many thanks to Neil for solving the floating pin ghosts that were apparently due, as many have suggested here, to floating pins. Neil set them appropriately for EMC02.


I am a bit swamped with other stuff at the moment (SImon has done a major FireSight upgrade), and
haven't had the chance to spin up OpenPnP for testing 0.1.11.

However, I will gladly upgrade FireStep 0.1.11 release status to GA if I can get confirmation that it works with OpenPnP. (Neil? Anthony?)



Ristola

unread,
Jul 3, 2015, 11:56:14 AM7/3/15
to fire...@googlegroups.com
Neil,

- C Axis and -E Axis move at the same time 

Sorry for the E-Axis reference. 
When Jogging the C- Axis in OpenPnp the Pick-n-Place Stepper and the Extruder move at the same time.
Being that the Jog Buttons for the Pick-n-Place stepper is labeled "C" I assumed it was the C-Axis.  Maybe it needs the Labels Changed to "A"

As far as Training, I mean to say setting the Camera and Tool locations are not works as it did before.
Setting the tape location, homing and selecting movement to Camera or Tool position doesn't work.  It does however change the DRO to the offset.

The Go to Zero issue I have does NOT move to the zero position, so it does affect motion.

How would someone know Karl's version is here https://github.com/firepick1/FireStep/releases ?
I don't see any repo's that say Neil's or Karl's. 
You mention using the (dev) branch, however the (develop) branch shows most recent updates ?

Sorry about the dumb questions.  I was merely asking for clarification.

Loren

Karl

unread,
Jul 3, 2015, 11:59:49 AM7/3/15
to fire...@googlegroups.com, lo...@ristolatechnicalservices.com
Karl is firepick1

:D

Jason von Nieda

unread,
Jul 3, 2015, 12:42:17 PM7/3/15
to fire...@googlegroups.com
OpenPnP uses XYZC. The reason for C instead of A, E, etc. is that this is traditional CNC terminology. A, B and C are the first three rotation axes and they correspond to the first three linear axes X, Y and Z. So if you rotation axis is attached to X it's A, if Y it's B and if Z, like in a pick and place, it's C. 

OpenPnP originally called the nozzle rotation axis A because I didn't know better, but I was corrected and changed it all to C several years back. Some of the drivers still reference A or E but that is simply because that's what that firmware expects. In the UI we always refer to the nozzle rotation axis as C.

Jason


Reef Morse

unread,
Jul 3, 2015, 4:50:14 PM7/3/15
to fire...@googlegroups.com
Urgh. Finally got a moment to check FireStep 0.1.10 and when I sent "tstsv":[1,1,1] . Got a response from the Arduino but no motor spin. Tried enabling. Nada. Hmmmm.......

Ristola

unread,
Jul 3, 2015, 5:22:38 PM7/3/15
to fire...@googlegroups.com
Sounds like you are having the same issues I was having.
I was only able to get the X-Axis to enable, but it wouldn't move.  Y and Z Axis would not enable at all.

You have to try to read every post to have a chance in keeping up it seems.
There are too many different repositories to follow along where all the updates are at.

I was not able to get 0.1.10 or 0.1.11 to work from here -> https://github.com/firepick1/FireStep/releases
Try the 0.1.7 Neils version of FireStep and you can follow the stepper calibration procedure.

0.1.7 and Openpnp with the fire pick driver does move however I am experiencing a lot of the features of openpnp not working anymore.

Hope that helps.

Loren

Karl

unread,
Jul 3, 2015, 8:36:58 PM7/3/15
to fire...@googlegroups.com, lo...@ristolatechnicalservices.com
Reef/Loren

Wow. That's sad news. 

I think Anthony got his FPD working with 0.1.10.

This will be hard to debug via newsgroup.

I'm available till 10PM PST for Google Hangout consultation.




Neil Jansen

unread,
Jul 3, 2015, 10:03:29 PM7/3/15
to fire...@googlegroups.com, lo...@ristolatechnicalservices.com
On Fri, Jul 3, 2015 at 8:36 PM, Karl <ka...@firepick.org> wrote:
Reef/Loren

Wow. That's sad news. 

I think Anthony got his FPD working with 0.1.10.

This will be hard to debug via newsgroup.
 

Everything I checked in was working and tested.  I'm extremely skeptical that this is a code issue, it has to be something with setup or misconfiguration.  Because I'm extremely tied up at the moment with overtime at my day job (on a holiday no less), it might be a bit before I can finish documentation in Dozuki.  

My apologies, but again, I'm sure this something minor.

Ristola

unread,
Jul 3, 2015, 10:35:04 PM7/3/15
to fire...@googlegroups.com, lo...@ristolatechnicalservices.com
Karl,
I would be happy to consult, never used google hangout LOL

Loren

Karl

unread,
Jul 4, 2015, 12:20:36 AM7/4/15
to fire...@googlegroups.com, lo...@ristolatechnicalservices.com
Thanks to Loren, we now have a lot more information.

The reason 1.10 and 1.11 did not work for Loren was that there were FireStep commands in EEPROM.
Once we cleared them out, things started working again. Loren has a beta kit, so this experience may
affect others.

We did have some additional issues, however, and I'll describe them here:

1) EEPROM needed clearing out => {"eep0":{"sysv":""}}
2) {"tstrv":[1,1,1]} revealed that steppers were going wrong way. FIX => {"eep0":{"xdh":false,"ydh":false,"zdh":false}}
3) {"tstrv":[-1,-1,-1]} confirmed that steppers direction changed as expected
4) {"tstph":{"mv":20000,"tv":0.35,"pu":32000}} was highest sustainable speed with VREF ~350mV
5) {"hom":""} did not work but {"hom":{"x":"","y":"","z":""}} did.  Conclusion was that the "a" axis was enabled and interfering somehow with homing (Karl to investigate)
6) Final EEPROM setting that worked with OpenPnP was => {"eep0":[{"xdh":false,"ydh":false,"zdh":false},{"aen":false},{"hom":""},{"mov":{"x":5000,"y":5000,"z":5000}}]}

The odd thing about #6 was that the hom and mov commands in the EEPROM never executed (Karl to investigate)

I would like to thank Loren for his patience and time in helping to resolve this issue.

Reef, we decoupled the belts before doing all the above. YMMV.

I'll be investigating the issues reported above and most likely release a new FireStep in the near future.

Karl

unread,
Jul 4, 2015, 11:48:41 PM7/4/15
to fire...@googlegroups.com, ka...@firepick.org, lo...@ristolatechnicalservices.com
I've updated the FireStep stepper calibration instructions based on the
learning from setting up Loren's machine.


Reef, hopefully these new instructions will get your motors spinning.
(Also feel free to try prerelease 0.1.12)

Paul Jones

unread,
Jul 6, 2015, 7:14:47 AM7/6/15
to fire...@googlegroups.com
Hi Karl,

I'm having a weird issue with FireStep - using OpenPnP and jogging in 100mm increments results in a downward arc movement of around 5mm! I assume this is not intended? I can't see any arc using 10mm, and if I jog the entire 300mm from side to side in 10mm increments I can stay 1-2mm above a ruler the whole way across.
There is a small difference with my machine from the beta kits - I'm using 400 step/turn motors, and a T2.5 belt. Everything else is standard.
Firestep version is 0.1.13, motor config in openpnp:
private double XYZ_FULL_STEPS_PER_ROTATION = 400.0;
private double XYZ_MICROSTEPS = 16.0;
private double PULLEY_REDUCTION = 6.195;


Paul.

On Saturday, June 20, 2015 at 1:32:22 PM UTC+10, Karl wrote:
FireStep 0.1.5 is available:

https://www.youtube.com/watch?v=0rBLWl5E1Qo

* EMC02 pin assignments are default (but RAMPS1.4 is configurable)
* A4988 drivers are a great improvement over DRV8825 in terms of low current adjustment for maximum speed
* I have no idea which way to hook up EOPTO02 and so haven't been able to test

There is still a lot to be done on FireStep (e.g. FPD tool support, etc.), 
but my focus is now on FireREST as the FireStep driver.

Neil Jansen

unread,
Jul 6, 2015, 8:45:28 AM7/6/15
to fire...@googlegroups.com
Paul,

I've seen this as well on my machine.  I won't speak for Karl but I don't think he's getting his feet wet with OpenPNP at this point., rather he mentioned that he's trying to get back to vision calibration.

I agree that this isn't desirable, however, it doesn't really affect anything and is very safe, as we will be doing large XY moves at the Safe Z point, and all as moves will be purely up and down.  So even if the XY move was off by 5mm, it won't be in the way of anything.  I'm not sure what causes it, and it might be worth looking into, but it won't slow us down any, getting to real PnP use cases.

--
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.

Karl

unread,
Jul 6, 2015, 10:49:28 AM7/6/15
to fire...@googlegroups.com, ne...@tinwhiskers.io
On bowed jogging...FireStep mov traverses a straight line in delta coordinates. Lines in delta space normally convert to curves in cartesian space. This is why we need the dvs command, because dvs dictates motion over entire path. The mov command only guarantees endpoint coordinates and no assumptions should be made about intermediate points. A 3-segment up/cruise/down PnP motion is therefore absolutely required to prevent unexpected collisions.

The other, more significant issue is homing error. Homing error has a significant impact on nonlinearity at axis extremes such as 100mm. A single degree of homing error can cause a millimeter of linearity error. Hence the priority on visual calibration. A bubble level isnt quite good enough for us here.


It is loading more messages.
0 new messages