summaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorDaveHodder67 <dave.hodder@focusrite.com>2015-06-16 14:22:17 +0100
committerDaveHodder67 <dave.hodder@focusrite.com>2015-06-16 14:22:17 +0100
commitcb506c00731140dd08b8d26a52bceeb743975399 (patch)
treeda92e0debf6d55586698b154f54dbbfcf49277dc /README.md
parenta9461c7847088a25dfa5f9851b4c96ffc50a5238 (diff)
downloadlaunchpad-polymaker-cb506c00731140dd08b8d26a52bceeb743975399.tar.gz
launchpad-polymaker-cb506c00731140dd08b8d26a52bceeb743975399.zip
updated README
Diffstat (limited to 'README.md')
-rw-r--r--README.md46
1 files changed, 34 insertions, 12 deletions
diff --git a/README.md b/README.md
index 3c2b31a..c1ffefc 100644
--- a/README.md
+++ b/README.md
@@ -1,28 +1,50 @@
1# Launchpad Pro 1# Launchpad Pro
2Open source firmware for the Launchpad Pro grid controller! 2Open source firmware for the Novation Launchpad Pro grid controller
3
4# Philosophy
5We could have released the full source for the factory shipping firmware, but we've decided not to for a variety of reasons. Instead, we created a simplified framework for developing "apps" on Launchpad, which comprises a build environment, application entry points / API, and a library of low level source code. Our reasoning is as follows:
6
7- There is no value in customising low level routines such as LED multiplexing or ADC scanning - this code has been carefully tweaked over many months to deliver the best results, and is not something you'd want to tweak. I'm prepared to be convinced otherwise!
8- There is very little value in customising main() or other low level features, and again these things are hard to do well.
9- If we shipped the application firmware as-is, we'd have a support nightmare on our hands (imagine the support calls - my "Launchpad Pro is behaving strangely..."). Instead, we wanted to create a clear boundary between "normal" usage with Ableton, and custom firmware. As such, Ableton integration has been removed from this firmware, as has the setup / navigation functionality.
10- If we left the Ableton integration and menu structure in place, open firmware developers would have to work around it. They would also potentially consume precious RAM/CPU resources. I've a feeling this isn't what you'd want, but again, we're interested to hear your feedback.
11- Licensing requirements for the CMSIS library version we use are ambiguous. Yes, we could port to the public version, but why bother, given the above reasoning - I'd prefer to spend my time on good documentation and examples. As such, all the CMSIS code is compiled into launchpad_pro.a, and we do not need to distribute the headers.
12
13I'm sure you'll have feedback for us, so please do get in touch! I'm [blogging the process too](http://dvhdr.tumblr.com/) if you'd like to read my musings.
3 14
4# Installation 15# Installation
5This project uses Vagrant to manage the build environment. As such, you need to: 16This project uses [Vagrant](https://www.vagrantup.com/) to manage the build environment. As such, you need to:
6 17
71. Install Vagrant 181. Install [Vagrant](https://www.vagrantup.com/)
82. Install VirtualBox (or another virtualisation platform of your choice) 192. Install [VirtualBox](https://www.virtualbox.org/wiki/Downloads)(or another virtualisation platform of your choice)
93. vagrant up 203. `vagrant up`
10 21
11# Building 22# Building
12SSH into the Vagrant "box" by doing `vagrant up 23SSH into the Vagrant "box" by doing `vagrant up`
13At the command prompt, type `make 24At the command prompt, simply type `make`
14
15This will generate the firmware .bin file, which is no use to you (yet).
16 25
17You need to convert it to a sysex dump format (or we may be able to automate this). Instructions to follow... 26This will generate the firmware launchpad_pro.syx file in the build directory. You can then upload this to your Launchpad Pro from the host!
18 27
19# Uploading to a Launchpad Pro 28# Uploading to a Launchpad Pro
20Bootloader firmware update instructions here (Sysex Librarian / MIDI-OX / ...?) 29Bootloader firmware update instructions here (Sysex Librarian / MIDI-OX / ...?)
21 30
31# API
32The most crucial parts of the API are:
33
34- Recieving messages from the pads and buttons
35- Writing colours to the LEDs
36- Sending and receiving messages from the USB and MIDI ports
37- Receiving a tick message to drive timing based code
38
39Up for debate:
40
41- Flash read / write access
42- Setup button behaviour
43
22# Debugging 44# Debugging
23We decided not to support or encourage using a JLink or similar for debugging, as opening a Launchpad Pro to fit a debugging header can easily damage the FSR (force sensitive resistor) sheets. 45We decided not to support or encourage using a JLink or similar for debugging, as opening a Launchpad Pro to fit a debugging header can easily damage the FSR (force sensitive resistor) sheet.
24 46
25Instead, you're going to have to do things the old fashioned way - by blinking LEDs or sending MIDI messages. 47Instead, you're going to have to do things the old fashioned way - by blinking LEDs or sending MIDI messages. FWIW, that's the way I've developed this version of the firmware - dogfooding all the way ;)
26 48
27If you want to test code in detail, we suggest developing it on a host (we'd love to release our simulator environment at a later stage, but there are currently no plans to do so). 49If you want to test code in detail, we suggest developing it on a host (we'd love to release our simulator environment at a later stage, but there are currently no plans to do so).
28 50