# Keyboardio Stopped working, won't update

**URL:** <https://community.keyboard.io/t/keyboardio-stopped-working-wont-update/1477>\
**Category:** Help and Getting Started\
**Created:** [May 7, 2018, 3:14pm UTC](https://community.keyboard.io/t/keyboardio-stopped-working-wont-update/1477 "2018-05-07T15:14:25Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Llamalland](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/llamalland/32/832_2.png) [@Llamalland](https://community.keyboard.io/u/Llamalland)\
**Post date:** [May 7, 2018, 3:14pm UTC](https://community.keyboard.io/t/keyboardio-stopped-working-wont-update/1477/1 "2018-05-07T15:14:25Z")

</div>

So I was trying out using a Shift layer instead of going nuts with shapeshifter and topsyturvy. [Sketch](https://github.com/Llamalland/Keyboardio/blob/master/BAD) compiled just fine, and when I sent it to my keyboardio, it seemed to work ok but the number 4 on keyboardio stayed lit and the keyboard simply didn’t work. Now all attempts to get it to accept any firmware results in this:

> Forcing reset using 1200bps open/close on port COM6  
> processing.app.debug.RunnerException  
> at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:160)  
> at cc.arduino.UploaderUtils.upload(UploaderUtils.java:78)  
> at processing.app.SketchController.upload(SketchController.java:713)  
> at processing.app.SketchController.exportApplet(SketchController.java:686)  
> at processing.app.Editor$DefaultExportHandler.run(Editor.java:2168)  
> at java.lang.Thread.run(Thread.java:748)  
> Caused by: processing.app.SerialException: Error touching serial port ‘COM6’.  
> at processing.app.Serial.touchForCDCReset(Serial.java:107)  
> at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:144)  
> … 5 more  
> Caused by: jssc.SerialPortException: Port name - COM6; Method name - openPort(); Exception type - Port busy.  
> at jssc.SerialPort.openPort(SerialPort.java:164)  
> at processing.app.Serial.touchForCDCReset(Serial.java:101)  
> … 6 more

In case it’s useful for reference, [this](https://github.com/Llamalland/Keyboardio/blob/master/CurrentSketch.ino) is my usual, functioning sketch from which the previously linked one was adapted.

Any idea what’s going on? Hints? Please tell me it hasn’t been bricked somehow!! @jesse

---

<div class="post-metadata">

**Author:** ![algernon](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/algernon/32/4404_2.png) [@algernon](https://community.keyboard.io/u/algernon)\
**Post date:** [May 7, 2018, 3:36pm UTC](https://community.keyboard.io/t/keyboardio-stopped-working-wont-update/1477/2 "2018-05-07T15:36:43Z")

</div>

Don’t worry, it is **very** hard to completely brick a Model01. Take your functioning sketch, compile it, but instead of the normal flashing procedure, pull the Model01 out from the computer, hold the `PROG` button, plug it back in (while continuing to hold `PROG`), and flash then.

You may need to be fast with the flashing, older versions of the boot loader only kept the boot loader in programmable mode for a few (30?) seconds even with `PROG` held this way.

Holding `PROG` while plugging the keyboard in will tell the boot loader not to load the flashed firmware. This way if you have a bad firmware which crashes, and prevents the keyboard from going into progammable mode, you can still flash by just not running the crashing parts.

---

<div class="post-metadata">

**Author:** ![noseglasses](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/noseglasses/32/429_2.png) [@noseglasses](https://community.keyboard.io/u/noseglasses)\
**Post date:** [May 7, 2018, 4:10pm UTC](https://community.keyboard.io/t/keyboardio-stopped-working-wont-update/1477/3 "2018-05-07T16:10:39Z")

</div>

I have read similar questions recently.  
@algernon, maybe your answer might be worth being listed under [Troubleshooting](https://github.com/keyboardio/Kaleidoscope/wiki/Troubleshooting-Firmware-Upload-Issues) in the firmware wiki. Could you possibly just drag and drop your last post there?

---

<div class="post-metadata">

**Author:** ![algernon](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/algernon/32/4404_2.png) [@algernon](https://community.keyboard.io/u/algernon)\
**Post date:** [May 7, 2018, 4:11pm UTC](https://community.keyboard.io/t/keyboardio-stopped-working-wont-update/1477/4 "2018-05-07T16:11:46Z")

</div>

I’ll do that when I’m back home, unless someone beats me to it. 🙂

---

<div class="post-metadata">

**Author:** ![Llamalland](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/llamalland/32/832_2.png) [@Llamalland](https://community.keyboard.io/u/Llamalland)\
**Post date:** [May 7, 2018, 4:31pm UTC](https://community.keyboard.io/t/keyboardio-stopped-working-wont-update/1477/5 "2018-05-07T16:31:26Z")

</div>

Ok, so when doing that, I don’t know how to select the right COM port - it always turns out to be COM6 but it only tries COM1 and COM4… or rather those are the only options it gives me until after the upload attempt when it lets me select COM6, and then I get the same errors as before

---

<div class="post-metadata">

**Author:** ![Llamalland](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/llamalland/32/832_2.png) [@Llamalland](https://community.keyboard.io/u/Llamalland)\
**Post date:** [May 7, 2018, 5:43pm UTC](https://community.keyboard.io/t/keyboardio-stopped-working-wont-update/1477/6 "2018-05-07T17:43:20Z")

</div>

Managed to trick Arduino into using the right port at the right time, so all good, thanks for the help!

---

<div class="post-metadata">

**Author:** ![algernon](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/algernon/32/4404_2.png) [@algernon](https://community.keyboard.io/u/algernon)\
**Post date:** [May 7, 2018, 7:53pm UTC](https://community.keyboard.io/t/keyboardio-stopped-working-wont-update/1477/7 "2018-05-07T19:53:40Z")

</div>

> [@noseglasses](#):
>
> Could you possibly just drag and drop your last post there?

Done!

> **[Troubleshooting Firmware Upload Issues](https://github.com/keyboardio/Kaleidoscope/wiki/Troubleshooting-Firmware-Upload-Issues#issue-help-i-bricked-my-model01-with-bad-firmware)**
>
> Firmware for Keyboardio keyboards and other keyboards with AVR or ARM MCUs. - keyboardio/Kaleidoscope

> [@Llamalland](#):
>
> Managed to trick Arduino into using the right port at the right time, so all good, thanks for the help!

Glad to hear that!
