summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Hodder <dave.hodder@focusrite.com>2017-11-20 11:39:14 +0000
committerDave Hodder <dave.hodder@focusrite.com>2017-11-20 11:39:14 +0000
commit7ff741e4206b75e941aa982360402bc8f8e58198 (patch)
treec83143d48dd3a751f20c56a7d4ed19da5a43dde4
parente6d0e1bc07bfea6ec24c9d414259eb846dfbf034 (diff)
parentcd36f3b3f52fbd54f667f916215726d175bdcc9f (diff)
downloadlaunchpad-polymaker-7ff741e4206b75e941aa982360402bc8f8e58198.tar.gz
launchpad-polymaker-7ff741e4206b75e941aa982360402bc8f8e58198.zip
Merge branch 'flash-storage' into raw-adc
-rw-r--r--README.md11
1 files changed, 4 insertions, 7 deletions
diff --git a/README.md b/README.md
index c22b331..910cb08 100644
--- a/README.md
+++ b/README.md
@@ -7,8 +7,6 @@ Open source firmware for the Novation Launchpad Pro grid controller! By customi
7 7
8You'll definitely need *some* C programming experience, but we've deliberately kept much of the firmwarey nastiness tucked away, to make the process a little friendlier. 8You'll definitely need *some* C programming experience, but we've deliberately kept much of the firmwarey nastiness tucked away, to make the process a little friendlier.
9 9
10This project is still at an early stage, and no "interesting" example apps have yet been developed. You might want to hang on until there's something more detailed before you get stuck in. Or not!
11
12# Philosophy 10# Philosophy
13We could have released the full source for the factory shipping firmware, but we decided not to for a variety of reasons. Instead, we created a simplified framework for developing "apps" on Launchpad Pro, which comprises a build environment, application entry points / API, and a library of low level source code. Our reasoning is as follows: 11We could have released the full source for the factory shipping firmware, but we decided not to for a variety of reasons. Instead, we created a simplified framework for developing "apps" on Launchpad Pro, which comprises a build environment, application entry points / API, and a library of low level source code. Our reasoning is as follows:
14 12
@@ -84,17 +82,16 @@ By calling into the HAL, your app can:
84 82
85- Write colours to the LEDs 83- Write colours to the LEDs
86- Send messages to the MIDI/USB ports 84- Send messages to the MIDI/USB ports
85- Store and recall a little bit of data on the Launchpad Pro's flash memory
87 86
88The best way to learn about these is to read the documentation in `app.h`, and to study the (very basic) example code! 87The best way to learn about these is to read the documentation in `app.h`, and to study the (very basic) example code!
89 88
90Currently the HAL/app interface does not support reading or writing the flash memory.
91
92# Debugging 89# Debugging
93We decided not to support or encourage using a hardware debugger, as opening a Launchpad Pro to fit a debugging header can easily damage the FSR (force sensitive resistor) sheet. 90We decided not to support or encourage using a hardware debugger, as opening a Launchpad Pro to fit a debugging header can easily damage the FSR (force sensitive resistor) sheet.
94 91
95Instead, you're going to have to do things the old fashioned way - by blinking LEDs or sending MIDI messages (though hopefully no need for a 'scope!). For what it's worth, that's the way I've developed this version of the firmware - dogfooding all the way ;) 92Instead, you're going to have to do things the old fashioned way - by blinking LEDs or sending MIDI messages (though hopefully no need for a 'scope!). For what it's worth, that's the way I've developed this version of the firmware - dogfooding all the way ;)
96 93
97If do you want to debug interactively (and of course you do), you can use the interactive desktop simulator on OS X. 94If do you want to debug interactively (and of course you do), you can use the interactive desktop simulator on OS X:
98 95
991. Build the Xcode project located in `/tools/osx` 961. Build the Xcode project located in `/tools/osx`
1002. Connect your Launchpad Pro 972. Connect your Launchpad Pro
@@ -102,7 +99,7 @@ If do you want to debug interactively (and of course you do), you can use the in
1024. Put the Launchpad Pro into "Programmer" mode using the Setup button (you'll get odd behaviour otherwise) 994. Put the Launchpad Pro into "Programmer" mode using the Setup button (you'll get odd behaviour otherwise)
1035. Start debugging in Xcode! 1005. Start debugging in Xcode!
104 101
105Currently it only supports button presses and LED messages - there's no virtual MIDI IO, setup button or aftertouch (yet). It has a really awful busywaiting timer for the 1kHz tick. However, it does allow you to debug your application logic using Xcode! 102Currently it only supports button presses and LED messages - there's no setup button, flash storage or aftertouch (yet). It has a really awful busywaiting timer for the 1kHz tick. However, it does allow you to debug your application logic using Xcode!
106 103
107You can also use the simple command-line simulator located in the `/tools` directory. It is compiled and ran as part of the build process, so it serves as a very basic test of your app before it is baked into a sysex dump - more of a test harness. 104You can also use the simple command-line simulator located in the `/tools` directory. It is compiled and ran as part of the build process, so it serves as a very basic test of your app before it is baked into a sysex dump - more of a test harness.
108 105
@@ -117,7 +114,7 @@ To debug the simulator interactively in Eclipse:
117# The Hardware 114# The Hardware
118The Launchpad Pro is based around an ARM Cortex M3 from STMicroelectronics. Specifically, an [STM32F103RBT6](http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN1565/PF164487). It's clocked at 72MHz, and has 20k RAM (I'm not sure how much of this we're using in the open build yet - should be a fair amount left but I haven't measured it). The low level LED multiplexing and pad/switch scanning consume a fair bit of CPU time in interrupt mode, but have changed a little in the open firmware library (so again, I don't have measurements for how many cycles they're using). 115The Launchpad Pro is based around an ARM Cortex M3 from STMicroelectronics. Specifically, an [STM32F103RBT6](http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN1565/PF164487). It's clocked at 72MHz, and has 20k RAM (I'm not sure how much of this we're using in the open build yet - should be a fair amount left but I haven't measured it). The low level LED multiplexing and pad/switch scanning consume a fair bit of CPU time in interrupt mode, but have changed a little in the open firmware library (so again, I don't have measurements for how many cycles they're using).
119 116
120It has 128k of flash memory, but I'm pretty sure we won't be exposing all of it as part of this API (dangerously easy to corrupt things!). Current thinking is to expose a few pages for use by apps, though this would still introduce risks (accidentally wearing out sectors, for example). To be continued... 117It has 128k of flash memory, but we won't be exposing all of it as part of this API (dangerously easy to corrupt things!).
121 118
122# Vagrant tips 119# Vagrant tips
123When you're done developing, simply type `vagrant suspend` to halt your VM without destroying it - this will make `vagrant up` a lot quicker next time. If you're really finished, `vagrant destroy` will completely remove the VM from your system (but not any of your code). 120When you're done developing, simply type `vagrant suspend` to halt your VM without destroying it - this will make `vagrant up` a lot quicker next time. If you're really finished, `vagrant destroy` will completely remove the VM from your system (but not any of your code).