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
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
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!)
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.