Ok, here is info on upgrading firmware to the Repetier .91 release - or to any normal future release. But first, a little soapbox pontification:
I've noticed that a lot of folks getting started with 3D printers have no idea what the Arduino IDE is and what is going on when they run it and use it to upload the firmware. In a perfect world, the firmware would be provided already to go - precompiled as we say. But, there are so many printer variations and each printer has unique configuration requirements, that this is not practical. So, instead, the firmware is distributed as source code so each of us can configure it appropriately for our unique printer. Since most of us are using Arduino based controllers (i.e. RAMBo), the firmware is Arduino source code.
Basically, Arduino is an "integrated development environment" for the Arduino micro controllers. It was designed to make it easy to edit, compile and upload firmware to Arduino based controllers from a single application. This is what powers the controller hardware in the printer - presumably a RAMBo for our machines (unless you've changed it, but then, you probably know what an IDE is!). Basically, the firmware - like Repetier - is distributed as source code. Configuration.h is a "header file" that has information the Arduino compiler needs when it compiles the sources for the firmware. Take a look in the Repetier/src folder and you will see all of the "cpp" and "h" files (c program and header files). There is a special file, called Repetier.ino in this case, that is the starting point. It is the file you open in the Aduino application and it lets Arduino know where all of the source and header files that are needed to compile the firmware are located.
NOTE: the actual path to the src files is:
src/ArduinoAVR/Repetier The ArudinoDUE folder looks very similar but is for a different Arduino processor.
So, before you make any changes or upgrades, it is a good idea to make a backup copy of the entire firmware folder. I usually name it by adding "BACKUP-20140103" to the end of the folder's name. That way I can always come back to it, recompile and upload, and know that it will work. Notice that Configuration.h is in the src folder. There is no magic here, it is a file that can be opened in a text editor - even Microsoft Word or Apple's Pages - and printed. This will get you a hardcopy of all of the configuration settings you mucked with. However, it will not include any changes you made to the EEPROM via Repetier Host. A simple way to print that is to simply do a screen capture of the EEPROM Settings Window. It is pretty tall so you may need to do 2 captures to get it all. Now, you have all of the configuration settings. If you did anything special with pin assignments, then also print pins.h in the source folder.
With the more recent release .83 & greater, support for RAMBo and the LCD are already built in so you likely won't have to muck with pins.h or any of the ui source files.
I'm not sure what the comment about "we're downloading pre-built forks" means. The "forks" are actually source code snapshots, exactly like the originals. What is "pre-built" is someone has edited them to customize them for a particular printer and setup. This is almost always simply the Configuration.h file. In the good old days, some of us would make changes to other source files to support the then new RAMBo card and later, the LCD or to make other bug fixes. But, the support in .90 for RAMBo, LCD and delta printers is pretty much complete and no special modifications to these files are needed. When I upgraded from .80 to .91 this week, I only needed to edit Configuration.h to customize it for my particular printer and setup. I used my .80 Configuration.h printout to help with this. For the most part, it was easy, but .90 has additional capabilities and has removed a couple of things (inconsequential).
Once the necessary edits to Configuration.h are made, then the firmware can be compiled and uploaded to your printer. That's what that little -> button does! It runs the compiler and then uploads the firmware to your printer.
The only other consideration for those of us using Repetier Host is the EEPROM. This can be both a blessing and a curse. If you don't understand it, it's a curse! The EEPROM is simply permanent memory in your RAMBo that can store common configuration information. Initially, the EEPROM values are set when the firmware is uploaded to the printer's controller (RAMBo). After that, if you have EEPROM enabled, (EEPROM_MODE in Configuration.h set to anything but "0") you can change these special values through Repetier Host without having to edit the Configuration.h file, recompile, and upload the firmware. That saves a lot of time, especially when you are trying to set the max length and other values when you are calibrating. The firmware developers were smart, they set things up so if you DO recompile and upload new firmware, these EEPROM values will NOT be overwritten by the values in the Configuration.h file. That is, UNLESS, you instruct it to. The way you do that is to simply change the value of EEPROM_MODE to some other number greater than 0. I usually just add "1" to whatever number is already there. Similarly, if you want to clobber the EEPROM settings and disable the ability to change things in EEPROM, simply set EEPROM_MODE back to "0". Nothing magical about it!
... end of pontification!
Ok, with all that said, here's how to upgrade to Repetier firmware 9.1
- Make a backup copy of your existing Repetier firmware. Also print a copy of its Configuration.h file and take screen shots of the EEPROM Settings dialog in Repetier Host so you don't lose any special settings you made.
- Go to the Repetier firmware git repository
- Click the "Download ZIP" button on the right column. This will download the firmware sources to your computer. Unzip it once it's downloaded.
- Run the Arduino application (install it if you need to from Arduino.cc
- Choose File->Open and locate the Arduino.ino file inside the Repetier firmware. I mentioned this above.
- Now for the fun part! Now you need to edit the Configuration.h file to match your system configuration. So, open Configuration.h. I've attached my special copy that is well annotated for our printers below. Print a copy and follow along with it. You will note firstly that I have moved the #define EEPROM_MODE to the top of the file. It drove me crazy looking for that whenever I wanted to tweak it to over-write the EEPROM. You can leave it where it was or move it. Now notice that I have added comments that look like this: // *** Rostock-RAMBo v1.1 *** everywhere you will need to make changes from the stock file. I've also added more descriptions for special things like PULLEY_TEETH - early Rostocks had 15, newer ones have 20. Simply copy these values from your printout of Configuration.h.
- Compile and upload - that's it
Here are a few little "gotchas" I ran into when upgrading from .80, I don't know if this is different if you are starting with .83 but it's worth checking:
Make sure to use the "new" LCD Feature Controller one of our own contributed earlier this week. It should be:
#define FEATURE_CONTROLLER 13 //***11
(note I commented the original values in Configuration.h with //***, just to make it easier to see what the original settings were.)
Also verify your thermistor types for the hot end and heated bed.
This one is the hot end:
#define EXT0_TEMPSENSOR_TYPE 1
and the heated bed:
#define HEATED_BED_SENSOR_TYPE 1
These are for the stock thermistors that I have. I believe these are still the same today. Note that I had an issue after updating that I wasn't getting temp readings. I thought there was a hardware pin misconfiguration. It turned out that I had my thermistor type set to "97" with .80. I do not recall why, but it worked and my temp readings were spot on. The .91 firmware treats a type 97 differently and can't read the temp. So, if you install the firmware and can't get temp readings, check the thermistor type!
Ok, that's it. My only other recommendation is to check your calibration. For some reason, my machine is not calibrated after installing .91. If I go back to .80 it is correctly calibrated again! I have not figured this one out yet and will post again if I learn anything.
cheers,
Michael