Coming Soon: Teensy-LC (low cost Teensy)

Status
Not open for further replies.
Waiting for new production run

Hi Paul, Glad to know that. It's really a good news. I am waiting for the production run.

Thanks. :)
 
I rebooted my laptop, opened the IDE, connected Teensy LC. The LC board looks dead (nothing blinking), Windows sees no serial port or device, and the IDE says no serial ports available. I think many people would conclude it's broken at that point. I select Teensy LC in the IDE and click the "checkmark" button to compile (but not load) "Blink". Suddenly, Windows loads a device driver, COM20 appears, and now blink is loaded on the board and working. So it works, maybe that is the way it is supposed to work, but I don't remember it working this way before? Or maybe it did and I forgot, or maybe my other (non-beta) Teensy 2, 3.0, 3.1 boards had something preloaded already. Anyway, onwards...

I am having an issue with this also. Firstly, my Teensy 3.1 works fine, Uploading a sketch automatically reboots the board and all works well so I presume the Teensyloader is correctly configured, although I have now re-installed 3 times.
With the Teensy LC, at first I get a Serial port # and select this in the IDE. I click the verify and nothing happens. Then I click upload and it goes through the opload, but at the end it says the following
Opening Teensy Loader...
Teensy did not respond to a USB-based request to automatically reboot.
Please press the PROGRAM MODE BUTTON on your Teensy to upload your sketch.

At this point the COM port # dissapears from my device manager and pressing the button on Teensy LC does nothing.
The only way I can get the COM port to re-appear is to disconnect any connect to a different physical USB socket. Repeat procedure does exactly the same thing again. I have 2 LC boards and both do the same thing.
I am using Windows 8.1, Arduino 1.6.1
Something seems different between Teensy 3.1 and LC.
Any help appreciated.
 
Tried both of those suggestions. No change.
Pressing the button on LC causes the Serial port to disappear and also kills the flashing LED. Shorting PROGRAM to GND restores the flashing LED but still serial port doesnt appear. Only moving to a new USB will again show a COM port.
 
As an update, Teensy LC shows up in device manager as Teensy USB Serial (COM10). If I press the reset button, it disappears and shows up under Human Interface Devices as USB Input Device. This is where it stays no matter what I do, until I move the cable to a different USB socket or uninstall the USB Input device. I am at a loss at this stage.
 
As an update, Teensy LC shows up in device manager as Teensy USB Serial (COM10). If I press the reset button, it disappears and shows up under Human Interface Devices as USB Input Device. This is where it stays no matter what I do

Sounds like it's working perfectly.

The button is NOT for reset. It's to put Teensy into programming mode, where it appears as a HID device with ID 16c0:0478.

More info is here:

http://www.pjrc.com/teensy/troubleshoot.html
 
Thanks Paul.
According to that info it is acting normal as regards the button and LED, however it will not program. Loading the Blink Sketch on both the Teensy 3.1 and Teensy LC give the following verbose results.
Teensy LC - a long string of the same messages.
16:23:41: file changed
16:23:46: remote connection opened
16:23:46: remote cmd: "comment: Teensyduino 1.21 - WINDOWS"
16:23:46: remote cmd: "dir:C:\Users\Leon\AppData\Local\Temp\build5474599074920242015.tmp\"
16:23:46: remote cmd: "file:Blink.cpp.hex"
16:23:46: File "Blink.cpp.hex". 10076 bytes, 4% used
16:23:46: remote cmd: "status"
16:23:46: status data sent
16:23:46: remote connection closed
16:23:46: remote connection opened
16:23:50: status data sent
16:23:50: remote cmd: "status"
16:23:50: status data sent
16:23:50: remote cmd: "status"
16:23:50: status data sent
16:23:50: remote cmd: "status"
16:23:50: status data sent
16:23:50: remote cmd: "status"
16:23:50: status data sent
16:23:51: remote cmd: "status"
16:23:51: status data sent
16:23:51: remote cmd: "status"
16:23:51: status data sent
16:23:51: remote cmd: "status"
16:23:51: status data sent
16:23:51: remote connection closed

Teensy 3.1
16:22:47: file changed
16:22:47: File "Blink.cpp.hex". 12200 bytes, 5% used
16:22:47: remote connection opened
16:22:47: remote cmd: "comment: Teensyduino 1.21 - WINDOWS"
16:22:47: remote cmd: "dir:C:\Users\Leon\AppData\Local\Temp\build5474599074920242015.tmp\"
16:22:47: remote cmd: "file:Blink.cpp.hex"
16:22:47: File "Blink.cpp.hex". 12200 bytes, 5% used
16:22:47: remote cmd: "status"
16:22:47: status data sent
16:22:47: remote connection closed
16:22:47: remote connection opened
16:22:47: remote cmd: "status"
16:22:47: status data sent
16:22:47: remote cmd: "status"
16:22:47: status data sent
16:22:47: remote cmd: "status"
16:22:47: status data sent
16:22:47: remote cmd: "status"
16:22:47: status data sent
16:22:47: remote cmd: "status"
16:22:47: status data sent
16:22:47: remote cmd: "status"
16:22:47: status data sent
16:22:47: remote cmd: "status"
16:22:47: status data sent
16:22:47: remote cmd: "status"
16:22:47: status data sent
16:22:48: Device came online, code_size = 262144
16:22:48: Board is: Teensy 3.1 (MK20DX256), version 1.03
16:22:48: File "Blink.cpp.hex". 12200 bytes, 5% used
16:22:48: File "Blink.cpp.hex". 12200 bytes, 5% used
16:22:48: elf size appears to be 262144
16:22:48: elf binary data matches hex file
16:22:48: Code size from .elf file = 262144
16:22:48: begin operation
16:22:48: flash, block=0, bs=1024, auto=1
16:22:48: flash, block=1, bs=1024, auto=1
16:22:48: flash, block=2, bs=1024, auto=1
16:22:48: flash, block=3, bs=1024, auto=1
16:22:48: HID/win32: waiting for device
16:22:48: HID/win32: waiting for device
16:22:48: HID/win32: waiting for device
16:22:48: HID/win32: waiting for device
16:22:48: remote cmd: "status"
16:22:48: status data sent
16:22:48: remote connection closed
16:22:48: flash, block=4, bs=1024, auto=1
16:22:48: HID/win32: waiting for device
16:22:48: flash, block=5, bs=1024, auto=1
16:22:48: flash, block=6, bs=1024, auto=1
16:22:48: HID/win32: waiting for device
16:22:48: flash, block=7, bs=1024, auto=1
16:22:48: flash, block=8, bs=1024, auto=1
16:22:48: flash, block=9, bs=1024, auto=1
16:22:48: HID/win32: waiting for device
16:22:48: flash, block=10, bs=1024, auto=1
16:22:48: flash, block=11, bs=1024, auto=1
16:22:48: HID/win32: waiting for device
16:22:48: sending reboot
16:22:48: begin wait_until_offline
16:22:48: offline, waited 3
16:22:48: end operation
16:22:48: redraw timer set, image 14 to show for 1200 ms
16:22:49: redraw, image 9
 
Ok More info.
Connect Teensy LC - COM port 10 appears LED flashes 1Sec ON 1Sec OFF
Press button on Teensy - LED stops flashing
Upload Blink with new flash rate
Nothing happens - Press button nothing happens
Disconnect Teensy LC and reconnect - Nothing happens - No Com Port shows.
Press button - Nothing happens
Move USB to new socket - Com Port 10 Shows up
Teensy flashes at old rate 1Sec ON, 1Sec OFF
Press Button - Teensy Loader shows reset and programming
LED Flashes at new rate 3Sec ON, 1 Sec OFF.

Dont know if that helps
Again, Teensy 3.1 works without issues.
 
Hey Paul,

What's the plan with AltSoftSerial and the LC?

I'm working on a teensy3.1 to XBee adapter board(at sparkfun) and have the option to connect software serial lines to the radio, but I don't know where they'll go!
Do you have any plans to make AltSoftSerial compatible with the LC?
Do you know what pins are to be mapped for TX and RX?

Thanks,
Marshall
 
Isnyman: It looks to have properly worked in the end. Scanning the early part that I'm wondering if TeensyDuino was running at first? With 'Press button on Teensy - LED stops flashing' you took the USB offline and into program mode and unless TeensyDuino was active it would stay that way and the rest may nearly make sense** - putting on new port would restart the Teensy to Run with USB active, and then active TeensyDuino did its job.

**I see you are on Windows - like I am - and it doesn't always set up USB right on new devices, especially if it is busy associating/updating drivers. Early on I was getting a 'ghost' com port that wouldn't work to connect or view output, that hasn't recurred lately.

I just put my LC on and using my own blink code (with Serial print) followed your steps and it worked - though did generate the event noted below, maybe confusion because I also had a 3.1 connected. I repeated with that off and it worked.
10:20:06: File "T_InterruptBlink.cpp.hex". 10688 bytes, 4% used
10:20:06: reboot too soon timer still running, oh no!
10:20:06: remote cmd: "status"
 
I'm working on a teensy3.1 to XBee adapter board(at sparkfun) and have the option to connect software serial lines to the radio, but I don't know where they'll go!

If you are reading a guide that assumes an Arduino-branded board, then most of them (apart from Due and Leonardo) have only one hardware serial port. Furthermore, they tie that up to the USB with a serial-to-USB converter. So, most Arduino boards require you to use software emulation for all your serial duties.

So for Teensy boards, the question is not "can software serial work" but "are there free hardware serial lines I can use". To which the answer is yes, there are three of them.
 
If memory serves the Leonardo only has one serial port (Serial1, attached to 0/1). Like the Teensy, the USB connection is independent of the hardware serial port, while on an Uno, there is a secondary chip that watches the hardware serial port and converts it to USB. The Due and Mega have 4 serial ports (Serial0 attached to 0/1, Serial1 uses 18/19, Serial2 uses 16/17, Serial3 uses 14/15).
 
Last edited:
Many sketches and even some libraries published for normal Arduino boards have SoftwareSerial hard-coded into them, based on the assumption there aren't any extra serial ports.

Teensy LC and 3.x have a fake SoftwareSerial library which simply uses the real hardware serial, when you specify the pins to be 0 & 1 or 9 & 10 or 7 & 8. That lets you use such program by only editing the pin numbers, which is usually very easy.
 
I just tried Teensy LC as "Flight Sim Controls" via USB and doesn't work. It compile ok and driver update correctly but there's no communication with XPlane. The same code works on Teensy 3.1.
UPDATE
I've maded some more testings and looks like Teensy LC doesn't receive any data from XPlane plugin (apart FlightSim.isEnabled()), I've sended some command to XPlane plugin and it reacts but nothing received by Teensy LC. I will look more deeply into this later.
Teensy 3.1 works perfect in both directions, same exact code.
 
Last edited:
Here's a fix. Copy this file to hardware/teensy/avr/cores/teensy3. It should fix the flightsim troubles on Teensy-LC.

Please let me know how this works for you?
 

Attachments

  • usb_flightsim.cpp
    8.6 KB · Views: 165
Last edited:
What library to use with the LC and Wire? I used the i2c_t3 but no support for Teensy LC yet.

Sorry for that, I'm working on it. I'm trying to get it out soon, hopefully a day or two. The Wire library that comes with Teensyduino has LC support (I'm not sure about the 2nd bus though).
 
Status
Not open for further replies.
Back
Top