"Can't find Model 01 serial port name" on macOS

Then I have no idea what you mean when you say “maybe it unconditionally replaces the last character with a 1, and we’re just lucky that it doesn’t change CDkbio01…”

Aha! I just did a test, changing the HID_::getShortName() return value to kbio02 (it should be kbio01), and found this:

$ /usr/sbin/system_profiler SPUSBDataType
USB:

    USB 3.0 Bus:

        Model 01:

          Product ID: 0x2301
          Vendor ID: 0x1209
          Version: 1.00
          Serial Number: CDkbio02
          Speed: Up to 12 Mb/sec
          Manufacturer: Keyboardio
          Location ID: 0x14400000 / 10
          Current Available (mA): 500
          Current Required (mA): 500
          Extra Operating Current (mA): 0

$ ls /dev/cu.usbmodem*
/dev/cu.usbmodemCDkbio01

…so macOS seems to be simply changing the final character in the device filename to a 1, regardless of what it was. Because we normally expected it to be a 1, anyway, we just hadn’t noticed yet.

Ckbio01E -> Ckbio011

CDkbio01 -> CDkbio01

CDkbio01 -> CDkbio01

Does that make sense?

Incidentally, this also explains why, when the Location ID was used when I made getShortName() return a longer string, It also ended in a 1:

0x14400000 -> 1441

It’s also consistent with what @blake saw originally in this topic:

CHIDHLE -> CHIDHL1
1 Like

Am I correct that since the Kaleidoscope#300 PR was approved several hours before I cloned the repo, I shouldn’t have this issue? Because I do. (And yes, I have High Sierra: OS X 10.13.3.)

    Model 01:

      Product ID: 0x2301
      Vendor ID: 0x1209
      Version: 1.00
      Serial Number: Ckbio01E
      Speed: Up to 12 Mb/sec
      Manufacturer: Keyboardio
      Location ID: 0x00300000 / 4
      Current Available (mA): 500
      Current Required (mA): 500
      Extra Operating Current (mA): 0

crw-rw-rw- 1 root wheel 21, 5 Feb 22 14:56 /dev/cu.usbmodemCkbio011

±o AppleUSBXHCI Root Hub Simulation@00000000 <class AppleUSBRootHubDevice, id 0x100003caa, registered, matched, active, busy 0 (0 ms), retain 12>
±o USB audio CODEC@00400000 <class AppleUSBDevice, id 0x100003cad, registered, matched, active, busy 0 (3 ms), retain 19>
| “PortNum” = 4
±o USB Receiver@00100000 <class AppleUSBDevice, id 0x100003cce, registered, matched, active, busy 0 (22 ms), retain 28>
| “PortNum” = 1
±o Model 01@00300000 <class AppleUSBDevice, id 0x100005036, registered, matched, active, busy 0 (11 ms), retain 23>
“PortNum” = 3
"USB Serial Number" = “Ckbio01E”

If what you did was clone Arduino-Boards like this:

$ git clone --recursive https://github.com/keyboardio/Arduino-Boards.git

…then I would expect you to still have that issue. You’ll need to update the Kaleidoscope submodule to get the fix:

$ cd Arduino-Boards/libraries/Kaleidoscope

$ git checkout master
2 Likes

Since my original clone command was the one from the README,
git clone --recursive https://github.com/keyboardio/Arduino-Boards.git hardware/keyboardio/avr

my stuff wasn’t at the path you gave, so I translated the path in your instructions to
cd hardware/keyboardio/avr/libraries/Kaleidoscope
from a starting point of ~/Documents/Arduino/

And that worked, thank you! I was able to flash the keyboard after that. (Excitement!)

2 Likes

Sorry about giving you the wrong path! I’m used to keeping multiple clones around, and switching between them with a little shell script that updates a symlink, so I don’t pay that much attention to the directory names anymore…

It wasn’t a problem for me, but I wanted to post the right path for anyone else who runs into the issue.