Welcome! Log In Create A New Profile

Advanced

Repetier Firmware and Host

Posted by repetier 
Re: Repetier Firmware and Host
October 23, 2011 09:50AM
I get compilation errors when I set HEATED_BED_SENSOR_TYPE to 1

telling that current_bed_raw and target_bed_raw are not defined in Commands.cpp

In the sourcecode I found:

Commands.cpp:#if HEATED_BED_TYPE!=0
Reptier.h:#if HEATED_BED_TYPE!=0

Shouldn't it be HEATED_BED_SENSOR_TYPE?
Re: Repetier Firmware and Host
October 23, 2011 12:15PM
theodleif Wrote:
-------------------------------------------------------
> I get compilation errors when I set
> HEATED_BED_SENSOR_TYPE to 1
>
> telling that current_bed_raw and target_bed_raw
> are not defined in Commands.cpp
>
> In the sourcecode I found:
>
> Commands.cpp:#if HEATED_BED_TYPE!=0
> Reptier.h:#if HEATED_BED_TYPE!=0
>
> Shouldn't it be HEATED_BED_SENSOR_TYPE?

You are right, but thats not enough. In repetier.h you must write

#if HEATED_BED_SENSOR_TYPE!=0
extern int current_bed_raw;
extern int target_bed_raw;
#endif

instead of

#if HEATED_BED_TYPE!=0
extern long last_bed_check = 0;
extern int current_bed_raw = 0;
extern int target_bed_raw = 0;
#endif

I will include this change in the next update.


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Re: Repetier Firmware and Host
October 23, 2011 07:23PM
Just forgot to mention: It's an outstanding firmware. Congratulations. smiling smiley
Re: Repetier Firmware and Host
October 25, 2011 06:54AM
Hi,

I've been making use of Repetier firmware and host for a couple of weeks. I thought it was time for some feedback:

- All in all, I really like it. I've a few problems with controlling it's speed but I feel once I have it under control it'll be my favoured firmware/host
Repetier has been hugely helpful in responding to my emails. Always a quick response

- I've only used RepSnapper before I prefer this GUI.

- I like that it remembers most settings. There is less for me to do every time I start it up (e.g. select COM port that never changes). I do find I have to set the desired temperature every time - it would be nice if it remembered that too.

- I love being about to set certain values via the EEPROM editor (e.g. X_STEPS_PER_MM; Y, Z, E likewise).

- I find the wealth of configuration.h and EEPROM settings overwhelming. After reading the documentation and configuration.h descriptions I often still don't really know what to set things. I get the feeling its well set up for machines looking to print at higher speeds than mine and so need acceleration control, etc. Since mine is running at a humble 40mm/s I really like to just turn a whole bunch off until I get a working print run. Then, return and get advanced (to me) settings in hand.

- I don't know what settings take precedence in the 'tool chain'. For example, I can set Travel Feedrate or Z-Axis Feedrate in 1) Printer Settings, 2) EEPROM settings (or configuration.h), 3) Skeinforge. Which setting takes precedence? (this scares me since I can't predict what my printer will really do when I change something.)

- I dislike that some measurements are in mm/s while others in mm/minute.

- I find it odd the when I load gcode (not STL) that the main 'printer' GUI doesn't show a preview of the image. I can get one via 'job/visual preview' and it appears after I've printed but not before.

- The 'Dry run' option (printing with extrusion actually happening) is useful when checking out things. Good option.

- The method of controlling the image that is previewed I find non-intuitive. I prefer the RepSnapper or OpenScad method that moves when the mouse moves, and stops when the mouse stops. No big issue but I find it a bit like playing a flight simulator.

- Skeinforge integration is a fine, fine idea.

Basically, I'm damn impressed with the whole thing!

Cheers

