Serial connection not working

Hi, I got my factory built jumperless last week. I’ve been trying to get it up and running since receiving it. I’m using a Windows 11 PC. What I see is:

  1. It powers on sucessfully, and displays the same LEDs as I see in some of the photos here
  2. I can flash a new firmware.uf2 image successfully using the documented steps
  3. Using jlctl list-ports I see:
.\jlctl.exe list-ports
╭───────────┬───────────┬───────────────────╮
│ Port Name ┆ USB ID    ┆ Role              │
╞═══════════╪═══════════╪═══════════════════╡
│ COM12     ┆ 1d50:acab ┆ JumperlessPrimary │
├╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
│ COM13     ┆ 1d50:acab ┆ JumperlessArduino │
╰───────────┴───────────┴───────────────────╯
  1. Using jlctl net list
C:\Users\ian_4\jlctl\target\release>.\jlctl.exe net list
[2024-02-10T08:01:51Z INFO  jlctl::device_manager] Connected to jumperless on port COM12
[2024-02-10T08:01:53Z ERROR jlctl::device_manager] Error communicating with device: "Timeout while receiving reply"
Error: "Timeout while receiving reply"

If I try to talk directly to COM12 (JumperlessPrimary) using putty, the connection is totally silent. I believe I should see the menu and be able to execute commands directly.

I’ve tried with two PCs with the same result.

Is there anthing I can do to try to diagnose the issue? I have access to a scope/logic analyser
thanks

1 Like

Hey Ian. Welcome!

Did you try to connect to COM13 with PuTTY? My guess as to what’s happening is that Windows usually assigns the lowered numbered port to the Jumperless and the higher to the Arduino, whereas on Mac and Linux the system they use to assign port numbers is deterministic. I need to come up with a different way to assign those on Windows so this will stop happening.

Anyway, if connecting to COM13 shows a menu, then the workaround is assigning the port manually in jlctl by passing a --port argument before whatever command.

.\jlctl.exe --port COM13 server

Let me know what happens and if it doesn’t work, we’ll try something else.

Also just curious, does JumperlessWokwiBridge work for you? If it’s finding the right port on your computer then I’ll know that whatever I’m doing there must work and we can port that logic over to jlctl.

Have a great ** checks world clock ** uhh, middle of the night!

Thanks for the quick response, that was indeed the problem, the jumperless is working great now. Both my windows PCs had assigned the port incorrectly. For reliably identifying the primary port couldnt you just send a command down the serial and parse what comes back (after the check for the Jumperless USB pid & vid)? Maybe you could add a firmware version string to the menu to make parsing easier.

With JumperlessWokwiBridge (I just downloaded the new version), this seems to have the same issue:

PS D:\jumperless> & '.\JumperlessWokwiBridge (1).exe'


1: COM9 [WCH-Link SERIAL (COM9)]
2: COM12 [USB Serial Device (COM12)]
3: COM13 [USB Serial Device (COM13)]




Autodetected Jumperless at COM12
Autodetected USB-Serial at COM13


Would you like to update your Jumperless with the latest firmware? Y/n

btw I tried the new firmware update feature, it gets to the ‘Waiting for mounted drive…’ step then hangs. If I unplug the jumperless usb cable, and plug it back in holding the flash button, JumperlessWokwiBridge detects the drive and continues on with the flashing:

Would you like to update your Jumperless with the latest firmware? Y/n


y

Downloading latest firmware...
Putting Jumperless in BOOTSEL...
Waiting for mounted drive...                 <--- jumperless restarted in flash mode here
Found Jumperless at E:\...
Copying firmware.uf2 to Jumperless...

Jumperless updated to latest firmware!


Choose from saved projects or paste the link to you Wokwi project:


1       test            https://wokwi.com/projects/365421666018061313

2       test1           https://wokwi.com/projects/389106853917599745
1 Like

I’m glad that (mostly) worked out. It looks like it’s the same issue, it’s just assuming the Jumperless is at the wrong port.

Also, that is a fucking brilliant idea! I was going to try to get my Windows machine to assign COM ports in a different order to try to fix it, but just doing a call-response is soooo much simpler and robust.

I’ve been putting off adding a firmware version to the code because I’d need to update it manually every release and I know I’d forget. But the firmware is stable enough now that I think it’s time to add that.

And then I could just have the update run automatically when a newer version is available, I really don’t like having to ask the user so many questions at startup. I might finally add a stored config file for all this now that I’m slightly less bad at python.

I’ll hack away at it more today and maybe have a fix/update out by tomorrow.

Anyway, thanks for the idea and I hope you’re loving your Jumperless.