I have Teensy 3.0's and an Uno. The teensy is generally compatible at the software level with the Arduino, and the IDE used is a modification of the Arduino IDE. And most (all?) of the libraries provided with the Arduino are included and ported.
However, note that internally the Teensy 3.0 uses an Arm processor, and most of the Arduinos use AVR processors from Amtel, except for the Arduino Due. The Due uses a different Arm processor. There are some things that do hardware specific things on AVR processors that might not work on Arm processors. These include interrupts, sleep modes, bit banging to deal directly with the hardware. There are presumably different ways to do such things on Arm processors.
One other subtle thing is the size of the int
data type is different on Arm processors (32-bits on Arm, 16-bits on AVR's), and a few programs unintentionally used int
and needed the truncation to 16-bits. Changing the types to int16_t
allows these programs to run correctly on both processors.
Note, that both of the Arm processors (Teensy 3.0, Due) run at 3.3 volts instead of 5 volts, which needs to be accounted for in the electronic side of things (i.e. adjusting resistors for LEDs, using 3.3v components, etc.).
At present, the Teensy 3.0 is only available in DIP format, and there aren't shields like there are for the Uno/Mega/Due processors available from PJRC. There are two different people producing breakout boards for the Teensy 3.0 that bring out the extra pins located underneath the chip, and one of them now has a shield that converts the Teensy to an Uno style shield (the next version will have voltage conversion). Look on https://www.tindie.com/
for these with the teensy search term.
I would hesitate to say exactly how compatible things are, but it is likely to be in the 90% range. For more specific teensy 3.0 questions, you might want to ask them over at the PJRC forum: http://forum.pjrc.com/forum.php