Pete
Re: Repetier Firmware and Host
October 26, 2011 05:13PM
I have tried your Firmware, but ran into problems:
No matter of the speed (tried all common settings to no avail) I can not get tie firmware to execute more than a few lines of G-code. jogging the printer works just fine, but I can not get it print a simple 20mm box. It dies after sending a few lines and stays in a state resending.
OS: Ubuntu 10.04 LTS 32 bit
Hardware: Gen6 batch 2
Arduino 0022
Printrun
I had to disable eeprom-support to get it to compile at all.
the gcode is fine - i printed a box with sprinter on the same printer before and after failing to do so with your firmware. Also there were no communication issues reported when using Sprinter at 115200.
I forked the repo to better keep track of my changes. If I find anything I can fix I will send a pull request.
Thanks for the good work and thanks in advance for helping fix this problem
Re: Repetier Firmware and Host
October 26, 2011 05:52PM
I'm trying the Repetier firmware one more time and I'm going through configuration.h. I don't see an option to invert the extruder direction. I'm also unable to connect to the printer from Pronterface even though I set the baud rate to 115200 and the mb to 3 for RAMPS 1.2.
Re: Repetier Firmware and Host
November 01, 2011 03:08PM
A short update on the firmware, as some are still having problems.

For some unknown reason the firmware seems to dislike 115200 Baud for different persons including me. I have no com errors with 250000 and 76800.57600 seems to work ok, too.
Older versions with extruder using high steps per mm had problems with communication after filament retracts or with very high speeds. This seems to be solved in the latest update.

