manimino / OpenSyringePump

Open Syringe Pump instructions, code, and 3D files
61 stars 44 forks source link

big bolus not work, but small one does #2

Open coronin opened 9 years ago

coronin commented 9 years ago

Thanks a lot for the wiring diagram. Now, I got it work for 0.05ml bolus, however, the 0.5ml did not. I recorded a video to show that, http://youtu.be/-8VQIqMVVSU . Any suggestion?

naroom commented 9 years ago

Ahh, I like the green 3D printed parts. Looks nice!

The problem may actually be, the motor is able to turn at low speeds, but loses power at high speeds.

If this is the case, here are two things to try:

Good luck :)

On Sun, Dec 28, 2014 at 9:48 PM, Liang Cai notifications@github.com wrote:

Thanks a lot for the wiring diagram. Now, I got it work for 0.05ml bolus, however, the 0.5ml did not. I recorded a video to show that, http://youtu.be/-8VQIqMVVSU . Any suggestion?

— Reply to this email directly or view it on GitHub https://github.com/naroom/OpenSyringePump/issues/2.

naroom commented 9 years ago

Ahh, my mistake; the "motorSpeed" parameter is no longer used. Try instead, making the SPEED_MICROSECONDS_DELAY parameter longer -- raise it to 200, perhaps.

On Mon, Dec 29, 2014 at 12:32 AM, Theo Walker naroom@gmail.com wrote:

Ahh, I like the green 3D printed parts. Looks nice!

The problem may actually be, the motor is able to turn at low speeds, but loses power at high speeds.

If this is the case, here are two things to try:

  • Lower the motor speed in the Arduino code [line 44 of the code file]
  • Turn the "current adjust" potentiometer on your stepper motor driver (be gentle when turning!)

Good luck :)

On Sun, Dec 28, 2014 at 9:48 PM, Liang Cai notifications@github.com wrote:

Thanks a lot for the wiring diagram. Now, I got it work for 0.05ml bolus, however, the 0.5ml did not. I recorded a video to show that, http://youtu.be/-8VQIqMVVSU . Any suggestion?

— Reply to this email directly or view it on GitHub https://github.com/naroom/OpenSyringePump/issues/2.

naroom commented 9 years ago

Oh wait! There's an even more likely cause. You may have your stepper motor connected to the driver incorrectly.

Here are instructions for which stepper motor wires to use:

Using an ohmMeter, pick one wire at random, and test it with the others until you find a pair that shows resistance of a few ohms (1 – 200ohms most often). Those 2 are your “pair A”. Make sure the other 2 wires have the same resistance on them, (if not, it may be broken) and that is your “pair B”. With the two pairs of wires, there isnt a backwards, so just plug wires from “pair A” into the “A” on the driver, and “pair B” into “B”.

On Mon, Dec 29, 2014 at 12:36 AM, Theo Walker naroom@gmail.com wrote:

Ahh, my mistake; the "motorSpeed" parameter is no longer used. Try instead, making the SPEED_MICROSECONDS_DELAY parameter longer -- raise it to 200, perhaps.

On Mon, Dec 29, 2014 at 12:32 AM, Theo Walker naroom@gmail.com wrote:

Ahh, I like the green 3D printed parts. Looks nice!

The problem may actually be, the motor is able to turn at low speeds, but loses power at high speeds.

If this is the case, here are two things to try:

  • Lower the motor speed in the Arduino code [line 44 of the code file]
  • Turn the "current adjust" potentiometer on your stepper motor driver (be gentle when turning!)

Good luck :)

On Sun, Dec 28, 2014 at 9:48 PM, Liang Cai notifications@github.com wrote:

Thanks a lot for the wiring diagram. Now, I got it work for 0.05ml bolus, however, the 0.5ml did not. I recorded a video to show that, http://youtu.be/-8VQIqMVVSU . Any suggestion?

— Reply to this email directly or view it on GitHub https://github.com/naroom/OpenSyringePump/issues/2.

coronin commented 9 years ago

The wiring was correct. I checked as you suggested with a ohmMeter. Then, I tried to turn the potentiometer on the driver :-( Now, even 0.05 cannot drive it now. What is worth - I tried to reverse turning the potentiometer, it didn't help. Can I remove the LCD/button shield, and use serial to issue some kind command, and at the same time to adjust the potentionmeter to its optimal?

naroom commented 9 years ago

Hmm, very curious. Yes, you can command the pump via serial with no LCD button shield. Make sure your baud rate is set to 57600, and send it the number of microliters you would like it to dispense. 100 is a good one to start with.

On Tue, Dec 30, 2014 at 1:18 AM, Liang Cai notifications@github.com wrote:

The wiring was correct. I checked as you suggested with a ohmMeter. Then, I tried to turn the potentiometer on the driver :-( Now, even 0.05 cannot drive it now. What is worth - I tried to reverse turning the potentiometer, it didn't help. Can I remove the LCD/button shield, and use serial to issue some kind command, and at the same time to adjust the potentionmeter to its optimal?

— Reply to this email directly or view it on GitHub https://github.com/naroom/OpenSyringePump/issues/2#issuecomment-68333292 .

scientistnobee commented 9 years ago

Hi Naroom,

In my case if Bolus size is more than 5 mL, then whole code is hanging. My LCD pad is not updating. I have even tried with serial commands. If I use 5000 (which means 5 mL in your code) and then + or -, my LCD is not updating. For all the values below 5000, it is working. Please let me know, where it I am going wrong.

scientistnobee commented 9 years ago

Hi Naroom, I have found the mistake in the code. When we chose 5 mL, then the number of steps are equal to 34130, which is more than 32,767, what Arduino can handle for an integer value. To avoid this, you perfectly used a long data type when you defined steps. However in the for loop where steps are taken as a upper limit, you have to define again as long as given below: for(long i=0; i < steps; i++){

Now the code is working perfectly.

Anyways, many thanks for providing a very good hardware plus software solution for open syringe pump.