Answers.Body: <p>New here but I just had the exact same problem you did, I can't be 100% sure this solution will work for you, but given that I also used the ubuntu repo version of the software I imagine it will.</p>
  
  <p>Around the web I found the syntax you use -Susb:/dev/usb/legousbtower1...but I don't think this actually works (beyond the -Susb part).</p>
  
  <p>What I ended up doing was simply using -Susb, but the <em>important</em> part is that you not have legousbtower1 at all, but rather legousbtower0. To achieve this you can remove any usb device that gets enumerated before the usb tower from its slot, then reconnect the usb tower before reconnecting the other device. (it's probably a keyboard or a mouse, and it will be shown in the /dev/usb/ directory, possibly as a usbhid or human interface device). If this is not possible then you can probably find another way to enumerate it first, but that is beyond the scope of my answer.</p>
  
  <p>The following is <strong>untested</strong>:
  My guess would be that the patch applied in the article here <a href="https://pbrick.info/2013/10/configuring-the-lego-usb-tower-on-linux/" rel="nofollow noreferrer">https://pbrick.info/2013/10/configuring-the-lego-usb-tower-on-linux/</a> does allow for the syntax you tried, but the version built for the repo simply hardcodes the path to /dev/usb/legousbtower0.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-05-05T03:24:16.390Z
Answers.LastActivityDate: 2018-05-07T08:12:26.827Z
Answers.LastEditDate: 2018-05-07T08:12:26.827Z
Answers.UserDisplayName: Drountian
Answers.Body: <p>Just as an aside you can also do the following:</p>
  
  <p>sudo ln -s /dev/usb/legousbtower1 /dev/usb/legousbtower0</p>
  
  <p>That worked for me, and my challenge now is that there is no firmware :-)</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-14T22:07:34.927Z
Answers.LastActivityDate: 2019-02-14T22:07:34.927Z
Answers.UserDisplayName: Paul Duncan
Answers.Body: <p>All this above wasn't working for me. A short analysis with strace command showed that nqc called with -Susb:/dev/usb/legousbtower0 wants to open 
  /dev/legousbtower0. Though a symbolic link solved the problem. 
  I'm using fedora30, nqc version 3.1 r6.</p>
  
  <p>PS: try to use -S/dev/usb/legousbtower0 wasn't successfull because then nqc
  seems to believe that device is a normal serial device.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-05-31T11:14:02.847Z
Answers.LastActivityDate: 2019-05-31T11:14:02.847Z
Answers.UserDisplayName: Gert Meng-Wacker
Body: <p>I am trying to use my old RCX 2.0 set on Linux (Xubuntu). The problem is that when I try to download the (official) firmware into the RCX via the command:</p>
  
  <pre><code>nqc -Susb:/dev/usb/legousbtower1 -firmware ./firm0332.lgo 
  </code></pre>
  
  <p>I get the error "Could not open serial port or USB device". Note that:</p>
  
  <ul>
  <li>There is a module for the USB tower corresponding to my Linux kernel,</li>
  <li>The USB tower is recognized as <code>/dev/usb/leogusbtower1</code>,</li>
  <li>I changed the permissions with <code>sudo chmod 666 /dev/usb/leogusbtower1</code>,</li>
  <li>When I do <code>echo "Hello!" &gt; /dev/usb/legousbtower1</code> the tower blinks,</li>
  <li>My version of NQC is 3.1 r6 from the Ubuntu repositories,</li>
  <li>The tower works like a charm in a Windows XP virtual machine.</li>
  </ul>
  
  <p>Because of the list above, I don't understand why I can't communicate with the RCX yet. Can somebody help me? Thank you.</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2018-03-13T15:42:48.177Z