Working boards with the last version (reported to work, other may work too but I didn't get feedback for this):
GEN 6
Ramps 1.2

Ramps 1.3 has an issue with temperature reading, which will hopefully solved in the next update. I think I found the problem and am waiting for the feedback of one tester, that it is really solved.

After I got my sd card working I will correct the sd card code. Found some bugs already but I need some testing. Hope to include the working sd card in the next update.

If you are not using Repetier-Host set
//#define WAITING_IDENTIFIER "wait"
Other hosts like pronterface don't use this information, so no need to write it. Not sure if this helps with comm errors at he start of a print.
You can also set
//#define ACK_WITH_LINENUMBER
The line numbers are only to better follow whats going on. Only the ok is interpreted by Hosts.

Repetier-Host progress:

For the next update I have planned the following improvements:
- Nicer GUI
- Editor with syntax highlighting, faster handling of large files and code explanation - for everybody who always forgets what G28 etc mean.
- SD card control.
- Different filament width/height visualization like created with Skeinforge 44

The following version will have:
- Buildin update query - just ask if a new version is available and it will be offered for install
- Improved 3D handling. Noone seems to like the rotation/movement input implemented :-(


Any other great ideas?


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Re: Repetier Firmware and Host
November 01, 2011 07:19PM
Thanks!

I downloaded the latest version and I made a lot of progress. I'm able to connect to RAMPS 1.2, move the x, y and z properly.

But the extruder doesn't seem to be responding correctly. When I extrude from Pronterface, it pulls about twice the length of feed given the same steps per mm. It's consistent in that it reverses by the same amount. When I print a file that works in Sprinter and Teacup, the extruder motor moves forward and backwards and it ends up reversing at the end until the feed comes off the extruder.

Also, the bed temperature reading varies a lot each time I check the temperatures with Pronterface.

I set the extruder temperature control to bang-bang using #define EXT0_HEAT_MANAGER 0. But does this also apply to the bed temperature control?
Re: Repetier Firmware and Host
November 02, 2011 04:48AM
@brnrd

that sounds like a wrong configuration.
1. Disable EEPROM - Set EEPROM_MODE 0 so you don't get confused with earlier settings which are taken now from EEPROM.
2. If you use heated bed and extruder you have 2 analog inputs 0 and 1. These are reference to a analog mapping table defined somewhere else in config. Search for TEMP_0_PIN and add TEMP_1_PIN. If you don't configure these correctly you get wrong temperature readings. Read the comments in config carefully on how to change this, default is extuder only. If you have still problems mail the configuration.h and I have a look at it.
3. Heated bed only uses bang-bang independent of the extruder settings.


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Re: Repetier Firmware and Host
November 02, 2011 12:20PM
I'll give it a try.

Are there any parameters to tweek for the Extruder Advance algorithm? I notice that it's enabled by default but I don't see any settings in the configuration file.
Re: Repetier Firmware and Host
November 02, 2011 12:38PM
@brnrd

The advance algorithm has only one parameter

#define EXT0_ADVANCE_K 0.0f

where 0 means disabled. Values for 0.5 mm nozzle are 5-50. The higher you go, the more pressure it will put with increasing speed. With high values you can even see the extruder reversing direction during deceleration. I havent found an optimum configuration so far, but I can see different results for different values.

The result is also changed by your acceleration. High accelerations make it very difficult for the extruder to adjust in time. I have the feeling there is a time lag until the changed pressure reaches the end. Unfortunately this can only resolved with much RAM, something the atmegas don't have.

You can change the value if you use eeprom settings. I will add a command for changing the K-Value on the fly in the next update. This parameter needs tweaking and testing. A new upload every time is not the prefered way.


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Re: Repetier Firmware and Host
November 02, 2011 12:47PM
I was expecting that the pulses going to the extruder would just be advanced ahead of the other axes with this feature. It's sounds like it's doing something else. Is there a site that explains the algorithm or is that in the code somewhere?
Re: Repetier Firmware and Host
November 02, 2011 01:27PM
I have written a page explaining the math and physics behind the firmware in my wiki. See

Hardware settings and print quality

In short, the advance algorithm adds/removes pressure to the nozzle by adding/substracting extruder steps to the normal position. It's called advance algorithm, because it computes how many steps the extruder must be in advance to the requested extruder position to maintain the needed pressure.


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Re: Repetier Firmware and Host
November 02, 2011 04:43PM
Wow, this is incredible information! You're done the community a great service by writing all this down so clearly. Maybe it should be on a wiki.
Re: Repetier Firmware and Host
November 02, 2011 05:50PM
Yes. Great job! At first I thought that we actually would need to actually advance the timing of extruder motor but after reading your site, I now think that what you've done may be enough. BTW, I think a more proper term for this approach of compensating for the slow response of the extruder is pre-emphasis.

Also, I think this is the idea of retract and restart taken a bit further. We should probably not use these two approaches in combination since they're addressing the same thing.

Edited 3 time(s). Last edit at 11/02/2011 06:11PM by brnrd.
Re: Repetier Firmware and Host
November 03, 2011 02:03AM
Hi
Awesome work.
I've been playing around with your firmware and have found that changing the MAX_FEEDATE for the Z axis does not have any affect (Only tried Z as this is the axis I have problems with skipping steps at higher speeds).
Also tried reduding the acceleration settings for Z - didn't help.
Tried MAX_ZJERK 0 - just experimenting but didn't make any difference. Not even sure if ZJERK is for the Z axis.
I normally use Sprinter.
Prusa, Sanguinololu 1.2, Pronterface.

Off to download and play with your Host software now.
Cheers,
Dave
Re: Repetier Firmware and Host
November 03, 2011 04:23AM
@brnrd The name comes from Matt Roberts who was the first posting this technique. The name is used in every firmware using this, so changing the name would be confusing to people who have already read about this.

@davejones The first idea is always EEPROM_MODE if set !=0 change it in Repetier-Host under EEPROM settings. The values in your configuration.h are ignored in this case.


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Re: Repetier Firmware and Host
November 03, 2011 07:57AM
I think Matt Robert's approach gives better results than the traditional approach, but it's still not the truth. Taken this to the extreme, the extruder would push out the filament first, then move the carriage. Not exactly what we want.

One thing is, as soon as filament is pushed into the hot end, material comes out of the nozzle. At low pressure not much, but something. This gives one point of the equitation: extruder and carriage have to start at the same time.

The second thing is, at full speed, both, filament and the carriage should move at the relation meant for long distances. Both have to reach this full speed at the same time.

Third point is, and here's Matt right, the extrusion chamber has to build up pressure initially. So pushing the filament not only extrudes, but also increases pressure, resulting in a steeper filament/extruder acceleration.

This gives two points and a steepness of an equitation, with no free variables. The result could look similar to this:




Generation 7 Electronics Teacup Firmware RepRap DIY
     

Attachments:
open | download - Extruder Speed.png (14.8 KB)
Re: Repetier Firmware and Host
November 03, 2011 09:07AM
Traumflug Wrote:
-------------------------------------------------------
> I think Matt Robert's approach gives better
> results than the traditional approach, but it's
> still not the truth. Taken this to the extreme,
> the extruder would push out the filament first,
> then move the carriage. Not exactly what we want.

Thats not what happens. The algorithm has for v=0 advance=0, so no extra pressure there. So no filament is pushed out, except the unavoidable ooze.
>
> One thing is, as soon as filament is pushed into
> the hot end, material comes out of the nozzle. At
> low pressure not much, but something. This gives
> one point of the equitation: extruder and carriage
> have to start at the same time.

Yes, thats what happens.

>
> The second thing is, at full speed, both, filament
> and the carriage should move at the relation meant
> for long distances. Both have to reach this full
> speed at the same time.

That's the case. With v=const, advance stays at the same value. It's only changed during acceleration/deceleration.

>
> Third point is, and here's Matt right, the
> extrusion chamber has to build up pressure
> initially. So pushing the filament not only
> extrudes, but also increases pressure, resulting
> in a steeper filament/extruder acceleration.

Thats the main problem. For high accelerations, the extruder may not be able to follow fast enough. The other problem is a small timelag until the extruder has executed the commanded move.

>
> This gives two points and a steepness of an
> equitation, with no free variables. The result
> could look similar to this:

That is a good picture which shows how the advance works during acceleration. The area between the two curves equals the advance steps the extruder has to make. During decelartion, its the other way around. The extruder curve is below the straight curve resulting in a negative area reducing the advance steps, so they reach 0 at the stop.


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Re: Repetier Firmware and Host
November 03, 2011 09:57AM
I wish I had time to try this sometime soon. I think extruder advance is the last piece of the software puzzle allowing the full speed capability of the extruder to be used. Without advance, we have to run slow enough to keep the pressure effects hidden.
Re: Repetier Firmware and Host
November 03, 2011 03:55PM
Repetier, I think I see now how this is meant to happen. Matt Roberts "injects" additional steps (backwards and forwards, as seen appropriate) while accelerating, totally ignoring timing calculations. Can't say wether your code is better or not. Too many reinvented wheels in the firmware area to learn all the different coding strategies, sorry.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Repetier Firmware and Host
November 04, 2011 03:59AM
Traumflug Wrote:
-------------------------------------------------------
> Repetier, I think I see now how this is meant to
> happen. Matt Roberts "injects" additional steps
> (backwards and forwards, as seen appropriate)
> while accelerating, totally ignoring timing
> calculations. Can't say wether your code is better
> or not. Too many reinvented wheels in the firmware
> area to learn all the different coding strategies,
> sorry.

Yes, thats exactly how it works. It's the same in Matt's firmware and in Marlin. The trick is quite easy. The extruder isn't controlled in the mainloop any more. There are up to 3 algortihms tinkering with the extruder position. So the solution is, that each algorithm changes the wanted extruder position and a seperate interrupt working at the maximum possible speed of the extruder manages the movements.


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Re: Repetier Firmware and Host
November 05, 2011 07:00AM
New firmware version

I just uploaded version 0.39 on github.

The new version recovers from communication errors in ascii mode (binary mode already did it correct). So all Pronterface users can now happyly print until the end, even with some errors in the communication.

The second improvement is, that sd card support now works correct. For Pronterface make sure
//#define SD_EXTENDED_DIR
With enabled extended dir, pronterface uses the wrong file names, because the output is different to Sprinter.

Another difference is the new command:
M30 - Delete file on sd card

So now you can even delete files from sd card without removing it.
Uploaded files are stored in binary mode to reduce memory usage and increase speed. You can still run gcode files stored in ascii mode.

Who wants to test the advance method without EEPROM can now use

M233 X - Set temporary advance K-value to X

to change the advance parameter on the fly. Of course, restart deletes the settings. The command also works in EEPROM mode, but does not store the new value in EEPROM.


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Re: Repetier Firmware and Host
November 15, 2011 02:02PM
New Repetier-Host version

just uploaded the new version. Changes:

[*] Added SD-card support.
[*] New editor with syntax highlighting and code explaination.
[*] Automatic code preview update.
[*] Variable filament width for preview.
[*] Nicer GUI
[*] Default extruder and heated bed temperatures.
[*] Windows sizes and positions are stored.
[*] Better 3d control.
[*] File history.
[*] Minor bug fixes



If you have ideas for improvements, found errors etc let me know. Special thanks to Syncra for your help.

Have fun
Repetier


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Re: Repetier Firmware and Host
November 15, 2011 02:52PM
This is looking awesome. Any chance for Mac or Linux versions? I know I'd be all over testing this if there were a Mac version. Also, have you considered integrating Slic3r (http://slic3r.org/)? Slic3r is making waves and it produces wonderful gcode.
Re: Repetier Firmware and Host
November 15, 2011 11:52PM
Hello,

I've compiled the source files for 0.28. Very nice update.

I seem to have some troubles with the Job pane: the job pane model does not appear for some reason (I did Alt-3 and clicked on the eye button with no success).

Any ideas?
Attachments:
open | download - repetier-host-job-no-model.png (173.9 KB)
Re: Repetier Firmware and Host
November 16, 2011 12:45AM
I really want to try this latest version of your host as your previous version was excellent. I just can't figure out how to install this latest version.

Edited 1 time(s). Last edit at 11/16/2011 12:46AM by davejones.
Re: Repetier Firmware and Host
November 16, 2011 03:25AM
Pointedstick Wrote:
-------------------------------------------------------
> This is looking awesome. Any chance for Mac or
> Linux versions? I know I'd be all over testing
> this if there were a Mac version.

Have had a look at the Mono framework. Looks like it should be possible. Will try to make a make a Mono version. If it is possible I make a linux version which hopefully also works on mac. Than I come back to your offer.

> Also, have you
> considered integrating Slic3r
> (http://slic3r.org/)? Slic3r is making waves and
> it produces wonderful gcode.
Didn't know this but it looks good. At least easy to implement. Have you tested it already? How fast and good is it compared with Skeinforge?

@ninja0n3 Have you tried disabling VBOs in the 3d-settings? I remember you had the same problem with the earlier version or do you see the model in the composer this time? Then look id 3d-Settings if the Radio button left from Layer Height is selected.

@davejones Had some problems with git. Looks like it deleted the setup file I normally have.Will upload it after work, then just use the installer from the installation instuctions.


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Re: Repetier Firmware and Host
November 16, 2011 08:29AM
repetier Wrote:
>
> @ninja0n3 Have you tried disabling VBOs in the
> 3d-settings? I remember you had the same problem
> with the earlier version or do you see the model
> in the composer this time? Then look id
> 3d-Settings if the Radio button left from Layer
> Height is selected.
>

I can see the model(s) in the STL composer with no problems (same in 0.26) but for some reason I cannot see the printed model in the Jobs pane.
As far as the settings are concerned, I've tried with both checking VBO and unchecking it; Layer height is also selected and set to the default 0.38mm.

I also noticed that the only time I get to see something in that pane is when I insert the prepend code as suggested on the wiki doc on the prepend window.

I have attached an image of it as well as the screenshot of the STL composer.



Re: Repetier Firmware and Host
November 16, 2011 10:27AM
@ninja0n3 Leave VBOs enabled. is much faster and it looks like they are not the reason.

My guess is, that you set in Skeinforge->Dimensions->Relative extrusion distance. If you did so, you need to insert M83 as the last line in prepend, to tell the printer he is getting relative E values. What you see is what the printer would print, if you had tried. The better way is setting Absolute Extrusion distance in Skeinforge, the you don't need extra commands.
Please use the install programm, it sets a needed registry entry and puts the data directory in a proper place.

Setup now available

I have uploaded the setup for the latest version. So everyone can now install it without compilation.

Edited 1 time(s). Last edit at 11/16/2011 10:30AM by repetier.


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Sorry, only registered users may post in this forum.

Click here to login