Flashing Model 01 Firmware -- need help

First time trying to flash the firmware of my Model 01. Doing it on MacOS Catalina from the command line. I followed the instructions, held down Prog, and hit Enter. Here’s the (VERBOSE) output. (And yes, my keyboard is attached to the computer. :slight_smile:)

eniebler-mbp:Model01-Firmware eniebler$ make VERBOSE=1 flash
BOARD_HARDWARE_PATH="/Users/eniebler/Documents/Arduino/hardware" /Users/eniebler/Documents/Arduino/hardware/keyboardio/avr/libraries/Kaleidoscope/bin//kaleidoscope-builder flash
To update your keyboard’s firmware, hold down the ‘Prog’ key on your keyboard.

(When the ‘Prog’ key glows red, you can release it.)

When you’re ready to proceed, press ‘Enter’.

Flashing your keyboard:

Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding

avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_drain(): read error: Device not configured
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
Found programmer: Id = “”; type =
Software Version = .; Hardware Version = .
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: buffered memory access not supported. Maybe it isn’t
a butterfly/AVR109 but a AVR910 device?
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: leave prog mode
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: exit bootloader
avrdude: ser_close(): can’t reset attributes for device: Device not configured

avrdude done. Thank you.

avrdude: ser_open(): can’t open device “/dev/cu.usbmodemkbio011”: No such file or directory

avrdude done. Thank you.

make: *** [flash] Error 1

Hello @eric_niebler,

Welkom to the forum!

Quick question have you been able to flash using the Arduino IDE? And when running AVRdude do you see the program button glowing red?

The first time I tried flashing from the command line I ran into an issue. To get the keyboard in to programming mode the keyboard needs to have the program button pressed during boot. The Arduino IDE actually sends some data to reboot the arduino before it starts programming, AVR dude does not do this, so the controller never gets in to programming mode.

The simplest method I used was using a second keyboard. I disconnected my Model01 and held the prog button while reconnecting it to get it into programming mode and started AVR dude using the other keyboard.

As far as I know the Arduino IDE opens a serial connection on a specific baudrate which causes the Arduino to reboot, I have seen some example wrapper scripts for AVRdude, but I could not get those to work.

First, thank you for taking the time to reply. Holding prog while plugging in the laptop sounded like it would work. It didn’t, sadly. I do see the prog key glow red, but the command-line process fails with the same error. I’ll have to try installing the Arduino IDE next. I’ll report back.

I tried with the Arduino IDE and had no luck. I got up to “Step 2. Build the Firmware” on https://github.com/keyboardio/Kaleidoscope/wiki/Install-latest-firmware, and I got an error:

Error compiling for board Keyboardio Model 01.
The current selected board needs the core ‘arduino:arduino’ that is not installed.

I Googled and it looked like I needed to install the “Arduino AVR Board”, so I did that, but it didn’t make the error go away.

Sad panda.

Incidentally, I checked the permissions on the keyboard device and I see this:

eniebler-mbp:Model01-Firmware eniebler$ ls -l /dev/tty.usbmodemCkbio01E1
crw-rw-rw- 1 root wheel 18, 130 Apr 9 17:22 /dev/tty.usbmodemCkbio01E1

I suspect permissions problems were preventing the command line tool from completing successfully. I installed Chrysalis, ran it as root, and tried to flash the firmware that way, but Chrysalis just hangs at the “downloading firmware” part. I also tried not running as root and got the same result.

Everything I have tried has failed.

What version og MacOS are you running? Flashing in Catalina was broken until version 10.15.2. The errors looks similar to the errors people had before that version

1 Like

Yeah, Catalina, as I mentioned in my original post. I’m on MacOS 10.15.1, and it doesn’t look like 10.15.2 is available for me yet. Maybe I’ll try again after the update.

After upgrading my MacOS to 10.15.4, flashing the firmware with Chrysalis went flawlessly. ++awesome. Thanks folks.

EDIT: And hooray, it fixed a “bug” in my favorite LED effect. Now my keystrikes light up yellow and fade to red, instead of the other way around, which – if they are simulating heat and cooling – is all wrong, physically speaking.

1 Like