Wiki Coming - Please link worthy posts


Senior Member+
PJRC/Paul has indicated it is NOT planning to produce a public WIKI.

There is a GROWING USER WIKI :: TeensyUser/doc/wiki
> please look and participate there.

A bug has gotten traction to make a WIKI to catalog the world of Teensy:

This one created as a collection point when YOU come across a post that Paul or someone made that explains or exemplifies how to do something from the Libraries, Hardware or otherwise that made something clear or provided a good resource - or touched on a subject you'd bookmark to find again.

I'll start with a couple : to get the shortcut 'right click' on the post's '#xx" to the upper right and 'Copy Shortcut' - then come to this thread and add it to your own post here with a Thread title or Subject Note and META tag(s) to help organizing them later. ( can also click the number - then pull the URL from the address bar ) [After posting click your link to verify]

If you have your own set of links or reference info - maybe post them on a good thread and link that post here. If this is just short and to the point it may be a better reference to draw from. Just hit the KEY post - other details can filter to the wiki from there.

Need not be limited to FORUM posts - I see GITHUB links for libraries - and for areas with definitive outside info that lets hardware work under Teensy. Outside links can go stale - but when the wiki comes together that can be considered then if posted now.
Last edited:
My best help for Initial and troubleshooting of Teensy Connectivity:
SAMPLE blink sketch and steps and notes to connect a Teensy when it won't seem to connect.

TEENSY Timers and PWM:

Teensy Quick Reference: Code Examples, Tips and Tricks

ADC library, with support for Teensy 3.0, 3.1 and LC

ASM on Teensy 2

Assembly coding for Teensy3.1

Assembler for optimization on Teensy in action

TyQt to manage multiple Teensy devices

METRO and elaspedMillis and elapsedMicros - a MultiTask'ish way to track passing time without delay()
elaspedMillis and elapsedMicros
>> Of course Wiki Treatment applies to all the Teensy\LIBs from PJRC

I see SNOOZE got posted below - but some threads ask leading questions that result in good HOW_TO info:

Teensy Timer changes during run-time - good ref info and refers to SNOOZE to exemplify

Pin to port group association for bulk digital I/O
Last edited:
Some of these are probably on the Teensy Quick reference link, and some are more general microprocessor links, but here are some of the links I've collected over the years:

Capacitive sensors with Teensy 3.0 (touchRead):

Cutting VIN/Vusb:

New improved i2c library meta thread:

Two of the threads about getting nRF24L01+ radios to work with Teensy:

Duff's snooze library (there may be newer versions):


Jimmyhugh's method of attaching pins underneath the Teensy 3.0/3.1:

Hacking the Teensy for SWD debugging:

A collection of pointers to Teensy projects done by others

Paul's DorkbotPDX post about Display and SPI Optimization techniques (there are probably newer threads that I didn't mark down):

Effects of varying i2c pullups:

Nick Gammon's i2c tutorial:

I2c scanner from

Nick Gammon's spi tutorial:

3.3v neopixel (ws2812) level shifters on the Teensy:

Calculate resistor needed for LEDs:

Paul's DorkbotPDX article about keeping a USB charger powered on when a Teensy doesn't draw enough power:

The lightsaber sound cookbook:

Instructable on how to build an 'Apple II' watch with a Teensy 3.1:

Brief bit on setting up a Teensy 3.0/3.1's real time clock:
Last edited:
Here's a link list not to posts on the forum but to a (short) list of alternatives to the Arduino IDE :

Arduino Eclipse IDE/Plugin (Linux, Mac, Windows):

EmbedXCode ( Mac ):

Sublime Text (Mac) :

There is a host of excellent others e.g. Visual Studio with the Visual Micro Plugin, but I do all my "stuff" on a Mac so I let other users post links to those.
Here's the URL for the free Visual Micro + free Visual Studio Community (the purchased license is for the optional hardware-less debugger). All else is free). Windows only. Compatible with Teensyduino.
Section on software enhancements & language extensions specific to Teensyduino?

Should there be a specific section on software enhancements & language extensions specific to Teensyduino?


I finally found what I was looking for in an old thread, and that highligheted yet another good reason for the imminent wiki.

Having just read Jp3141's formatted post yesterday, I wondered where or how to get Serial.printf. I was only able to find that thread, externally using Google and "teensy forum serial.printf". I'm sure the info is somewhere else too, just not easy to find.

