Windows 7: COM Port for Model 01 not showing up

What other ways are there to flash the firmware hex file on windows? Other than using the Arduino IDE/avrdude or Keyboardio’s Makefile, both of which don’t work for me. It’s not so easy beacuse the flashing software has to be configured to work with the Keyboardio keyboard, and there’s no documentation on how to do that afaik.

I tried going down the linux in a virtualbox route but with no luck (see that firmware in ubuntu thread).

Edit: is there any way I can make sure it’s not my keyboard or usb c cable that’s broken? Don’t have a spare cable atm unfortunately.

If you’re able to type, it’s not your USB cable. It’s also not likely to be your keyboard. There’s something up, either with Windows 7 in general or with your Windows 7 box in particular that’s causing the issue.

Both our Makefiles and the Arduino core use avrdude, which is the tool we’ve been using for everything. And until we get the com port issue sorted out, nothing else is likely to work :confused:

I’m building out a machine to run Windows 7. Given that it’s already 1 AM, my guess is I won’t have a working environment to debug it with until sometime tomorrow. Then, I should be able to get to the bottom of this relatively quickly.

Famous last words?

5 Likes

@rumpel: I’ve got good news and bad news. The good news is that I’ve built a Windows 7 box to replicate your issue and work to resolve it. The bad news is that I’ve replicated your issue. :wink:

It took about 8 reboots over about 6 hours, but now I’ve got something I can test on.

1 Like

I believe what we need to do is to put together an .inf file for Windows 7 (and possibly Windows 8) to associate our USB VID/PID with the right serial driver. This isn’t a game I’ve played before, but it’s something that looks doable.

EDIT: This is what we need to do: https://forum.arduino.cc/index.php?PHPSESSID=e42t2fhijp2ksh2q9vvr2v7po0&topic=415917.msg2869784#msg2869784

1 Like

Sorry. I think it takes an admin to break a subthread out into a new topic. I’ll do that now. I’m deep into trying to triage the Windows 7 issue @rumpel raised.

1 Like

I just went through the Windows 10 process, and COM3 was the only option the Arduino IDE gave me. When I pushed firmware at that port, it flashed the board.

Are you certain those ports were busy with other components?

1 Like

Absolutely sure. I also tried reassigning the keyboard to other unused COM ports, including port 1 (after freeing it up).

1 Like

@Jennigma - This is something Microsoft “fixed” in Windows, either in 8.1 or 10. For Windows 7, we need to provide a sort-of-custom serial port driver definition. I 100% confirm @rumpel’s issue and it’s near the top of my engineering priority list

@jesse I’m very glad to hear that! :slight_smile:

Excellent. I was surprised on Windows 10 to only see “COM3”, not the Keyboardio friendly name I’ve seen on the mac and linux installs I’ve done.

@rumpel, please know I meant absolutely no offense asking about the COM3 thing. Trust me, it took me a minute of reasoning my way through things to decide to pull the trigger on pushing firmware at an unlabeled port. I know that the firmware won’t push without hardware confirmation, and also more or less only set up this PC to test this process. (though it’s now also a good Steam gaming machine. :stuck_out_tongue: ) So I had nothing to lose, and every reason to assume it would be a harmless failure if it happened.

And believe me, I’ve gone through hours and days of fighting tech problems only to find out the issue was a bad cable, something not plugged in, or something not properly activated. I appreciate the people who tell me to check the plug and push the key. I hope you understand it was in that spirit that I asked!

At least part of that may be that Windows is using a generic driver.

1 Like

Yup. Spent half my day on researching and triaging:

Windows 10

Has a built-in generic driver.

Windows 8

Requires a custom signed driver inf file

Windows 7

Requires a custom driver inf file.


I have an untested custom driver inf file. I need to test it tomorrow on Win 7. If it works ok, I’ll post it for @rumpel to test. If that works, we’ll buy a code signing certificate and post it publicly for Windows 7 and Windows 8 users to finally be able to easily flash their keyboards.

4 Likes

Sounds good to me. Will test it on both my desktop pc and laptop.

1 Like

@rumpel - @gaye:
I have now successfully flashed new firmware onto a Model 01 from Windows 7. Multiple times, even.

http://fsck.com/~jesse/tmp/2017-10-26/3c2b28fa-89bb-4b3c-a06b-5ca265f6d285/keyboardio-windows-drivers.zip

I installed a brand new Windows 7 machine. I brought it up to date on patches.
I installed the Arduino IDE.
I downloaded the zip file above.
I unzipped the zip file.
I right-clicked on model01.inf
I selected Install.
I said ‘OK’ to the scary dialog.
I didn’t see anything happen, so I did it again. But apparently, there’s no feedback that it was successful.
I plugged in the Model 01.
I opened the Arduino IDE
I added keyboardio support, per https://github.com/keyboardio/Kaleidoscope/wiki/Install-Arduino-support-on-Windows
I quit the Arduino IDE and restarted it.
I selected the Model 01 from the ‘Boards’ menu
I selected the Model 01’s port (showed for me as COM3 (Keyboardio Model 01))
I picked “Model01-Firmware” from the ‘File -> Examples’ menu
I clicked the Upload button.
I held down the ‘Prog’ key.
It failed the first time.
I clicked Upload again.
I held down the Prog key.
It worked.
And kept working.

I’d love to know if this works for any other Windows 7 user. If it does, I’ll get the package signed, so it can also work for Windows 8 users.

2 Likes

Hmm it’s still not working for me. Same old problem: can’t open device “.\COM3”: The system cannot find the file specified.

Since the new driver’s manufacturer name is now “Keyboardio”, I’m pretty sure your new driver was installed correctly.

Going to try it at home on my desktop pc tonight.

Let’s hope it works for @Gaye

I’m guessing you plugged the keyboard in before you started installing the driver, or it would not have worked, and that you unplugged they keyboard and plugged it in again for the changes to take effect after the installation.

I got this message:

Archiving built core (caching) in: C:\Users\Gaye\AppData\Local\Temp\arduino_cache_894122\core\core_keyboardio_avr_model01_0b6920658b13cf14b55063d4a1e847f8.a
Sketch uses 18152 bytes (63%) of program storage space. Maximum is 28672 bytes.
Global variables use 1659 bytes (64%) of dynamic memory, leaving 901 bytes for local variables. Maximum is 2560 bytes.
avrdude: ser_open(): can’t set com-state for "\.\COM4"
An error occurred while uploading the sketch

I get this when I don’t hold prog while uploading, but without the “error occurred while uploading the sketch” part.

Maybe try pressing and holding prog before you hit “upload”, and release only after you see the “avrdude done. Thank you” line?

Edit: Also, once i get that error, i can’t get rid of it until i either unplug my keyboard and plug it in again, or restart Arduino.

I don’t get an “avrdude done” message. It just times out.

1 Like