Trying to figure out how to add A3BU XPLAINED to Xmegduino, but I'm a bit lost.

Xmegaduino: https://github.com/akafugu/Xmegaduino

I think this is the official spec for boards.txt? https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification

And this tells me the processor name I need for AVRdude, and on page 2 indicates it supports DFU (FLIP v2 on the xmega): http://nongnu.askapache.com//avrdude/avrdude-doc-6.1.pdf

But I'm pretty sure the xmega timers and stuff work differently than the mega ones, and I'm wondering if I just add a new board to boards.txt how the heck the code is going to know to use the special xmega versions of the SPI and DAC librariees for example? Do you think their code looks for only those three variants they've defined? Or does it go by processor? And if so, does that mean I'm boned if my board doesn't use the same processor as one of the already defined variants?

I'm pulling my hair out here. I gotta get this working with the Atxmega256A3BU on the explained board, and I need it to upload via USB using the DFU bootloader. But I've got no idea what steps I need to take to get a new board profile working aside from editing that boards.txt file.

The 1.5.2 IDE has a structure beyond just boards.txt, including platform.txt (which explains how to compiler the sketches) and programmers.txt (for "upload using programmer.") (see .../hardware/arduino/xmega ) In addition, there is a whole separate "core" for the xmega chips (completely separate, as far as I can tell.) Things in the core should be implemented pretty much across the XMEGA line (peripherals are pretty regular, I think?) You should look in the core files to see if there are any per-chip dependencies.

There's a difference between "the core" and libraries. The xmega "platform" has its own set of libraries as well as the core (and you should again check for chip dependencies.) The libraries may or may not be "complete" compared to what you need. Then guthub page specifically mentions some libraries that are believed to work, and other in the "in progress" state.

Finally, there are the pins_arduino.h files in hardware/arduino/xmega/variants/* - these describe the mappings of arduino "pin numbers" to actual ports and bits, and you'll probably need a new one for any new board-level product. (or you can put up with the inaccuracies of the closest existing variant.)

But where is the spec for those files so I know how to create a new entry? Not all entries have the same parameters.

I googled it and found several pages with specs but at least one says it's a proposed spec and I can't tell if they're official or not.