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.
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.
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.
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
Edit 1: So the debugging goes on and on…
I turned off the real-time protection of my MS Security Essentials to make sure its not the anti virus software that’s somehow causing this issue. Didn’t help.
I’ve tried unplugging it, uninstalling it, reloading the driver, quitting IDE and uninstalling it and reloading it and starting from scratch. It’s a stinker.
Turn that back on! It’s not likely to be related and can be…very helpful on today’s internet.
Now that I’ve verified it works ok with the flow I described on a freshly installed system, I’m happy to try to make it not work right by doing things out of order. I’m just hoping that my Win7 System Restore save points work right this time, because the 2-4 hour lag time to get to a known system state by reinstalling is…frustrating.
A good imaging tool can be a much better solution than System Restore.
ShadowProtect SPX is fast, easy to use, reliable, and has an option to create a bootable disk to restore the system partition. It’s images can be mounted in VMWare. And you can mount an image and even write to it. It has a 30-day trial which should get you through this debugging session.
Image for Windows/DOS is another good imaging tool. It’s a little more “low-level” and not as “fancy” as ShadowProtect. But it is much cheaper if you should decide you want to purchase a copy after the 30-day trial. And still a solid choice. The same company makes BootIt Bare Metal which is a killer multi system boot manager. You might find it useful to be able to boot your test system into any of a number of different OSes. I’ve been using BootIt for 10 years or so now.
I’ve used all the mentioned products and can highly recommend them.
If you are still working on this when my Model 01 arrives on Tuesday, I’d be happy to jump in and help where I can. I’m a pretty decent troubleshooter and love a good challenge.
Much appreciated. Right now, all I really need is something to take a full system snapshot immediately after I get a fully patched install, that I can reimage onto the disk at a later date after I get things messed up.
Most of my hardware…is too new for Win 7, so I’ve been working with Bootcamp on a 2014 Macbook Air. Thinking about it, I suppose I could even just size the windows partition small enough and DD it to a backup file on OSX. But I’ll have a look at the tools you recommend.
I managed to reproduce @rumpel’s setup, by doing a fresh install, installing arduino, plugging in the keyboard and letting it fail to find a driver. Then, I managed to fix things. Here are the steps I went through.
Open the Device Manager and locate “model 01” under other devices. Observe the yellow warning note on it.
Click “Close”, then disconnect your keyboard, quit the Arduino IDE, reconnect the keyboard and reconnect the Arduino IDE.
I think that this procedure will overwrite any bad drivers you ended up getting installed in the process of figuring this out. @rumpel, @gaye, tell me how you do.
I’m also on Win7, and my board’s supposed to be here tomorrow, so will let you know. Hopefully it’ll be figured out by the time Mark gets his board, but if not, sic him on it - he’s not kidding about being a good troubleshooter. (We work together.)
@kajsa.anderson - If you install the drivers before you connect the board for the first time, you should have no issue. Either way, I look forward to your report.
This is the initial situation: I uninstalled the Model01’s driver and
restarted the machine. I’ve opened the device manager and am about to
install the new driver. At the 30 seconds mark, I unplug the keyboard and
plug it in again. Then I start Arduino and upload the sketch. I press and hold prog before I click “upload”, and release prog after the error message.
I woke up to an awesome notification that my keyboardio delivery has been rescheduled from this Tuesday to TODAY! I’m at an event all day for the high school robotics team I mentor for… But when I get home this evening I will do some testing as well. @jesse 's process to fix the issue seems sound.