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

Thread: Teensy conflict problem?

  1. #1
    Junior Member
    Join Date
    Nov 2017
    Posts
    10

    Teensy conflict problem?

    I have my Teensy wired up with the octo board but cant get past the point of it working in windows correctly and not sure what I am missing. I loaded the teensy software on another computer, not the one I am trying to use it on.

    I have a device on com 3, and when I plug the teensy in it shows it on com4, everything looks OK in Device manager, but when I try to use the device on com 3 in another program, it gives me the error that it cant find the device on com 3? It is like when I am trying to access the device on com 3, it is trying to access the teensy instead of the other device because I see the light on the teensy flashing rapidly. if I unplug the teensy then the device on com 3 works fine.
    Last edited by Cue777; 11-06-2017 at 09:26 PM.

  2. #2
    Junior Member
    Join Date
    Nov 2017
    Posts
    10
    Any ideas?

  3. #3
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    3,694
    Not really, probably need a lot more information on what Other program/device is running.

    Is it configured to "Com3" or does it scan Com ports and chooses one? It may be that it's smarts for choosing one is not working well and it is choosing the Teensy instead.

    But again just guessing from the data you provided.

  4. #4
    Junior Member
    Join Date
    Nov 2017
    Posts
    10
    It is in a virtual pinball machine and the device on com 3 is a Dot matrix display http://www.pindmd.com/, it is always on com 3 and doesn't change.

  5. #5
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    18,657
    Sounds like another case of Windows Mysterious Messed Up.

    First, is this Windows XP, 7, 8, 10? Version 10 uses an INF from Microsoft. All others lack the INF, so the Teensyduino installer adds one.

    Either way, the actual driver is always USBSER.SYS within Windows. But again, the version matters. All pre-10 Windows have serious bugs in that driver.

    Unfortunately, most of these Windows problems are usually "solved" by blind fumbling which almost never yields any useful learning. So I don't have really specific suggestions, like are possible on Linux where you can really get to the bottom of something (complex as it may be). A first place to start might be in the Windows Device Manager. Look for an Advanced tab, which gives you an option to change settings. The one you want is the option to reassign to a different COM port number. Again, no idea if that will really do anything, but it's probably a good first step to try.

    If that doesn't work, could you click on both COM ports in the Device Manager, and find the panel where you can get the Hardware-Id and Compatible-Id info (likely more than 1 line per Id). What does it show for each of them?

  6. #6
    Junior Member
    Join Date
    Nov 2017
    Posts
    10
    I tried changing the com ports and it didnt help. Here is a picture of the hardware id and compatible id.
    Attached Thumbnails Attached Thumbnails Click image for larger version. 

Name:	1.jpg 
Views:	62 
Size:	67.5 KB 
ID:	12010   Click image for larger version. 

