Danke für die netten Worte, aber eigentlich bin ich gar nichts geworden 
Ich bekomme hier dank euch einfach nur großartige Hilfe und geb mein bestes, meinen Teil dazu beizutragen...
Ein vorläufiges Pinout-Bild habe ich im Anhang, genauso wie meine momentante pins_arduino.h (vielleicht hilft es ja mal jemanden hier).
Ich habe noch 11 Fragen und werde wenn die geklärt sind mit eurem "OK" mal das Flashen über SS,SCK, MISO und MOSI wagen.
Ich weiß nicht ob die analogen Eingänge vom ATmega169PA ebenfalls als digitale Pins verwendet werden können und habe mich an den atmega2560 gehalten und meine ebenfalls als digitale Pins angegeben.
1. Kann ich die analogen Pins bei den ditigalen stehen lassen?
Die LED_BUILTIN habe ich jetzt auf 13 gelassen. 0 ist ja RX und da will ich nicht, dass es da irgendwelche Probleme gibt.
Bei mir habe ich jetzt den PE7 (CLKO) als D7 definiert und der wird auch in der Schaltung benutzt um einen MOSFET zu schalten.
2. Soll ich jetzt alles ändern, damit PE7 nicht angesprochen werden kann?
Wie ich auf PE4 komme?
Die Abfrage war ja
(p) == 2 ? 0
und weiter unten steht
const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
// PORTLIST
// -------------------------------------------
PE , // PE 0 ** 0 ** USART0_RX
PE , // PE 1 ** 1 ** USART0_TX
PE , // PE 4 ** 2 ** PWM2
Da ist p=2 dem PE4 zugeordnet.
Also meiner Meinung nach sollte es PE4 und nicht PB2 sein.
3. was ist XTAL1 (TOSC1) und XTAL2 (TOSC2)?
4. Ist es sinnvoll GP5 als DigitalPin zu definieren, da er ja auch gleichzeitig Reset Pin ist?
Die boards.txt von Nick Lott sieht so aus:
bfly.name=Butterfly
bfly.upload.protocol=butterfly
bfly.upload.maximum_size=14336
bfly.upload.speed=19200
bfly.bootloader.low_fuses=0xE2
bfly.bootloader.high_fuses=0x98
bfly.bootloader.extended_fuses=0xFF
bfly.bootloader.path=butterfly
bfly.bootloader.file=bf_boot.hex
bfly.bootloader.unlock_bits=0x3F
bfly.bootloader.lock_bits=0x0F
bfly.build.mcu=atmega169
bfly.build.f_cpu=8000000L
bfly.build.core=butterfly
ich habe die jetzt einfach so umgeändert:
ATmega169PA.name=ATmega169PA // einfach nur umbenannt, keine sonstigen veränderungen an Dateien
ATmega169PA.upload.protocol=ATmega169PA // einfach nur umbenannt, keine sonstigen veränderungen an Dateien
ATmega169PA.upload.maximum_size=14336 //woher stammt die upload.maximum_size=14336? (Der ATmega169PA hat 16Kbyte 512Bytes 1Kbyte)
ATmega169PA.upload.speed=19200
ATmega169PA.bootloader.low_fuses=0xE2
ATmega169PA.bootloader.high_fuses=0x98
ATmega169PA.bootloader.extended_fuses=0xFF
ATmega169PA.bootloader.path=ATmega169PA // umbenannt und Dateipfad erstellt)
ATmega169PA.bootloader.file=ATmega169PA_boot.hex // bf_boot.hex in ATmega169PA_boot.hex umbenannt und in den Ordner "ATmega169PA" verschoben
ATmega169PA.bootloader.unlock_bits=0x3F
ATmega169PA.bootloader.lock_bits=0x0F
ATmega169PA.build.mcu=ATmega169PA // von atmega169 in ATmega169PA umbenannt , keine sonstigen veränderungen an Dateien
ATmega169PA.build.f_cpu=16000000 // von 8000000L auf 16000000
ATmega169PA.build.variant=ATmega169PA // "build.core=butterfly" komplett gegen "build.variant=ATmega169PA" ersetzt, da ich das "core" zeug nicht verstehe und die pins_arduino.h erstellt habe
===========================
5. Darf und kann ich es so machen oder wird es so Probleme geben?
Besonders die Punkte:
6. Ist "core" durch "variants" ersetzen erlaubt und brache ich den core Ordner überhaupt? (oder wie soll ich es machen?)
7. Sind die Fuse-Werte weiterhin korrekt durch das Ändern der Werte wie z.B. CPU-Takt? (Falls nein, wie müssen die aussehen?
8. Bezeichnung des "mcu" frei wählbar?
9. "protocol"-Name frei wählbar?
In der programmers.txt hab ich folgenden Eintrag ergänztz:
Atmega169PA.name=Atmega169PA
Atmega169PA.communication=serial
Atmega169PA.protocol=Atmega169PA
Auf Arduino Playground - CustomizeArduinoIDE steht "build.f_cpu - the CPU frequency (in HZ)".
10. Warum ist dann dennoch häufig ein "L" hinter der Zahl angegeben?
Irgendwie wäre ein Tutorial hierfür nicht schlecht 
Ich habe ganz offenslichtlich einige Fragen und weiß einfach nicht wie das alles zusammenhängt und ob das was ich gemacht habe ausreicht oder z.T. unnötig war, damit die Arduino IDE seinen bootloader und Co. auf den µC packen kann.
11. Wenn ich alles angepasst habe (und es auch stimmt), kann ich dann denn "bootloader" drauf brennen und ab dann zukünftig ganz "normal" über meinen USB<=>Serial Adaper andere Sketches über SS, SCK, MISO und MOSI drauf laden ohne den bootloader flashen/brennen zu müssen?
Ich danke euch, Serenyfly und DrDiettrich, wirklich tausendfach!
pins_arduino.h (8.94 KB)