[teacup] GCODE_COMMAND.S: insufficient range April 21, 2014 06:54PM |
Registered: 12 years ago Posts: 156 |
Re: [teacup] GCODE_COMMAND.S: insufficient range April 22, 2014 04:42PM |
Registered: 12 years ago Posts: 258 |
Re: [teacup] GCODE_COMMAND.S: insufficient range April 23, 2014 09:42AM |
Registered: 12 years ago Posts: 156 |
Re: [teacup] GCODE_COMMAND.S: insufficient range April 23, 2014 12:52PM |
Registered: 12 years ago Posts: 258 |
Quote
miso
Thanks, I had just used values from here. So from that github discussion it seems that those values are supposed to be scaled down by factors 4, 16, 8 to work with teacup. I know that I'm supposed to use my own values, but those, after scaled down, work much better than defaults for me.
Quote
miso
I like the lack of teacup dependency on arduino, but sadly, that discussion convinced me, that its eventually time to move on.
Re: [teacup] GCODE_COMMAND.S: insufficient range April 29, 2014 01:28PM |
Registered: 12 years ago Posts: 156 |
Plus 2 bytes of RAM, but it doesn't seem like the memory was an issue when the parser was designed, because that "union of all parameters" struct approach is inherently memory hungry:Quote
DaveX
it seems like it doesn't break anything and the downside would be only 8 bytes more flash.
uint8_t G; ///< G command number uint8_t M; ///< M command numberSince "G" and "M" codes are AFAIK mutually exclusive, one doesn't need to allocate space to store both of those at same time. Single member like "uint8_t cmd_code" should suffice. Same is probably true for "S" parameter of M13[0-3] commands, (or maybe S parameter of any command) it could be probably stored in some field of TARGET struct.
Quote
DaveX
Sorry to hear that. If the discussion there about jerkyness was the clincher, Teacup now does lookahead.
Apparently maintainer has different opinion (doubts) on things that are important (sure thing) to me, so its likely that in the future the project will part even further from my expectations.Quote
Traumflug
But ... does this really help? My guess is, such values are voodoo for 99% of the users anyways, no matter which units they are.
#define MAXIMUM_FEEDRATE_Z 300(6*50) to make G0 Z50 command finish in one minute. Can anybody confirm?
Re: [teacup] GCODE_COMMAND.S: insufficient range April 30, 2014 10:27AM |
Registered: 13 years ago Posts: 7,616 |
Quote
miso
it doesn't seem like the memory was an issue when the parser was designed, because that "union of all parameters" struct approach is inherently memory hungry:
uint8_t G; ///< G command number uint8_t M; ///< M command numberSince "G" and "M" codes are AFAIK mutually exclusive, one doesn't need to allocate space to store both of those at same time. Single member like "uint8_t cmd_code" should suffice.
Quote
miso
When I was "porting" my configuration from teacup to marlin, I have discovered, that feed rate limits in teacups configuration.h, that are claimed to be in mm/minute are actually in mm/6 minutes.
I need to set:
#define MAXIMUM_FEEDRATE_Z 300(6*50) to make G0 Z50 command finish in one minute. Can anybody confirm?
// Initialization constant for the ramping algorithm. #define C0 (((uint32_t)((double)F_CPU / sqrt((double)(STEPS_PER_M_X * ACCELERATION / 2000.)))) << 8)This is used for calculation of accelerated speeds and as all movements are accelerated, speeds are calculated for steps/m values of the X axis, not the axis actually moving. A fix isn't trivial, because as you see, it involves floating point maths which isn't allowed at runtime. Relevant usage of C0 is in dda.c, line 850ff, in case you want to work on a fix yourself.
Generation 7 Electronics | Teacup Firmware | RepRap DIY |