Share this project

Done

Share this project

Done
Photo 1024x768

Teensy 3.0, an affordable 32 bit ARM Cortex-M4 board, for development in Arduino or C/C++. Read more

1,572
backers
$70,874
pledged of $5,000 goal
0
seconds to go

Funded!

This project was successfully funded on September 16, 2012.

Teensy 3.0, an affordable 32 bit ARM Cortex-M4 board, for development in Arduino or C/C++.

Fifth Software Update

Here is another release of the software, adding support for the 3 serial ports and a master-only implementation of the Wire library (I'll work on slave mode in a couple weeks).  Several bugs were also fixed.

http://www.pjrc.com/teensy/beta/arduino-1.0.1-teensy3-beta5-linux32.tar.gz

http://www.pjrc.com/teensy/beta/arduino-1.0.1-teensy3-beta5-linux64.tar.gz

http://www.pjrc.com/teensy/beta/arduino-1.0.1-teensy3-beta5-macos.zip

http://www.pjrc.com/teensy/beta/arduino-1.0.1-teensy3-beta5-windows.zip

Special thanks to Neil Hand for testing the Wire library and comparing waveforms to the AVR version on his logic analyzer.  :-)

Non-serial USB types are still missing, but I plan to work on those over the weekend and early next week, hopefully with a release by the middle of next week.

As always, please report any bugs or incompatibilities.  Detailed and reproducible bug reports are tremendously helpful.  Poor ones slow me down.  Please, always send the complete code you're compiling, and always copy-and-paste (or screenshot) any error messages.

Comments

    1. Creator Paul Stoffregen on October 19, 2012

      @John, Thomas - I've found and fixed the SPI bug. :-)

    2. Creator Paul Stoffregen on October 18, 2012

      @Rick - use Serial1, Serial2 and Serial3.

    3. Creator Paul Stoffregen on October 18, 2012

      I'm try the ST7735 and Adafruit_GFX libraries now. I've added the missing wiring_private.h and extra stuff in avr/pgmspace.h (I already had prog_char, but not prog_uchar). Now I've got it almost compiling, but it's failing with a linker error I don't understand yet. I'm planning to publish another software update very soon, so I'll have to look at this in more detail later. I think this is as far as I'm going to get it for this update.

    4. Creator Joh.Lummel on October 18, 2012

      Hi,
      First: Yeah! You make my day! Yesterday (17.10.2012) my Teensy3.0 arrived here in Germany.
      After running the first test-code with variations of BLINK, i tried my actual Arduino-project, which uses a Adafruit 160x128tft-clone. First time I got the same error as Pixel_K and get a solution with an actual version of the libraries.
      (got it via link on arduino.cc -> reference -> libraries -> ST7735 => github.com/...)

      But now i get following error:
      \arduino-1.0.1.teensy3.b5\libraries\Adafruit_ST7735\Adafruit_ST7735.cpp:23: fatal error: wiring_private.h: No such file or directory
      compilation terminated.
      To reproduce the error, try to compile the graphicstest example from that lib.

      I've looking to other "wiring_private.h" from different boards, but I've no idea what to put in that file...

      Have you any ideas? Sure!
      Time to do it? Hmm... would be very nice ;-)

      Greetings

      PS: If this is not a good place to post -> where is a good place? (maybe i missed that posting before)

    5. Creator Xepol (deleted) on October 18, 2012

      It took a bit, but my reward finally showed up today! (I was in the first batch, 30$ group) Canada post can be so random on deliveries from the states. sometimes it is blindingly fast, other times, it can be weeks more.

      On to playing!

    6. Creator Pixel_K on October 18, 2012

      Received my two, teensies and tried them right away.
      Blink of course works as expected :)
      I tried the SD example with the Adafruit 160x128tft + µSD breakout, but the initialisation of the SD fails everytime.
      Am I right to think that DOUT = MOSI and DIN = MISO ?
      I can't try the SPI LCD right now because the library needs EEPROM access (compilation errored on the unknown prog_uchar type), but this is expected.

    7. Creator Thomas on October 18, 2012

      Works, thank you! I get a wrong value but that's a different story…

    8. Creator Rick Brockman on October 17, 2012

      I noticed that this release has support for the 3 serial ports. How are they to be used? The example UART sketch named EchoBoth creates a UART object as: HardwareSerial Uart = HardwareSerial();

      How does one refer to serial 1, 2, or 3 in order to create the object?

    9. Creator Paul Stoffregen on October 17, 2012

      @Thomas - Before using the CRC module, you need to activate its clock. By default, all the on-chip peripherals have their clocks disabled, to save power. If you access an unclocked part of the chip, usually the result is a bus error, which effectively crashes your program. You probably need to add this line:

      SIM_SCGC6 |= SIM_SCGC6_CRC;

    10. Creator Thomas on October 16, 2012

      Looks like using the hardware CRC breaks something too…
      This code (http://pastebin.com/cikTUcRc) generates this output: "Sta @� L"
      Did anyone try to use the CRC module? The resultint crc in this sketch should actually be 0x00.

    11. Creator Paul Stoffregen on October 16, 2012

      I was able to reproduce the EEPROM issue on Windows. I made a case-sensitive file naming mistake, which isn't an issue on Linux, but fails on Windows. Sorry about that! I'll have a fix for this tomorrow.

    12. Creator Paul Stoffregen on October 16, 2012

      @Rick, Alex - Could you please email me the problematic EEPROM code? I'm planning another software update tomorrow (with touchRead and RTC support).... today I'm investigating and hopefully fixing bugs before tomorrow's release.

    13. Creator Thomas on October 16, 2012

      @Rick: Thank you. I did not even try to use attachInterrupt(), I was looking for some register manipulation stuff but attachInterrupt() works great, just added a trigger-on-low interrupt on pin 4. Works great.

    14. Creator Mark Leavitt on October 15, 2012

      It's workin' here too in my Windows 7 environment -- great job, Paul!
      One minor glitch, and how I fixed it:

      After unzipping the package and launching arduino.exe, the menu choice Tools>Board did not include Teensy 3.0 in the list. To fix it, I had to go to File>Preferences and change the Sketchbook location to the Arduino install directory (C:\arduino-1.0.1 in my case). Save this change, exit the program, then relaunch arduino.exe and it should be fixed. Apparently Arduino 1.0.1 was using a Sketchbook folder I had specified in my previous arduino-1.0 version, and it prevented it from detecting the new boards.txt file. Others may have a better explanation but it's fixed and off I go. Thanks again, Paul!

    15. Creator Alex Ferro on October 14, 2012

      I have confirmed Rick's EEPROM issue on my netbook in Windows 7.
      I have also found a couple of other little problems in the course of trying to reproduce the problem.
      Attached are my notes on these little problems.
      http://pastebin.com/e5gvhUyz

    16. Creator Rick Brockman on October 14, 2012

      I am trying to use the EEPROM library and getting the error 'EEPROM' was not declared in this scope error.

      I've added #include EEPROM.h to the sketch and the usage is EEPROM.write(0, 1);

      The EEPROM library works if the target board is changed to one of the Arduino boards, but this error appears when the target is set to Teensy 3.0

      Any suggestions?

    17. Creator Rick Brockman on October 14, 2012

      @Thomas - In regards to assigning interrupts to pins, I've been successful using it exactly like this: http://www.arduino.cc/en/Reference/AttachInterrupt

    18. Creator Paul Stoffregen on October 14, 2012

      Thanks. I'll look into this today. It's almost certainly a bug in my code.

    19. Creator Thomas on October 14, 2012

      Here a workaround to get 2MHz SPI working:
      bitSet(SPI0_CTAR0,1); // 2MHz SPI
      Add this after SPI.begin() and it should work.

    20. Creator Thomas on October 14, 2012

      SPI.setClockDevicer(SPI_CLOCK_DIV4) does not work for me too (on OS X with Beta5 software / same as for John Beale). CS goes high, MOSI follows but never a clock transition. A picture of the logic analyzer output is here: http://uploaded.net/file/51cw3zgf

      I tried all CLOCK_DIVxx as defined in SPI.h. None of them seems to work, always the same result as above.

      4MHz SPI with a RFM12b slave looks good but the device does not support 4MHz while reading out the FIFO buffer.

      Something completely different… Is there an example somewhere about how to assign an interrupt to a specific pin?

    21. Creator John Plocher on October 12, 2012

      Paul and Robin
      What a fantastic experience - as compared to Twine, Digispark and others who are still struggling with their own success disasters. Less than a month from the close of your Kickstarter and everything has arrived, including huge software updates and code to play with. The world needs more role models like you two!

      Thanks!

      -John

    22. Creator John Beale on October 12, 2012

      How to change default 4 MHz SPI clock rate? I am using WinXP and Teensy3 Beta5 for Windows. Below simple SPI sketch works as shown, but if I uncomment the "SPI.setClockDivider()" line it does not work: The CS line drops low, but the clock line never transitions at all.
      // minimal SPI demo, works with Arduino and Teensy 3.0
      #include "SPI.h" // Pin 13=CLK 12=MISO 11=MOSI 10=SS
      void setup() // setup SPI pins, and send 1 byte
      { pinMode(10, OUTPUT);
      delay(3000);
      SPI.begin(); // Default SPI clock is 4 MHz
      SPI.setBitOrder(MSBFIRST);
      //SPI.setClockDivider(SPI_CLOCK_DIV4); // not working on Teensy3
      digitalWrite(10, LOW);
      SPI.transfer(0x28); // send out one byte via SPI
      digitalWrite(10, HIGH);
      }
      void loop() { } // empty main loop

    23. Creator andy on October 12, 2012

      Kudos to Paul S and Neil Hand on their fine testing and troubleshooting of the Teensy 3.0 new core "wire" library. I have a saying ... "wire does not work without having the DS1307 I2C RTC working!"

      I am in total shock and disbelief. The Teensy 3.0 team accomplished the impossible and their Arduino library "wire" port works ONLY with the DS1307 precision TCXO types. The DS3231, DS3232 and the DS3231M+. The Leaflabs MIT team could not make their Arduino library port "wire" work on their STM ARM "Maple" after three years!

      Please note: The DS1307 is a 5 VDC device and it will not work on the Teensy 3.0 without level converters. The other precision type variations will.

      DS1307 library used: RTClib by Jeelabs
      This library can be used on the precision DS3231, DS3231M+ and DS3232 Real time clocks.

      More RTC testing ongoing ....

    24. Creator Will Murnane on October 12, 2012

      Will something like http://www.pjrc.com/teensy/pinout.html be released for Teensy 3.0? I love the project, but it'd be nice to eventually be able to integrate the same processor into a single-circuit-board design. Having the schematic (or even PCB layout) would be great, too. Could I contribute money to get it released?

    25. Creator Mauro Scomparin on October 12, 2012

      Great, got the sd examples running! The only thing I noticed it's DO of the SD of the sd should go to DI of the board and DI to DO. Don't know if I got it wrong in the beginning but I thougt SPI should connect MOSI to MOSI and MISO to MISO.
      BTW, yeah, this is cool!!

    26. Creator Serge on October 12, 2012

      Received my board today as well, very happy with it so far. The progress with the software is great too, keep it up!

    27. Creator Mauro Scomparin on October 12, 2012

      Hi, I've just recieved my teensy3 board today!
      I just downloaded the beta4 sw and had some fun with that.
      I was going to congratulate when I noticed the new update! Wow!! Guys, keep up the great work!
      Btw mine took like 9 days to deliver in Italy (Venice)! Very good! I'm happy about that!