Good news... I've actually got it working now ![]()
What I've done is that I followed this tutorial step-by-step:
And now, not only is my FTDI Friend working, but also the cheap four-dollar Chinese knock off with the fake FTDI chip on it.
The key difference appears to be that I burned the bootloader using the "ArduinoISP" sketch, and not Nick Gammon's "Atmega_Board_Programmer" sketch.
I started with a simple circuit on a breadboard bearing the minimum essentials:
(don't mind the DIY jumper wires... I solder my own, because it tends to be cheaper and is also strangely therapeutic
)
With the bootloader installed using the ArduinoISP sketch, sketches uploaded fine... I tried around five or six times in a row on the "minimal" breadboard, and had no interrupted uploads anymore. Five consecutive successful uploads would have been unthinkable with my previous configuration.
And even within my actual prototyping circuit, uploads now finish without a problem as well:
As you can see, it's considerably more complex than the previous picture, and yet, sketches upload just fine.
Perhaps there are certain settings within the "Atmega_Board_Programmer" sketch that aren't ideally suited for the 1284P-PU... who knows... I know far too little about bootloaders to be able to judge that. All I know is that after burning the bootloader with the Arduino IDE's ISP sketch, things are finally going swimmingly again...
Progress on my CarDuino had really slowed down because it took up to half an hour to upload any changes and updates to my 1284 sketch at all... but now, I can finally get back to the actual developing ![]()
On that note, I am wondering if it's advisable to put the welcome screen into PROGMEM, to make sure that it will load even if the SD card fails. As a PROGMEM array, it would have 32768 Bytes.
Here's a better view of it:

All the warning screens that will be shown when sensors of the CarDuino pick up faults will be stored on the SD card, and then if the SD card ever fails, they will be substituted by writing on a blank screen. But it'd be kind of nice if the welcome screen stays intact even if there are SD card problems.
This is the current design of the warning screens that I am toying with:

Considering that I've got 128KB of flash memory, and considering that the bitmaps for all the numbers that I want to store in PROGMEM are only going to take up around 20 KB, putting the welcome screen into PROGMEM would mean I'd still have over 75 KB of flash left to do all the other stuff with.
And this is what the "menu screens" will look like... they will be navigated by pressing the "back", "forward" and "set" buttons that can be seen on my breadboard above. At the moment, the plan is to implement the buttons as pin change interrupts on pins 20, 21 and 22.

Like I keep saying... I'm a very "visual" guy... and I am far too OCD to ever be happy with just a bunch of numbers dumped out on a screen in basic system font...
I know that that means I will bump into limitations of an 8-bit microcontroller with a stamp sized display at every other turn, but so far, that isn't deterring me ![]()
EDIT: Just tried putting the welcome screen in PROGMEM... it told me that the array was too large... so I guess I am going to load it from the SD card after all. But perhaps it's still a good idea to store it on the SD card in 565 format, so it doesn't have to go through the clunky Adafruit bmpDraw function...

