LXR OSX build instructions

From Sonic Potions Wiki
Revision as of 18:23, 7 May 2014 by Rstephane (talk | contribs)
Jump to: navigation, search

Tested on 10.8.x and 10.9.2; likely needs Xcode installed also (https://developer.apple.com/xcode/downloads/)

General steps

The LXR code is divided into two mains code parts that we will compile "separately" using two different tools

  • the AVR Atmel CODE (LCD, front panel control, USB, SD card)
  • the ARM CODE (main LXR code for the voices / sounds)

- We need "specific compilers and librairies" for each CODE. We need to change the PATH in your .bash_profile, we need MAKEFILES to build the firmware, and, finally, we will compile the code :)

Let's do it!

AVR COMPILER & LIBS

  • Download of Atmel AVR 8-bit toolchain from http://www.obdev.at/products/crosspack/download.html
  • You will get a .dmg file that you should extract and install (CrossPack-AVR-20131216.dmg is the most recent as of 2015/05/02)
  • The compiler and libs are installed under /usr/local/CrossPack-AVR-20131216/
  • Note that you will also find a folder like /usr/local/CrossPack-AVR/ (this folder is an alias to the previous folder - symlink).

GNU ARM COMPILER AND LIBS

  • Download of GNU bare metal ARM toolchain from https://launchpad.net/gcc-arm-embedded (v4.8)
  • Take the MAC version (something like : gcc-arm-none-eabi-4_8-2014q1-20140314-mac.tar.bz2 )
  • Extract the compressed/tar file.
  • Copy the extracted folder under /usr/local/
  • Nothing else to do !

Change your PATH

  • We need to add a specific PATH for both compilers (and libs) for the MAC. Here is mine...
   export PATH=$PATH:/usr/local/CrossPack-AVR-20131216/bin:/usr/local/CrossPack-AVR-20131216/:/usr/include:/usr/local/CrossPack-AVR-20131216/avr/include:/usr/local/gcc-arm-none-eabi-4_8-2014q1/bin
   export ARM_TOOLKIT_ROOT=/usr/local/gcc-arm-none-eabi-4_8-2014q1
   export AVR_TOOLKIT_ROOT=/usr/local/CrossPack-AVR-20131216
  • in a terminal window, execute "source ./.bash_profile" to update the PATH to your system.
  • for the moment, don't try to understand what are ARM_TOOLKIT / AVR_TOLLKIT variables, we will explain why we need this later.

Grab the LXR Code

We advice you to grab the code either from :

   Julian repository on GITHUB (https://github.com/SonicPotions/LXR)
   PLD repository (https://github.com/patrickdowling/LXR)
   rudeog repository (https://github.com/rudeog/LXR) -> extra features compared to Julian code.
   rstephane repository (https://github.com/rstephane/LXR) -> equivalent to Julian CODE. 

- of course once downloaded, you should extract the code and copy it to any folder you like. On our side we copied it under: /Users/music/Documents/workspace/LXR/

MACOS specific makefiles

We advice you to grab the makefiles either from :

   PLD repository (https://github.com/patrickdowling/LXR) 
   rstephane (@egnouf) repository (https://github.com/rstephane/LXR)
   RUDEOG repository https://github.com/patrickdowling/LXR

- You will find on the root path of both repository a file called MAKEFILE. You will also need the other makefiles:

   https://github.com/patrickdowling/LXR/blob/makefiles/Makefile
   https://github.com/patrickdowling/LXR/blob/makefiles/front/AVR/Makefile
   https://github.com/patrickdowling/LXR/blob/makefiles/mainboard/firmware/DrumSynth_FPU/Makefile
   https://github.com/patrickdowling/LXR/blob/makefiles/tools/FirmwareImageBuilder/Makefile
  • Once downloaded, copy them at the root PATH of the code (1) and in subfolders (2,3,4) you dowloaded in STEP 4.
  • If you have taken the whole LXR code from @PLD or rstephane or @RUDEOG you don't need to download once more the Makefiles, they are provided within !

Now, let's go back to the .bash_profile file:

   export PATH=$PATH:/usr/local/CrossPack-AVR-20131216/bin:/usr/local/CrossPack-AVR-20131216/:/usr/include:/usr/local/CrossPack-AVR-20131216/avr/include:/usr/local/gcc-arm-none-eabi-4_8-2014q1/bin
   export ARM_TOOLKIT_ROOT=/usr/local/gcc-arm-none-eabi-4_8-2014q1
   export AVR_TOOLKIT_ROOT=/usr/local/CrossPack-AVR-20131216
  • You can notice the two variables ARM_TOOLKIT_ROOT and AVR_TOOLKIT_ROOT.
  • They are used by the MAKEFILE that has created @PLD (and also used by rstephane).
  • Change their values appropriately, according to your system path, where you installed the libs... etc.

Compile

  • You just have to launch the command "make firmware" from a MAC terminal window. To clean the code you can execute "make clean".
  • You will get a FIRMWARE.BIN image (in fact, we compiled two programs and the makefile combine both to one single file !), copy this file on your SD CARD and follow instruction to upload your new firmware.

If you have downloaded rstephane code, similar to @Julian and @PLD, you will noticed that when you power on the machine, it displays "LXR-Drums-V" instead of "LXR Drums V". If so, you have successfully loaded (and compiled) LXR CODE!!!!

Well done and happy hacking!