mk firmware flash

the monome kit has a bootloader which means you can flash the device's firmware without using an external programmer.

a few different firmwares are available, and we'll produce a few more. since these are open source you're encouraged to extend the firmware and share them here.

you'll need access to the logic board for this process.

these firmwares require serialosc to function. they will not work with monomeserial.

install toolchain

download and install.

osx: crosspack. windows: winavr. linux: avrdude.

select firmware version

download the mk source files.

download the zip. unzip.

the individual firmwares will be inside the folder firmware.

remember where you saved these files!

find or change your serial number

the following step requires you know your serial number.

you can do this in windows in the device manager (get details on the usb port.)

on os x and linux, open a terminal and type:

ls -lrt /dev | grep tty.usbserial

mk kits initially were distributed with serial numbers starting with mk (ie mk0000412). if this is the case on your device, you need to change it to have only an m prefix (ie m0000023).

these applications let you easily change your serial number:

os x: http://dangerousprototypes.com/2010/01/27/pirate-rename-get-a-nicely-named-serial-device/

win: http://www.ftdichip.com/Support/Utilities/FT_Prog_v1.9.zip

linux: https://github.com/nedko/ftdi245r_serial

set your serial number

the programming script (makefile) needs to be edited for your unique serial number. your serial number looks something like m0000315

within the firmware folder, edit Makefile with a text editor.

at the top, edit the line:

SERIAL = /dev/tty.usbserial-m0000001

so that your serial number replaces m0000001

you can find your serial number by running monomeserial (and various other ways).

windows users: instead of a serial number, you need to specify the COM port your device is on, so this line would look something like:

SERIAL = COM4

you can find your serial number by diving in (this is for xp): system properties > device manager > USB serial port

you'll want to change the COM port to something between 1 and 4: properties > port settings > advanced

it's ok if (for example) COM4 says it's used. just select it anyway (unless you know for certain you have something hooked up to it.)

activate bootloader

make sure the device is connected via usb.

using a small length of wire (or something conductive) short the two pins (holes) shown. simply touch one end of the wire to each hole. you won't get any visual or audible cue that this actually did anything, but have faith. you've reset the chip into bootloader mode.

don't leave the wire touching. just touch it momentarily then take it away.

flash device using bootloader

make sure that you're not running serialosc or any other application which will use the serial port for this device.

open a terminal or command line.

navigate to the folder containing the firmware files you downloaded earlier, for example:

cd ~/Desktop/mk/firmware/encoders

now to flash the device, enter command:

make 8x8

where 8×8 is the size of your device. options are 0x0, 8×8, 16×8, 16×16

you'll see something like this:

salt:encoders tehn$ make 8x8
avrdude -p m325 -b 115200 -P /dev/tty.usbserial-m0000001 -c arduino -e -V -D -U flash:w:mk8x8.hex:i

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9505
avrdude: erasing chip
avrdude: reading input file "mk.hex"
avrdude: writing flash (5956 bytes):

Writing | ################################################## | 100% 0.56s

avrdude: 5956 bytes of flash written

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

hard reset your device by disconnecting usb and reconnecting. you're done.

if you ran into problems, don't worry! post to the forum with questions.