Name:	2.jpg 
Views:	50 
Size:	76.7 KB 
ID:	12012  


  7. #7
    Senior Member
    Join Date
    Apr 2014
    Location
    Germany
    Posts
    306
    Just guessing:
    looks like the PINDMD internally also uses a Teensy running in serial mode. Depending on how smart they programmed their detection algorithm they might try to connect to your board instead of theirs which doesn't work of course. Do you need to have your board in USB_SERIAL mode? If not try to change it to something else....

  8. #8
    Junior Member
    Join Date
    Nov 2017
    Posts
    10
    The pindmd does not use a teensy or anything like it I dont think. Not sure what you mean by serial mode either or how to change it or for which device?
    The pindmd is a dot matrix display for the back of a pinball machine, when I load the virtual pinball software and load a game table, the display lights up to show the scores and animations you normally see on a pinball machine. When I plug the teensy into my computer, the display will not work.

  9. #9
    Senior Member
    Join Date
    Apr 2014
    Location
    Germany
    Posts
    306
    The pindmd does not use a teensy or anything like it I dont think.
    VID/PID clearly shows that the pindmd "is" a Teensy. Just to rule out any Windows issue: can you make the same screenshot as above with your Teensy disconnected?

  10. #10
    Junior Member
    Join Date
    Nov 2017
    Posts
    10
    Im not sure how it shows that it is a teensy? I took a screenshot of each one next to each other. I can take a new screenshot later this evening but it will only be of the pindmd on the left of course. I did have some issues with the driver install though on the teensy though and it did label the pindmd a teensy till I removed everything and installed the driver for the pindmd again so maybe thats some of the issue?

  11. #11
    Senior Member
    Join Date
    Apr 2014
    Location
    Germany
    Posts
    306
    The combination of

    VID = 0x16C0 (Vendor: VOTI / PJRC)
    PID = 0x0483 (Product Teensyduino USB_SERIAL)

    normally defines a Teensy running a firmware compiled with Tools | USB_Settings | Serial. If you look at your screenshot of COM 3 and COM 4, you see that both devices have this VID/PID. I can imagine that the driver of the pindmd might get confused if there is another 0x16C0/0x483 device on the bus and it talks to the wrong one. But that's just wild guessing.

    If you don't need the serial connection on your Teensy you can try to compile your sketch with Tools | USB_Settings | Raw_HID. If my guesses are correct it should work then.

  12. #12
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    18,657
    This product is using the exact same ID numbers as Teensy, which means it either has a Teensy inside, or similar hardware and is running code made with Teensyduino (which is not unusual - lots of people do use the code to make their own products), or someone went to a lot of trouble to precisely mimic the ID of a Teensy on completely unrelated hardware (which seems very unlikely - that's extra work for no real benefit).

    Now for some guesswork....

    This product probably was designed with Teensy and then made with the same chip and uses all the same USB code, but they probably didn't put the bootloader chip on their board. I'm also going to guess they didn't disable the _Teensyduino_reboot_() function in their code. If this is true (remember, I'm guessing) then their product is probably trying to go into bootloader mode when Arduino finds it instead of your Teensy. If this is true, then you MUST NOT CLICK UPLOAD. You will need to click Verify in Arduino, and then physically press the button on your Teensy. Also make sure you close the Arduino Serial Monitor before you press the button!

    To make matters even more confusing, those screenshots look like Windows 7. I don't see anywhere in this thread which version of Windows you are using, so this is more guesswork...

    All pre-10 versions of Windows have a terribly confusing USB serial driver bug. Normally Arduino avoids it because the serial monitor automatically closes. But in this case, if another program is using that board's COM port and Arduino mistakenly causes it to try to enter bootloader mode, then you can his this issue:



    This is really confusing, because the problem manifests later (even hours or days later) when you plug and reconnect the device. If you have 2 serial devices and the wrong one is rebooting (or getting stuck trying to reboot), and you have Windows 7, then you are going to hit this driver bug over and over. It's very confusing in practice.

    On Windows 7, all you can do is very VERY CAREFUL to always first close the serial monitor. Then click Verify, not Upload, and press the button on Teensy after the code verifies.

    If you are able to open that pinball maching controller, I would be very curious to see a photo of the circuit board. If you contact the company, please suggest to them to use their own VID/PID numbers (or just make some up that aren't the same as Teensyduino), and if they did use the Teensyduino code without the bootloader chip, send them this advice to at the very least comment out the _Teensyduino_reboot_() function in a future version of their firmware, so their product doesn't lock up when someone with Arduino+Teensyduino tries to upload to a real Teensy.

  13. #13
    Junior Member
    Join Date
    Nov 2017
    Posts
    10
    Sorry, forgot to mention I am using Windows 7 64 bit. The pindmd must be using the teensy driver from when it got messed up while installing the teensy originally so that must be my problem. When I originally installed/plugged in the teensy it caused my pindmd to say it was a teensy and it wouldnt work at all, so I had to uninstall the driver and reinstall it.

    To clarify some more, I have no problem connecting to the teensy and uploading code to it, I already have it loaded with the software that I need for it to run my LED strips which is what I want to use it for, its just that when I plug it in, it conflicts with the pindmd.

    there is a picture of the back of the dmd as well here, https://virtuapin.net/index.php?main...roducts_id=231

    Lots of people use this combination with their DMD's so this is a isolated issue. I followed this tutorial http://www.vpforums.org/index.php?showtopic=36156
    and the only issue I have is when its plugged in the dmd doesnt work cause of the driver issue. I think I will remove both of them and try reinstalling again to see if that does anything as well.

    if you click on the install guide on this page and scroll down, it has a link to the USB drivers the pindmd3 uses.
    http://www.pindmd.com/

  14. #14
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    18,657
    Quote Originally Posted by Cue777 View Post
    if you click on the install guide on this page and scroll down, it has a link to the USB drivers the pindmd3 uses.
    http://www.pindmd.com/
    It's an exact copy of PJRC's INF, except they replaced "Copyright (C) 2014 PJRC.COM, LLC." with "Copyright (C) 2015 VirtuaPin pinDMD" in the comments at the top, and MFGNAME="PJRC.COM, LLC." & DEVNAME="Teensy USB Serial" with MFGNAME="VirtuaPin" & DEVNAME="VirtuaPin pinDMD3" in the [Strings] section.

    It even still has "CatalogFile=cdcacm.cat". They didn't even change this name to match "pinDMD3". Of course they aren't providing a corresponding pinDMD3.cat or cdcacm.cat file with a proper signature, like I do with Teensyduino.

  15. #15
    Junior Member
    Join Date
    Nov 2017
    Posts
    10
    Quote Originally Posted by PaulStoffregen View Post
    It's an exact copy of PJRC's INF, except they replaced "Copyright (C) 2014 PJRC.COM, LLC." with "Copyright (C) 2015 VirtuaPin pinDMD" in the comments at the top, and MFGNAME="PJRC.COM, LLC." & DEVNAME="Teensy USB Serial" with MFGNAME="VirtuaPin" & DEVNAME="VirtuaPin pinDMD3" in the [Strings] section.

    It even still has "CatalogFile=cdcacm.cat". They didn't even change this name to match "pinDMD3". Of course they aren't providing a corresponding pinDMD3.cat or cdcacm.cat file with a proper signature, like I do with Teensyduino.
    So then I guess I do have the correct driver for my DMD?

  16. #16
    Junior Member
    Join Date
    Nov 2017
    Posts
    10
    Quote Originally Posted by luni View Post
    The combination of

    VID = 0x16C0 (Vendor: VOTI / PJRC)
    PID = 0x0483 (Product Teensyduino USB_SERIAL)

    normally defines a Teensy running a firmware compiled with Tools | USB_Settings | Serial. If you look at your screenshot of COM 3 and COM 4, you see that both devices have this VID/PID. I can imagine that the driver of the pindmd might get confused if there is another 0x16C0/0x483 device on the bus and it talks to the wrong one. But that's just wild guessing.

    If you don't need the serial connection on your Teensy you can try to compile your sketch with Tools | USB_Settings | Raw_HID. If my guesses are correct it should work then.
    I tried running it in raw_hid and it didnt conflict anymore but it wont work with my pinball software that way. Not sure what to try next.

  17. #17
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    18,657
    Upgrading to Windows 10 (or Mac or Linux) might be your easiest path.

  18. #18
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    3,694
    Quote Originally Posted by Cue777 View Post
    I tried running it in raw_hid and it didnt conflict anymore but it wont work with my pinball software that way. Not sure what to try next.
    If this is your software. You would need to convert your code to use reading/writing to it using the RAWHID protocoll, instead of the Serial read/writes.

    Other options: None overly great

    You might try re-configuring the Com port numbers and see if that helps. If so total kludge!

    If I remember correctly you say the Screen shows up as COM3 and your board shows up as COM4 and the software for the screen appears to try to use your board...
    So what happens if you go into the Device manager and renumber COM3 to maybe Com10? I believe this is in the Advanced options for the device...

    You might contact the vendor and see if they have an idea.

    You might try to see what communications the software is doing to the display board. Is there some handshake that it does at startup? If so maybe there is a way for your board to answer the software and say NOT me.

  19. #19
    Junior Member
    Join Date
    Nov 2017
    Posts
    10
    Upgrading to windows 10 or linux isn't an option, that will cause other problems with the pinball software. I tried changing the com port numbers and it didn't help.
    Last edited by Cue777; 11-08-2017 at 10:24 PM.

Posting Permissions

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