Forum Index > Projects > Egg-Bot
 Bug in start of steppermotors driving after pen up/down
 |  Printable Version
By: StefanL38 (offline) on Friday, April 22 2011 @ 02:02 PM PDT (Read 3746 times)  
StefanL38

Hi,

I apreciate very much the status that the eggbot and the extension has reached.
Nevertheless I want to be honest and write my opinion and ideas how to improve it.

if I watched it right the steppermotors start driving BEFORE a ramped servo-move has finished.

I guess that the EggBot-formware starts driving the steppermotors before the servo has reached its endposition. As the servo-movement (PEN up/down) has a ramp-function this means the EggBot-Firmware has to update the servo-position-signal several times. As the firmware starts driving the
stepper-motors before having reached the endvalue this is a bug that is catched by making the delay time bigger.

The firmware seems to set and forget the servo-end-position and then starts driving the steppermotors

But that's bad programming ! Why do I have to readjust the delay-timing everytime I change
the stepper-speed instead of the formware waiting for the servo until it has reached its endposition???

The GUI is not very comfortable. If I want to adjust parameters I have to move around the mouse
for miles instead of using the keyboard. two or three fingers on some keys always watching the eggbot typing commands is much more effective than jump with the eyse from screen to eggbot to screen to eggbot etc. etc.

I'm very familiar with programming in delphi but not in python.
If somebody can post some links to "bloody beginner tutorials about python I could start learning it effectivly fast and do the suggegsted improvements myself to the benefit of all.

But I don't want to play try and error for two weeks until I just know how to implement a hotkey for a button in python.

best regards

Stefan


Forum Apprentice
Apprentice

Status: offline

Registered: 04/22/11
Posts: 6

Profile Email    
   
By: dnewman (offline) on Friday, April 22 2011 @ 02:10 PM PDT  
dnewman

Quote by: StefanL38

Hi,
The GUI is not very comfortable. If I want to adjust parameters I have to move around the mouse
for miles instead of using the keyboard. two or three fingers on some keys always watching the eggbot typing commands is much more effective than jump with the eyse from screen to eggbot to screen to eggbot etc. etc.

I'm very familiar with programming in delphi but not in python.


Actually, if you want to improve the GUI, you'll first need to work in C++ as the GUI environment is a product of Inkscape and Inkscape is written in C++. Python doesn't enter the picture until after you click the "Apply" button in the GUI pop-up windows. Then, and only then, do the extensions get fired up and run. And they do not receive further information from the GUI: they just get a static snapshot of what the GUI input fields were at the time the "Apply" button was clicked. (In other words, the Python code the extensions are written on have zero impact on the GUI interaction.)

I'll leave it to others to respond to your other comments and suggestions.

Dan


Cow Canyon Saddle Clear Sky Chart


Forum Evil Scientist
Evil Scientist

Status: offline

Registered: 09/08/10
Posts: 149
Mt. Baldy,
California

Profile Email    
   
By: StefanL38 (offline) on Friday, April 22 2011 @ 04:04 PM PDT  
StefanL38

Hi Dan,

you are - in a very positive way a "mad scientist" as you write answers to my questions so fast.

Thank you very much.

I guess about the starts and stops of the stepper and servomotor I have to contact Brian Schmalzhaus
as he has written the EiBotBoard firmware.

best regards

Stefan


Forum Apprentice
Apprentice

Status: offline

Registered: 04/22/11
Posts: 6

Profile Email    
   
By: dnewman (offline) on Friday, April 22 2011 @ 06:00 PM PDT  
dnewman

Well, it's more a matter of how the Eggbot uses the EBB than being an EBB issue itself.

I chose not to answer those specific questions as I'm curious what others might have to say. Speaking for myself, while the delays are yet-another setup issue for novice users, being able to adjust them are useful to intermediate users. For example, accentuating the pen tip impression made when the pen first does a pen/down -- or trying to prevent that as much as possible. Without access to the delays, it's not possible to control those effects. But is that enough of a reason to justify having the default behavior be not as friendly as it might be to new users? I don't know. I can tell you though that EMSL was constantly trying to make the Eggbot hardware and software as new user friendly as possible while still having intermediate features like "resume" and "layers".

Dan


Cow Canyon Saddle Clear Sky Chart


Forum Evil Scientist
Evil Scientist

Status: offline

Registered: 09/08/10
Posts: 149
Mt. Baldy,
California

Profile Email    
   
By: Windell (offline) on Saturday, April 23 2011 @ 02:14 PM PDT  
Windell

if I watched it right the steppermotors start driving BEFORE a ramped servo-move has finished.

I guess that the EggBot-formware starts driving the steppermotors before the servo has reached its endposition. As the servo-movement (PEN up/down) has a ramp-function this means the EggBot-Firmware has to update the servo-position-signal several times. As the firmware starts driving the
stepper-motors before having reached the endvalue this is a bug that is catched by making the delay time bigger.

The firmware seems to set and forget the servo-end-position and then starts driving the steppermotors

But that's bad programming !


No. You have a different idea about how the Eggbot should operate. That means that you and we have a difference of opinion. It does not mean that there's any bug here, or that there's any bad programming. This behavior is exactly as intended.

Think about it for just a moment: To make servo motor to move slowly from point A to point B requires that you give it a slow, continuous ramp of position setpoints. You need to tell it every point in between, and when to go there. Accordingly, it would have been *much* easier to have the firmware wait until the servo finished moving from point A to point B before moving onto the next stepper movement, rather than continuing to produce that ramp while also moving the steppers. This isn't an accident, or a bug, or the easiest thing to do. It is, however, how we intended it to work.

The essential reason is for efficiency and flexibility of plotting. While making a plot that has a lot of pen-up/pen-down movement, the servo movement time is the rate determining factor. Usually, you can start plotting as soon as the pen touches down (before the servo finishes the downstroke) and you can start moving the stepper as soon as the pen lifts up (before the servo finishes the upstroke). Waiting for it to get all the way to the end of the stroke can make plotting painfully slow. You are, of course, welcome to set those delays as long as you like, if you prefer your plotting to be painfully slow.

Why do I have to readjust the delay-timing everytime I change
the stepper-speed instead of the formware waiting for the servo until it has reached its endposition???


You don't have to do that. You can set the delay time to several seconds, so that you will always have to wait for the servo to finish, and you never have to adjust it.

Also, changing the stepper speed usually doesn't require adjusting the servo delays, so I'm not sure why you'd want to in the first place.

The GUI is not very comfortable. If I want to adjust parameters I have to move around the mouse
for miles instead of using the keyboard. two or three fingers on some keys always watching the eggbot typing commands is much more effective than jump with the eyse from screen to eggbot to screen to eggbot etc. etc.

I'm very familiar with programming in delphi but not in python.
If somebody can post some links to "bloody beginner tutorials about python I could start learning it effectivly fast and do the suggegsted improvements myself to the benefit of all.

But I don't want to play try and error for two weeks until I just know how to implement a hotkey for a button in python.



Yes, that would all have been nice. However, we made an early decision to integrate the Eggbot control into Inkscape, and we do now work within the limits currently imposed upon Inkscape extensions. Hotkeys and live-action buttons aren't possible at present for Inkscape extensions. (And, if they were, we'd be using them.) If you want to improve the situation, please help to improve Inkscape's support for extensions.

Some of our development team members were very vocal that there should be true instant-action buttons and hotkeys, and we did make some experimental interfaces that implemented them. However, we were not able to do so in a consistent cross-platform manner. I can tell you with certainty that *if* the development team had insisted on keeping those features there would be no Eggbot kits today. Please understand: We have thought about these kinds of issues in great detail, and we made the decision to build the interface as you see it.

The Eggbot does not *require* Inkscape, and you are not restricted to use our interface in any way. You can operate the Eggbot directly from python, or perl, or processing, to name a few examples starting with 'p.' However, the simple user-friendly interface is built within Inkscape, and we do think that this is an acceptable compromise between ease of use and power for most users.


Windell H. Oskay
drwho(at)evilmadscientist.com
http://www.evilmadscientist.com/

Forum Evil Scientist
Evil Scientist

Status: offline

Registered: 06/15/06
Posts: 1932
Sunnyvale, CA

Profile Email Website  
   



 All times are PDT. The time is now 05:05 AM.
Normal Topic Normal Topic
Locked Topic Locked Topic
Sticky Topic Sticky Topic
New Post New Post
Sticky Topic W/ New Post Sticky Topic W/ New Post
Locked Topic W/ New Post Locked Topic W/ New Post
View Anonymous Posts 
Able to Post 
Filtered HTML Allowed 
Censored Content 

Evil Mad Scientist Forum Archives — Read only!

Please visit our new forums for new discussions.


DIY Hardware for Electronic Art


The Original Egg-Bot Kit


Octolively
Interactive LED kits


Meggy Jr RGB
LED matrix game
development kit.


Business-card sized
AVR target boards


Peggy 2
LED Pegboard kits

My Account






Lost your password?