PaulStoffregen
Well-known member
We launched Teensy 3.0 with a Kickstarter campaign, which was funded on September 16, 2012. The campaign made this promise to backers:
(when reading this quote, keep in mind the context of 2012, when no 32 bit boards worked at all on Arduino, and the tutorials that existed usually had dozens of pages about installing toolchains and all sorts of complex setup)
Half of the rewards were promised to ship in September and the rest in October. Like many projects, we had a setback. It involved the USB connector soldering. Most of the September rewards shipped in the final week, but about 200 of them shipped on October 1. All of the October rewards were shipped by the 2nd week of October. We were left with about 100 rewards lacking shipping info or with incorrect payment. Back then Kickstarter didn't factor in shipping, so international backers were supposed to voluntarily & manually add extra to their pledge, which was of course a logistical nightmare. By January 2013, we has resolved and shipped all but 3 rewards. Amazon Payments helped us to send refunds to those final few backers we never managed to contact.
For the first few months, many beta releases were made as the most popular libraries were ported and bugs were fixed. The first non-beta version to support Teensy 3.0 was Teensyduino 1.12, released in late January 2013. By that point, all of the libraries that come with Arduino and a few of the most popular ones like IRremote and Encoder had been ported.
In mid-2012, the WS2812 LEDs appeared on the market and started to gain popularity, since they were much less expensive than the then-common LPD8806. Due to some previous work I'd published for LPD8806, and some awesome projects people built with it, support for "LED video wall" support with the new, cheaper LEDs rapidly became the most common request. So I took something of a detour from porting the lesser-requested libraries and developed OctoWS2811. Since it's initial release in March 2013, an incredible number of really spectacular LED projects have used it.
But porting libraries and improving Arduino compatibility didn't take a back seat. Not for long anyway! Teensyduino 1.14 was published in May 2013. If you view the release notes on the download page (scroll down), you can see that 1.14 fixed an incredible number of finer points to Arduino compatibility and made most of the widely used libraries compatible. 1.14 also added new features that I believe still do not exist on any other boards, like analogWriteFrequency() and highly optimized Serial.readBytes().
If you view the rest of the release history, you can see the versions that followed in the rest of 2013 continued adding more and more compatibility with AVR-centric code (a feature no other boards support, even today).
In late 2013, I started really working on audio support. This had been one of my major long-term goals even in the Kickstarter days. Audio took a LOT more work than I had imagined. It dragged on for nearly a year before the 1.0 release, which finally happened in September 2014.
Teensy 3.1 was released in January 2014. Many other Arduino improvements also happened during the audio development.
Somewhere in mid-2014, I took a break from audio stuff to port the last of the libraries that Teensy 2.0 supported. Most of those last libraries had few, if any requests from people, but it was a final push to get all the libraries provided with Teensyduino to work on Teensy 3.0 and 3.1. Really, the 2 libraries that has any substantial amount of requests were my own: FreqMeasure and FreqCount. The others, like AltSoftSerial and TimerOne and MsTimer2, weren't really "necessary". I did them more of the sake of completeness.
That last round of library porting was published in Teensyduino 1.20. Most had been on Github for some months. But if you measure from the day the Kickstarter was funded to the release of version 1.20, it really was about 2 years until all the libraries included with Teensyduino (and a LOT more on other sites, especially Adafruit) were all ported.
Even now, plenty of software development is ongoing. Some features I'd planned since before the Kickstarter campaign have been chronically pushed onto the back burner. So in some sense, the software _still_ isn't 100% complete. It may never be. Really, it's all a matter of perspective!
(when reading this quote, keep in mind the context of 2012, when no 32 bit boards worked at all on Arduino, and the tutorials that existed usually had dozens of pages about installing toolchains and all sorts of complex setup)
Long-Term Project Goals:
With the initial release, Teensyduino will support the normal Arduino functions, digitalWrite, pinMode, analogRead, and so on.
However, there are many libraries for Arduino(R)** which are not designed to be cross-platform. Paul Stoffregen has personally ported dozens of libraries to Teensy 2.0 (and in the process, also Arduino Mega and now Arduino Leonardo). Firmata, Servo, IRremote and OneWire are just a few of the well known Arduino libraries which work across many boards, due to Teensy's porting project. Teensy 3.0 will continue this process, for most major Arduino libraries, and in the process probably pave the way for easy porting to other 32 bit boards, like the upcoming Arduino Due.
Paul has also contributed numerous features and bug fixes to Arduino. Teensy 3.0 will continue this tradition. Here is a list of Arduino contributions to date:
http://www.pjrc.com/teensy/arduino_contrib.html
This kickstarter, and continuing sales of Teensy afterwards, keep funding Paul's work on Arduino and low-cost, easy-to-use hardware.
The long term goal is not merely an ARM-based board, but a modern platform that works with the extreme ease-of-use you'd expect from the Arduino environment.
Half of the rewards were promised to ship in September and the rest in October. Like many projects, we had a setback. It involved the USB connector soldering. Most of the September rewards shipped in the final week, but about 200 of them shipped on October 1. All of the October rewards were shipped by the 2nd week of October. We were left with about 100 rewards lacking shipping info or with incorrect payment. Back then Kickstarter didn't factor in shipping, so international backers were supposed to voluntarily & manually add extra to their pledge, which was of course a logistical nightmare. By January 2013, we has resolved and shipped all but 3 rewards. Amazon Payments helped us to send refunds to those final few backers we never managed to contact.
For the first few months, many beta releases were made as the most popular libraries were ported and bugs were fixed. The first non-beta version to support Teensy 3.0 was Teensyduino 1.12, released in late January 2013. By that point, all of the libraries that come with Arduino and a few of the most popular ones like IRremote and Encoder had been ported.
In mid-2012, the WS2812 LEDs appeared on the market and started to gain popularity, since they were much less expensive than the then-common LPD8806. Due to some previous work I'd published for LPD8806, and some awesome projects people built with it, support for "LED video wall" support with the new, cheaper LEDs rapidly became the most common request. So I took something of a detour from porting the lesser-requested libraries and developed OctoWS2811. Since it's initial release in March 2013, an incredible number of really spectacular LED projects have used it.
But porting libraries and improving Arduino compatibility didn't take a back seat. Not for long anyway! Teensyduino 1.14 was published in May 2013. If you view the release notes on the download page (scroll down), you can see that 1.14 fixed an incredible number of finer points to Arduino compatibility and made most of the widely used libraries compatible. 1.14 also added new features that I believe still do not exist on any other boards, like analogWriteFrequency() and highly optimized Serial.readBytes().
If you view the rest of the release history, you can see the versions that followed in the rest of 2013 continued adding more and more compatibility with AVR-centric code (a feature no other boards support, even today).
In late 2013, I started really working on audio support. This had been one of my major long-term goals even in the Kickstarter days. Audio took a LOT more work than I had imagined. It dragged on for nearly a year before the 1.0 release, which finally happened in September 2014.
Teensy 3.1 was released in January 2014. Many other Arduino improvements also happened during the audio development.
Somewhere in mid-2014, I took a break from audio stuff to port the last of the libraries that Teensy 2.0 supported. Most of those last libraries had few, if any requests from people, but it was a final push to get all the libraries provided with Teensyduino to work on Teensy 3.0 and 3.1. Really, the 2 libraries that has any substantial amount of requests were my own: FreqMeasure and FreqCount. The others, like AltSoftSerial and TimerOne and MsTimer2, weren't really "necessary". I did them more of the sake of completeness.
That last round of library porting was published in Teensyduino 1.20. Most had been on Github for some months. But if you measure from the day the Kickstarter was funded to the release of version 1.20, it really was about 2 years until all the libraries included with Teensyduino (and a LOT more on other sites, especially Adafruit) were all ported.
Even now, plenty of software development is ongoing. Some features I'd planned since before the Kickstarter campaign have been chronically pushed onto the back burner. So in some sense, the software _still_ isn't 100% complete. It may never be. Really, it's all a matter of perspective!
Last edited: