I see...So is the advantage of using the hardware serial port that you can use the FIFO? Are there any other benefits?
Have you actually used DmxSimple yet? Did you notice any problems or limitations?
I could write a lengthy, highly theoretical message about concurrency, interrupt latency and other subtle software issues, but I'm going to keep this breif instead.
This means the RS-485 transceiver/driver can not receive and drive at the same time? If I were to use to MAX485s could I do this?
Well, this may be overly obvious, but if have the receiver enabled while you enable the driver, it's only going to receive whatever you're driving on to the wires. RS-485 isn't designed to gracefully deal with multiple conflicting chips driving on the line simultaneously (like CAN bus), so there's really no point to turning the receiver on while transmitting
All the 8 pin RS-485 chips place those 2 control signals next to each other, and they have opposite polarity (high enables the driver, low enables the receiver), because the vast majority of applications connect those 2 pins together and drive them with the same signal, to enable either the transmitter or the receiver. You might want to shut them both off, to save power, which is the main reason the chip has 2 pins. You can turn them both on too, but there really no good reason to do so.
DMX products are pretty much all designed to either always transmit (controllers) or always receive (dimmers).
So a Teensy could drive 512 channels of DMX simultaneously but receive/parse only one?
Did you run Ward's DmxReceiver code, or even look at the code yet? Really, I'm trying to respond to questions here, but at some point you've really got to take your project by the reins and dig into these technical details.
Just a quick look at Ward's code should reveal it receives all 512 channels. You then call the getDimmer() function to look at the ones you want. It's really pretty simple.
Have you used any commercial DMX dimmer or lighting products? Nearly all have dip switches or a display. Maybe you don't need that? But if it's going to be used by other people in some sort of production or entertainment environment, odds are good the address they might need to be reassigned if some other DMX device is already installed listening to the same address. Your code can call Ward's getDimmer() function to read any address, but if you don't design your hardware with some sort of user interface to set that number, then how will your code make use of getDimmer() in a way that's field configurable?
Regardless, the original question I had was about the form factor for a breakout: I believe the teensys have different spacing-obviously a different form factor. Are there suggestions on how to design a most compact breakout board (for DMX) that would work for all teensy form factors (2, ++ and 3)?
All Teensy boards have pins with 0.1 inch pitch, where the 2 sides are 0.6 inches apart. All have GND and +5V in the same positions on the left side (the side with the USB connector). Each board has a different pinout. But you could use pin 3 on Teensy3 and simply adjust to pin 2 if a Teensy++ 2.0 is plugged in.
There are Eagle libraries here. If you're making a PCB, that's the place to start.
http://www.pjrc.com/teensy/eagle_lib.html
If you search, you can also find thread on these forums where the Eagle libraries have been discussed in detail.