Comments.Text: what happens if you leave off the `usb:` prefix?
Comments.UserDisplayName: David Lechner
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2018-03-14T19:31:43.813Z
Comments.Text: @David Lechner: Thanks, I still get the error with the prefix removed, I don't understand.
Comments.UserDisplayName: xuanphong
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2018-03-16T06:12:01.600Z
Comments.Text: I use `sudo chmod 666 /dev/usb/legousbtower0` and `nqc -Susb -firmware firm0332.lgo`. What about to try `-Susb` only
Comments.UserDisplayName: TomasKulhanek
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2018-03-16T20:02:39.187Z
Comments.Text: @TomasKulhanek: Thanks, but still not working :( I really don't understand.
Comments.UserDisplayName: xuanphong
Tags: <mindstorms><programming><rcx>
Title: Could not open serial port or USB device, RCX on Linux
UserDisplayName: xuanphong
ThreadText: # Could not open serial port or USB device, RCX on Linux
  
  (Asked by: username_0 on 2018-03-08)
  
  I am trying to use my old RCX 2.0 set on Linux (Xubuntu). The problem is that when I try to download the (official) firmware into the RCX via the command:
  
  ```
  nqc -Susb:/dev/usb/legousbtower1 -firmware ./firm0332.lgo 
  
  ```
  
  I get the error "Could not open serial port or USB device". Note that:
  
  * There is a module for the USB tower corresponding to my Linux kernel,
  * The USB tower is recognized as `/dev/usb/leogusbtower1`,
  * I changed the permissions with `sudo chmod 666 /dev/usb/leogusbtower1`,
  * When I do `echo "Hello!" > /dev/usb/legousbtower1` the tower blinks,
  * My version of NQC is 3.1 r6 from the Ubuntu repositories,
  * The tower works like a charm in a Windows XP virtual machine.
  
  Because of the list above, I don't understand why I can't communicate with the RCX yet. Can somebody help me? Thank you.
  
  **Tags:** mindstorms, programming, rcx
  
  > **Comments:**
  > **username_1**: what happens if you leave off the `usb:` prefix?  
  > **username_0**: @username_1: Thanks, I still get the error with the prefix removed, I don't understand.  
  > **username_2**: I use `sudo chmod 666 /dev/usb/legousbtower0` and `nqc -Susb -firmware firm0332.lgo`. What about to try `-Susb` only  
  > **username_0**: @username_2: Thanks, but still not working :( I really don't understand.  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_3 on 2018-05-05. Score: 2 | Accepted answer
  
  New here but I just had the exact same problem you did, I can't be 100% sure this solution will work for you, but given that I also used the ubuntu repo version of the software I imagine it will.
  
  Around the web I found the syntax you use -Susb:/dev/usb/legousbtower1...but I don't think this actually works (beyond the -Susb part).
  
  What I ended up doing was simply using -Susb, but the *important* part is that you not have legousbtower1 at all, but rather legousbtower0. To achieve this you can remove any usb device that gets enumerated before the usb tower from its slot, then reconnect the usb tower before reconnecting the other device. (it's probably a keyboard or a mouse, and it will be shown in the /dev/usb/ directory, possibly as a usbhid or human interface device). If this is not possible then you can probably find another way to enumerate it first, but that is beyond the scope of my answer.
  
  The following is **untested**:
  My guess would be that the patch applied in the article here <https://pbrick.info/2013/10/configuring-the-lego-usb-tower-on-linux/> does allow for the syntax you tried, but the version built for the repo simply hardcodes the path to /dev/usb/legousbtower0.
  
  
  ---
  
  ### Answer by username_4 on 2019-02-14. Score: 4
  
  Just as an aside you can also do the following:
  
  sudo ln -s /dev/usb/legousbtower1 /dev/usb/legousbtower0
  
  That worked for me, and my challenge now is that there is no firmware :-)
  
  
  ---
  
  ### Answer by username_5 on 2019-05-31. Score: 1
  
  All this above wasn't working for me. A short analysis with strace command showed that nqc called with -Susb:/dev/usb/legousbtower0 wants to open
  /dev/legousbtower0. Though a symbolic link solved the problem.
  I'm using fedora30, nqc version 3.1 r6.
  
  PS: try to use -S/dev/usb/legousbtower0 wasn't successfull because then nqc
  seems to believe that device is a normal serial device.
  
  
  ---
  
  