Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

big bolus not work, but small one does #2

Open
coronin opened this issue Dec 29, 2014 · 7 comments
Open

big bolus not work, but small one does #2

coronin opened this issue Dec 29, 2014 · 7 comments

Comments

@coronin
Copy link

coronin commented Dec 29, 2014

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
Copy link
Collaborator

naroom commented Dec 29, 2014

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 [email protected] 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
#2.

@naroom
Copy link
Collaborator

naroom commented Dec 29, 2014

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 [email protected] 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 [email protected]
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
#2.

@naroom
Copy link
Collaborator

naroom commented Dec 29, 2014

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 [email protected] 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 [email protected] 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 [email protected]
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
#2.

@coronin
Copy link
Author

coronin commented Dec 30, 2014

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
Copy link
Collaborator

naroom commented Dec 30, 2014

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 [email protected] 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
#2 (comment)
.

@scientistnobee
Copy link

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
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants