Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 9 of 9

Thread: no usb roles on LC after upgrade to 1.52

  1. #1
    Junior Member
    Join Date
    Apr 2020
    Posts
    7

    no usb roles on LC after upgrade to 1.52

    I've been working on keyboard/pointer sharing from PC to Chromebook using teensy-LC as a serial->USB bridge for a while. The project is mostly finished with keystrokes and mouse movement working very good. I've been developing on a xubuntu 18.04 machine with arduino 1.8.10 + teensyduino 1.48 that has mostly worked ok. I was noting 100% cpu utilization that was associated with the arduino-IDE and saw teensyduino 1.52 mentioned a similiar cpu-maxed-out situation so decided to upgrade (and upgrade arduino to 1.8.12). After upgrade something is fouled up about how teensy is recognized as I can no longer get the extra usb roles of serial/keyboard/mouse/joyst. I've noted that the small configuration text in lower right corner of IDE shows proper extra usb roles for the project until upload then it changes to just some base level config of ttyAMC0 without the xtra roles.

    Whatever changed also changed the previous teensyduino install (1.8.10+1.48) as it as the same usb-role stripping behavior now. I _think_ I have the udev rules as indicated in the instructions but there is a bit of confusion on that point and appears to be an logical prime target. udev tweaking is NOT one of my strongpoints and could use very clear instructions regarding troubleshoot in that area.

    This is a retirement project to scratch a personal itch. I've just purchased 5 t-LC's to replicate this ChromeBook control for a number of my projects. I mention retirement to indicate I could spend considerable time if properly guided to figure this out if it happens to be something systemic that needs to be worked out for others. I'll let this sit for a while to see if there will be guidance before mucking it up worse.

  2. #2
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,648
    Probably the first thing I would do, if I were you, would be to update the udev rules.

    I would download the latest udev rules from: https://www.pjrc.com/teensy/td_download.html

    and then follow the instuctions: sudo cp 49-teensy.rules /etc/udev/rules.d/

  3. #3
    Junior Member
    Join Date
    Apr 2020
    Posts
    7
    i refreshed the udev rules when i installed new arduino ide and new teensyduino so should have the newest. Today I installed arduino 1.8.12 and teensyduino onto a rpi4 and could not load my code to the teensy-LC that i've been using for development. So I tried a new cable and new teensy-LC. Same outcome, arduino reports upload failure.

    At this point I'd like to revert to arduino 1.8.10 + teensyduino 1.48 (on X86-64 machine running xubuntu 18.04) but how to do that is not clear. Are old versions of teensyduino installer available on the website somewhere?

  4. #4
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,648
    What are you running on the RPI4? Raspian? Ubuntu? Version? 32 bit or 64 bit?

    So if the current download for 64 bit linux is: https://www.pjrc.com/teensy/td_152/T...nstall.linux64
    I would try: https://www.pjrc.com/teensy/td_148/T...nstall.linux64

    It has been awhile since I ran RPI4 with Arduino... Most of the time I would use: the command line version, which you can get at:
    https://www.pjrc.com/teensy/loader_cli.html

    Or at least the sources.

  5. #5
    Junior Member
    Join Date
    Apr 2020
    Posts
    7
    Sorry about lack of attention to detail re rpi4 usage. I'm running feb2020 "Raspbian Buster with desktop" which is still 32bit (running on 64), kernel 4.19.

    thanks for tips will follow both. Intriguing that there is a command line version. Not really sure what that is (is just loader?) but I am glad to see anything that gets me away from total dependence on rather fat guis and java. btw, I ran the 1.8.12+1.52 on xubuntu 18.04 yesterday again to verify the problem and within few minutes saw 100% cpu from teensyduino when it was apparently doing nothing but idle.

    btw2. I have another rpi4 inbound, i'll be able to do some very clean looks at Raspbian + teensyduino if there's anything you'd like to look at. (also still have 3 virgin from factory t-LCs that will just have the factory blink installed)

  6. #6
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,648
    Typically when I am working with RPIs, I am doing so by running them headless. So most of the time I talk to them through some terminal window. On Windows this is typically KiTTy (PuTTy).

    So with the CLI version of the Teensy loader. What I might do, is something like build my sketch on my PC, then transfer the resulting binary file over to the RPI and then use the CLI app through terminal window to then program the Teensy.

    At one point I had a setup, where I hacked the Teensy (I think the protocol.txt), to make it works sort of like how the Edison used to work. That for the upload process, it would instead of use Teensydino to program the Teensy, it would automatically transfer the file to my RPI using something like SFTP?. Then on the RPI, I had a simple script running, that looked for a specific file to change (or exist?) and then would automatically run the CLI program to update the Teensy...

    But in mean time, I will try getting out one of my RPI4s and see if it works for me.

  7. #7
    Junior Member
    Join Date
    Apr 2020
    Posts
    7
    @KurtE you wrote "build my sketch on my PC, then transfer the resulting binary file ". I've never dug into arduino nastiness enough to know where I might find the resulting binary executable. Any hints would be appreciated.

    ...i'm in Florida, there's a launch 2day, heading in that direction.

  8. #8
    Junior Member
    Join Date
    Apr 2020
    Posts
    7
    The hint was correct about how to get a version of the 1.48 tennsyduino loader archive so that I could rebuild and revert to a arduino-1.8.10+teensyduino-1.48 that I had done all my devopment work on in which usb profiles a keyboard+mouse+serial worked perfectly. Unfortunately, rebuilding that environment did NOT restore the usb capability. Unfortunately, I don't know if the udev rules are the same as they were because your udev rule doesn't seem to have any revision information, so not sure I have fully restored what was a working environment. At this point I'm pretty confused.
    One observation that seems important. When I have my code loaded in an arduino project window and have usb profile serial+keyboard+mouse+joyst selected (from tools) I see that indicated in lower right of window. Somewhere during the upload process that changes to indicate only ttyACM0.

    as for getting a binary so that I could work with the cli loader, I noticed today that there is a "export binary" in the menu's somewhere. I don't remember that being there in the old days of arduino. I'll give that and the cli loader a try soon. Regarding building a hex load file begs the question "how are usb roles/profiles controlled in a load file?"

  9. #9
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,648
    There are a variety of different ways to get to the binary. Example in the IDE under sketch menu is the command: export compiled binary, which puts a copy into your sketch folder.

    If I remember correctly my hacks used the upload using programmer... And I overloade that to copy the file.

    Some of my notes on this are up on a few threads, like: https://forum.pjrc.com/threads/42790...l=1#post137917

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •