Thank the CommunityThe people at Printrbot Talk have done a good job of documenting everything over the years. I could almost just write "go read everything there" but some of it has aged out. The main page on Firmware is chock full of details so you should become antiquated with it.
DownloadsI'm on a Mac (currently Yosemite) and there are a lot of Mac specific downloads thanks to user PxT. I started a fresh folder for all the downloads so they wouldn't get mixed in with other stuff. Nothing should need to be installed so you can easily delete and/or archive the folder when you are done.
First you need to download the firmware. Printrbot keeps their branch of the Marlin firmware on github so you can go ahead and grab it from their releases page on GitHub. I don't know exactly what Printrbot you have so I can't tell you what you need but I have a Simple Metal with a Rev D board so I needed the standard issue Simple-Metal-1403-Firmware. Check your Printrboard to see what revision you have before you get too far.
Assuming you have a Mac, next you'll need to download an Arduino Build Environment and the Firmware Update App. You could roll your own Arduio Build Environment and find other tools to flash a new firmware on your board but Printrbot's tool leads you through the steps. Find both of these tools on the PxT user page on Printrbot Talks. To get the Arduino Build Environment to work you may have to install Java. That's outside the topic of conversation here but this install solved my problems for now.
Unzip anything that looks unzippable and make sure the apps will open. Feeling overwhelmed yet? We haven't even gotten our hands dirty.
Arduino SetupThe Arduino download saves you a lot of work hunting around for installs and putting files in odd places, but there are still 2 more things you need to do before you can get to work. You are going to compile your firmware by running verify on a specified board.
Your firmware will be compiled in a silly location so check the 'compilation' box to show verbose output during compilation. Everything else on this window can stay the same. If you are planning on compiling more than once you'll want to uncheck the 'Update sketch files to new extension on save' box, but you shouldn't have to.
|See the compilation button I checked?|
[Wild Speculation] The Mac OS X Firmware Update App comes bundled with the DFU bootloader so I'm guessing it bolts that on as the actual boot loader it uses. This would make sense that I built with BootloaderCDC (the bad one) with no problems. The firmware I was uploading was just a hair too big for the memory (addressed later) and two firmwares would do that.
Edit the SourceHave you ever done any programming in C++ before? Now is the time to beef up your resume. In the Arduino app open up the 'Marlin.pde' file in the Marlin subdirectory. It is linked to all the other files so you'll see a bunch of tabs open up.
Open up the Configuration.h tab, it is the only one you'll need, and find the TEMP_SENSOR definitions. You only have one temperature sensor and it needs to be updated from '0' to '5' so edit the line '#define TEMP_SENSOR_0 0' to '#define TEMP_SENSOR_0 5' and save the file. The 5 here refers to the thermistor that shipped with your E3D v6 hotend and the 0 was the thermistor that was on your Ubis.
|#define TEMP_SENSOR_0 5|
|//#define ULTIPANEL //the ultipanel as on thingiverse|
Compile and CopyNow hit that green checkmark in the upper left hand corner to verify your code. This will actually compile it. You'll see a bunch of warning fly by but everybody else says that's fine, so just ignore those messages. Watch the console at the bottom of your Arduino app to finish and take note that it lists a long ugly directory that contains your Marlin.cpp.hex file.
|cp blah/blah/blah/Marlin.cpp.hex ~/Desktop/Printrbot.hex|
Flash the FirmwareDepending on the version of your board you'll need to add or remove a BOOT jumper. If you need to add it (like me) a piece of folded aluminum foil is good enough to get the job done. All you need is to make sure the pins are shorted for a few minutes.
Using the provided Firmware Update App is pretty easy. You just drag and drop your hex file onto the app and it leads you step by step the things you need to do. If you don't drag and drop it'll ask you some information about your printer. Follow the directions as it asks you about your USB cable and your jumper. Press the reset button and carry on.
If you try to write a flash a firmware file that is too large the App will throw an error that doesn't say anything about file size. Basically the code you uploaded is large enough that it tries to put too much information in the Bootloader. You can solve this by removing more features from the Configuration.h file.
|Bootloader and code overlap.|