# Keyboardio Model 01 Firmware _The default firmware for the Keyboardio Model 01_

This is a quick start guide for folks who are familiar with Arduino and prefer to use the command line. For everyone else: * [Check out the wiki](https://github.com/keyboardio/Kaleidoscope/wiki/Keyboardio-Model-01-Introduction) for a more in depth introduction to how the Model 01 keyboard and the Kaleidoscope firmware work. * If you have questions, [The community forums are happy to help!](https://community.keyboard.io/)

# Download and install ## Set up the Arduino IDE Setup the Arduino IDE on your system. Make sure you install at least version 1.6.10, since older version may not support all required features. ### macOS On macOS, install the Arduino IDE using [homebrew](http://brew.sh/) [cask](https://caskroom.github.io/) with `brew cask install arduino` or download the application from [the official website](https://www.arduino.cc/en/Main/Software) and move it to your `/Applications` folder. ### Linux On Linux, your distribution's package manager probably includes the Arduino IDE, but it may be an out of date version. If your distribution installs a version of Arduino before 1.6.10, you'll need to install the Arduino IDE following the instructions [on the wiki](https://github.com/keyboardio/Kaleidoscope/wiki/Install-Arduino-support-on-Linux). If you install Arduino into some place that's /not/ `/usr/local/arduino`, you'll need to set the `$ARDUINO_PATH` environment variable to the directory containing the `arduino` and `arduino-builder` binaries. ## Create and navigate to the Arduino Sketchbook directory ### MacOS ```sh mkdir -p $HOME/Documents/Arduino cd $HOME/Documents/Arduino ``` ### Linux ```sh mkdir -p $HOME/Arduino cd $HOME/Arduino ``` ## Download hardware platform, including library source code ```sh mkdir -p hardware ## then clone the hardware definitions to make them available to the arduino environment git clone --recursive https://github.com/keyboardio/Kaleidoscope-Bundle-Keyboardio.git hardware/keyboardio ```` ## Download the Model 01 Firmware ```sh git clone https://github.com/keyboardio/Model01-Firmware.git ``` # Build and flash the firmware Before you begin, make sure your Model 01 is connected to your computer. ### Option 1: From the command line ```sh cd Model01-Firmware make flash ``` When the builder tells you to hit Enter to continue, hold down "Prog" in the top left corner of your keyboard and hit Enter. ### Option 2: From the Arduino IDE Open the sketch you wish to flash (for example, `Model01-Firmware.ino`). Click the Upload button or press `Ctrl-U`. Hold down the "Prog" key in the top left corner of your keyboard, until the compile finishes and the upload begins. # Start to customize the firmware You can customize your keyboard's key layout and LED effects by modifying the `Model01-Firmware.ino` file in the same directory as this README. Model01-Firmware.ino is a computer program written in 'Arduino C'. You can find documentation about Arduino C at https://arduino.cc. # Updating the firmware and libraries From time to time, you may want to pull the latest version of this firmware from GitHub. To do that, navigate to the Model01-Firmware directory in your shell and pull the latest code. ```sh cd Model01-Firmware git pull ``` After that, you'll want to update the Kaleidoscope libraries. ### MacOS ```sh cd $HOME/Documents/Arduino/hardware/keyboardio make update-submodules ``` ### Linux ```sh cd $HOME/Arduino/hardware/keyboardio make update-submodules ``` # Getting help As you start to explore customization of your keyboard's firmware, the community at https://community.keyboard.io can often be a valuable resource. # Thanks! <3 jesse [![Build Status](https://travis-ci.org/keyboardio/Model01-Firmware.svg?branch=master)](https://travis-ci.org/keyboardio/Model01-Firmware)