Skip to content

Flashing a new bootloader

Tim Neumann edited this page Nov 24, 2016 · 4 revisions

In general, you should never have to reflash the Bootloader on a Keyboardio Model 01. But, sometimes "should never have to" becomes "absolutely must"

What you'll need

  • Keyboardio Model 01 (prototype)
  • MicroUSB cable
  • Phillips screwdriver
  • Arduino Micro
  • 6 strands of female-to-female DuPont wire
  • A computer running The Arduino IDE 1.6

Theory

We're going to use the Arduino Micro as a circuit programmer for the Model 01. To do this, we'll flash a special sketch onto the Micro and then use that to rewrite the bootloader on the Model 01.

Step 1: Install and configure the Arduino IDE with Keyboardio drivers:

Follow the instructions in the Readme.

Step 2: Making the programmer

  1. Connect your Arduino Micro to your computer with the MicroUSB cable
  2. Start up the Arduino IDE on your computer
  3. Open this sketch in the Arduino IDE: https://raw.githubusercontent.com/obra/KeyboardioModel01TestPlan/master/firmware/src/ArduinoISP/ArduinoISP.ino
  4. Flash the sketch to the Arduino Micro

Step 3: Disassemble the Model 01

  1. Disconnect your Model 01 from the computer

  2. Place a towel on your work surface. The keys on the Model 01 prototypes have somewhat delicate paint and grinding the keycaps into your desk could make some of the paint flake off.

  3. Gently place the Model 01 upside down on top of the towel. You don't have to disconnect the two halves of the keyboard from each other or remove the metal center bar.

  4. Remove the 5 Phillips screws from the right hand side of the keyboard (as seen from above). If you're not sure you're opening the correct half of the keyboard, make sure you're opening the half with the USB port.

The underside of a Model 01

  1. Flip the whole keyboard back over, so it's resting on its feet. For now, be careful to hold the wood you just unscrewed in place.

  2. Gently grasp the outside edge of the left hand wood enclosure and shake it slightly as you pull up, pushing down on (roughly) the Function and D keys to start to pop the wood top off.

  3. As you remove the wood, make sure the interhand-connection RJ12 jack isn't stuck to the wood. If it is, tug down on the black jack. (Never grab that jack by its wires.) If it won't budge, drop email to team@keyboard.io.

  4. Set the wood enclosure and screws aside.

Step 4: Connecting the programmer to the Model 01

On the edge of the Model 01, you'll see a six pin header:

You'll need your six strands of Female-Female DuPont cable. The exact colors don't matter, but here, we'll use Red, Orange, Yellow, Black, Grey and White.

On the Model 01, plug the Yellow, Orange and Red wires into the top row of the two row 6 pin ICSP connector as pictured:

Also, on the Model 01, plug the Black, White and Grey wires into the bottom row of pins on the ICSP connector. The red wire should be next to the black wire, the white wire should be next to the orange wire and the grey wire should be next to the yellow wire.

Next, you'll plug the 6 wires into the Arduino Micro you configured as a programmer in an earlier step.

Five of the wires will be plugged into the 6 pin ICSP connector on the top of the board. The sixth will be plugged into pin 10 on the bottom of the board.

With the 6 pin connector side of the board up and the USB connector facing away from you, slide the grey wire onto the top left pin. Plug the yellow wire onto the top right pin Plug the white wire onto the middle left pin. Plug the Orange wire onto the middle right pin. Plug the Red wire onto the bottom right pin. The bottom left pin should be empty.

Plug the Black wire onto Pin #10 on the bottom side of the board.

Step 5: Flashing a new bootloader onto the Model 01

  1. Connect the Arduino Micro to your computer with the MicroUSB cable.
  2. If it's not already running, launch the the Arduino IDE
  3. Select "Keyboardio model 01" from the "Boards" menu in the "tools" menu.
  4. Select "Arduino as ISP" from the "Programmer" menu in the "tools" menu.
  5. Select "Burn Bootloader" from the Tools menu.

If, after 3 minutes, the Arduino IDE doesn't report "Done burning bootloader", contact team@keyboard.io for more help.

Your Model 01 should now have the latest bootloader, but no keyboard firmware.

Step 6: Reprogramming the Model 01

  1. Disconnect the 6 pin ICSP cable from the left half of your Model 01.
  2. Connect the MicroUSB cable to your Model 01.
  3. Follow the 'regular' flashing instructions: [Flashing the firmware]

Testing to make sure the programming worked

  1. Type something. Be sure to hit keys on both hands.

If everything looks good, it's time to reassemble your Model 01.

Step 7: Reassembling the Model 01

  1. Gently slide the wood enclosure back down on top of the left hand side of your keyboard. Pay particular attention to the black RJ12 connector and the wires feeding into it. Make sure not to crush any of the wires as you slide the enclosure down.

  2. Flip your Model 01 over so that the keys are resting on the towel that's still on your work surface.

  3. One by one insert the screws you removed from the enclosure during disassembly, tightening each only enough that it grabs hold on the enclosure.

  4. Once all screws are started, tighten each of them. They should end up tight, but no so tight that they're hard to remove. Don't use an electric screwdriver.

All done!

Clone this wiki locally