teacup->teacup forum. this is for sprinter!!QuoteTriffid_Hunter I wonder why it's even trying to work out move times if the distance is zero? If teacup detects a zero distance move with a feedrate, it simply updates the stored feedrate and moves on, without queueing anything. sorry. your right. sprinter does this in most cases. it just tries to move the e axis even if zero steps and somehowby jamesdanielv - Firmware - experimental, borrowed, and future
hey sprinter firmware would crash on my when gcode was generated by repsnapper and would work when skeinforge generated it. i found this line of gcode odd G1 E0 Fxxx (xxx being whatever feed rate you set) I spent 4 hrs troubleshooting tonight to find out what was going on. i disabled steps for e axis and it continued to work without crashing, so it was in the e axis. I think e axis is doing aby jamesdanielv - Firmware - experimental, borrowed, and future
change this line in tonokip if(e_steps_to_take && (x_steps_to_take + y_steps_to_take <= 0) ) e_interval = time_for_move / e_steps_to_take * 100; to this: if(e_steps_to_take && (x_steps_to_take + y_steps_to_take <= 0) ) e_interval = time_for_move +1/ e_steps_to_take * 100; there is a bug in the firmware for when no e movements are calculated. it causes a division by zby jamesdanielv - RepSnapper
yes, but you forget we are also sending serial data.... which by the way i also think is problematic. 1 the processor completely stops until all serial data is sent (arduino22 fixes this with a serial TX buffer, but you are sending and receiving ) Also Atmel is inefficient at call procedures, don't they take 4-5 cycles? and then also the overhead of c interpreter to push and pop (2cycles) coby jamesdanielv - Firmware - experimental, borrowed, and future
Any way you guys think it should be done, it is better than it is now.... For testing the firmware now used is sprinter. I've modified the analogRead samples such as value =analogRead(temp_pin0) to Is now an int sample value=adcprocessing Processed analog changes every 2ms so whatever the last stored value is what is used. Granted it may be better to only sample when needed, if known in adby jamesdanielv - Firmware - experimental, borrowed, and future
sprinter uses the analogRead(pin) format.by jamesdanielv - Firmware - experimental, borrowed, and future
increased buffer size. now working on condensing gcode to fit in smaller space. then will work on buffer compression. ran into a few unexpected things like adc conversion crashes arduino if it is ad sampling and storing in buffer and reading serial.... taken care of now... changed how adc works. also ran into a sprinter firmware bug where e axis seemed to be doign a div by zero in the e_steps coby jamesdanielv - Firmware - experimental, borrowed, and future
how does sprinter read adc data? also where is the direct link download. i might already be playing around with it if it is the latest caruKlip release. with a buffer of 64 and char size of 64 it runs directly from host without sd card. please post a page in the reprap wiki. firmwares are growing like weeds...by jamesdanielv - Firmware - experimental, borrowed, and future
yeah. i figured teacup might. I'm rediscovering useful microcode over arduino stuff. but is it not good for tonokip firmware to have something like this? especially because of the fact that you can disable interrupt during serial read and everything is fine. without disabling interrupt before adc reads the machine goes into a fit and slows way down. there may be a way not to need interrupt use,by jamesdanielv - Firmware - experimental, borrowed, and future
I had issues with implementing a large buffer with atmega 1280 on tonokip, because the firmware kept on pausing, and having various issues. After a bit of troubleshooting it ended up being the adc. After doing an interrupt setup for adc and placing a trap to prevent adc interrupts while serial was >0, the buffer worked with 64 buffers of 64 char each. I also can sample temp every 0.1secondsby jamesdanielv - Firmware - experimental, borrowed, and future
ok. thanks.by jamesdanielv - Firmware - experimental, borrowed, and future
Bresenham in its current implementation averages out errors. Threshold is reached above 0.5 then an extra step is added. it works OK on systems designed to start and stop fast without acceleration. nophead you have something special. If you say there is no issue, then there probably is nothing of an issue. We need to replace Bresenham eventually. I don't want to get to far off subject here.by jamesdanielv - Firmware - experimental, borrowed, and future
Quotewhy would checksumming make any significant difference? Because of the delay in receive and send data of the serial to USB ftdi controller. The USB device driver driven by the host machine updates every 2ms. If firmware acknowledges the data as good it still takes 2ms for host to know about it and it takes 2ms more for the host data it is sending the controller to get to the ftdi chipby jamesdanielv - Firmware - experimental, borrowed, and future
this page has a diagram of those rectangles description of Bresenham I have yet to be able to easily explain issues with acceleration on ball/screw to people. If using a stepper on x and y axis at high speed, something will just not work with the current Bresenham setupby jamesdanielv - Firmware - experimental, borrowed, and future
thanks. so basically there is minimal benefit as long as your not doing check-sum right?by jamesdanielv - Firmware - experimental, borrowed, and future
you could shrink the data each line takes in the buffer, keeping the buffer size without over running the stack. would it still crash arduino this way? thx for your quick reply. I'm curious as to how buffer size changes performance.by jamesdanielv - Firmware - experimental, borrowed, and future
have you considered increasing the buffer?by jamesdanielv - Firmware - experimental, borrowed, and future
emc2 vs reprap hardware. It could be emc2 is reprap hardware.... IMHO. emc2 uses a more complex algorithm to determine motor positions. also it used double precision floats. (more detail data.) read here as i can not simply explain how a float stores data. single precision (arduino) (about 7 decimal digits). double precision (emc2) (about 16 decimal digits).by jamesdanielv - General
just looked at the latest tonokip firmware to try buffer compression in as it is really easy to follow where the code goes. It would be a good test into how buffering data in advance would help, not that i have any firmware preferences. It seems it is buffering 256char for a total of 8 buffers. yikes. I did calculations based on what resolution the printer has, and there is buffer optimizationby jamesdanielv - Firmware - experimental, borrowed, and future
would a larger buffer help as well? the thing that people need to understand about curve acceleration is it accelerates one axis as the other is slowing down, eliminating the stop time that normally happens with gcode lines. since the longest time of a move is at start up especially with acceleration, this method could shave off 20-30% of build time. how are you going to ensure even steps to prby jamesdanielv - Firmware - experimental, borrowed, and future
there are some rail systems you could use, for example paint the back xbar on the top, and laser engrave lines 4mm wide, and along the length of the bar spaced .4 mm apart, use 4 optical encoders and you now have a laser accurate optical guide to reference in firmware for how many steps you take until where you want to be, and it is spaced at size along a linear rail. since the entire bar is anby jamesdanielv - General
ball screws would be the way to go if we had a solid hardware that did not do micro pauses and had great interpolation. the belts allow the give needed for this, and microstepping allows the motors to absorb this a little better. sometimes x does not move for 2 steps between y but then it needs to move 3 steps a few times to keep the right angle. this is an example where the double precision floaby jamesdanielv - General
have you tried changing the analog input used? one time i had a huge swing in values, and i had selected the wrong analog pin. the analog pins just float, and i think they all share the same a/d converter just mux the pin to read and sample. another possibility : the SEEDUINO Mega is in a smaller forum factor same as arduino but has a 1280 mega, and i don't think there is proper isolation betwby jamesdanielv - Firmware - experimental, borrowed, and future
here is an article as well i think that the pic chip is an excellent alternative. even the 8 bit pic chips. there was a pic project a while ago called pinguino that i often considered. the world has a high demand for atmel processors, but there are some times i can not find them for months! microchip is big enough and diverse enough that pics are cheap and everywhere! anyway i alsoby jamesdanielv - Firmware - experimental, borrowed, and future
hi, I'm working on a protocol to compress the buffer space on arduino, i do not know how far i could get, or what the merits are other than to compress short movements. the goal in the text below is to explain it and where i am coming from. basically it takes a lot less effort to have arduino with a large buffer, that can fill up completely with long line segments and buffer thru complex shortby jamesdanielv - Firmware - experimental, borrowed, and future
I think the issue is he is unable to get the teacup firmware to run. I am not sure if homing is an issue or not. the point was to provide the coordinates to the controller so it new where it should be in any case they were not set. repsnapper sets that right up front. i am not sure that send.py does... All the same i still think using reprap firmware is the way to go first, then move on up to tby jamesdanielv - General
GTKterm use in Ubuntu: apt-get install gtkterm instructions here teacup is fairly experimental. i recommend everyone try it as it is incredibly efficient, but try the default reprap firmware first to ensure the host programs and serial communications work. also here is a link that talks about recent changes to mcodes used for heating beds read extruder temp is m105 i think repsnapperby jamesdanielv - General
i have checked a previous thread that may help you with linux install on ubuntu. i know there are other linux distributions. just thought this may help you. also gen 6 data is here reprap install under linux as far as i can tell the usb is just a serial to usb converter, and the driver should be easily installed. some people have issues with the java version installed. i think versionby jamesdanielv - General
i can't wait to look at this on the wiki. thanks!by jamesdanielv - General