While we're discussing things like this, I have to say thanks Paul for adding things like this to Teensyduino, even if it's hard to find them. :)

Last edited:
I2c pullups::
yes, you definitely need a pullup on teensy 3 (, 3.1, lc). 4.7k is the recommended value. See

Voltage check on Teensy 3.3v - low voltage gives hot chip from high current draw

Integer only sprintf :: siprintf doesn't bring in software floating point code

Porting code with printf can use this:: #define printf Serial.printf
Last edited:
I often see stuff go by that I think I might need someday, but I don't have a good enough record-keeping system to capture it.

And often see stuff that I'd be glad to post complements on, but don't want to clutter up the thread with "me too!" noise or come across as presumptuously passing judgement on everything.

It would be great to have a convenient (one click) way of nominating a post as "important reference material" or "admirable for whatever reason".
It would be great to have a convenient (one click) way of nominating a post as "important reference material" or "admirable for whatever reason".

This was noted as important somewhere back when this all started - about a PLUS ONE LIKE - button for threads. A way to make future threads have a means of rating. Feeling was no 'demote' button. That will come about based on the FORUM actually in use after any migration and the WiKi starts.

RTFM: A tip on reading the freescale doc - here in context of FTM's - (Flex TiMers)

Wiki Bonus content might also give a summary of the common TLA's: i.e. PIT and FTM and maybe another dozen or so.
Last edited:
Pictographer, one thing I do with things I want to visit again is add the link to a folder in my bookmarks file. On Chrome, I have bookmark folders for various major categories (work, hack forums, steampunk/renaissance faire stuff, etc.), and within there sub-directories (teensy vs. raspberry pi vs. arduino, etc.). If I see something interesting, I go into the bookmark manager, and go to the appropriate sub-directory, and add a link. It is more than just one click, but it allows me to save the information simply. Since chrome syncs its data to the cloud, I will get the same link on my work computer, home desktop, laptop, etc.
DMA based hardware Serial - up to 6,000,000 bps:

Teensy 3.1 / 3.2 Serial works well at 4M and 6M baud - and hardware control RTS/CTS implemented:

ARM Cortex processor handles interrupts with a lot of special work

Teensy 3.x and LC have nested priority interrupts

Troubleshooting Common Problems
Last edited:
Good adds! pictographer: I read the Audio shield and saw it as good but didn't think to post here! epicycloid: good watchdog info - made me think this on interrupts could be useful too showing how they can cascade.
Using The Interrupt Pin :: XPT2046 Touchscreen Arduino Library

The XPT2046 chip has an interrupt output, which is typically labeled T_IRQ on many low cost TFT displays. No special software support is needed in this library. The interrupt pin always outputs a digital signal related to the touch controller signals, which is LOW when the display is touched. It also is driven low while software reads the touch position.

The interrupt can be used as a wakeup signal, if you put your microcontroller into a deep sleep mode. Normally, you would stop reading the touch data, then enable the interrupt pin with attachInterrupt(), and then configure your processor to wake when the interrupt occurs, before enter a deep sleep mode. Upon waking, you would normally disable the interrupt before reading the display, to prevent false interrupts caused by the process of reading touch positions.

You can also use the interrupt to respond to touch events. Setup might look similar to this:
attachInterrupt(digitalPinToInterrupt(pin), myFunction, FALLING);

However, inside your interrupt function, if the display is no longer being touched, any attempt to read the touch position will cause the interrupt pin to create another falling edge. This can lead to an infinite loop of falsely triggered interrupts. Special care is needed to avoid triggering more interrupts on the low signal due to reading the touch position.

For most applications, regularly reading the touch position from the main program is much simpler.
I'm considering making this page a sticky. There's a good collection of links accumulating on this thread and I want to see it grow so that when the wiki is finally up an running, we can include this content right away.

I know that you've heard it before, but the Wiki really is coming, it's just taking a little longer than we want. There is some IT infrastructure stuff that needs to happen first. Unfortunately these IT tasks have been pushed down on Paul's to-do list as he works on things like his HackADay SuperCon workshop, new products, new features, bug fixes, and other stuff. I keep hearing things like "blah blah blah 5v tolerance" coming from his office. Then I interrupt him with things like "this part isn't available, I need a cross now so that I get this build going..." I digress...

I promise the Wiki is coming. I've done some testing on Vault Wiki and think it will work for what we want. We just need to make a little time for that pesky IT stuff.