OpenFHSS Code
Brought to you by:
toddelliott
///////////////////////////////////////////////////////////////////////////////////// // Copyright (c) 2010, Valhalla Wireless, Todd Elliott http://valhalla-wireless.com/ // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. // * Neither the name of the Valhalla Wireless nor the // names of its contributors may be used to endorse or promote products // derived from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL Valhalla Wireless BE LIABLE FOR ANY // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // // History // creation t.elliott 2010 // What is OpenFHSS? ------------------------------------------------------------ Project Development Site For Valhalla Wireless OpenFHSS. OpenFHSS is a community-based effort that includes hardware, firmware, and documentation for a 902-928MHz ISM, 50-channel, FHSS frequency hopping spread spectrum modem. Features: * High Performance, Long-Range Frequency Hopping Spread Spectrum Modem * Synchronous, Multi-Hop Repeater Chains * Ethernet Bridge Mode * Automatic, over-the-air firmware updates. Master updates all slaves simultaneously * 4uA MCU initiated sleep current * 2ppm stability for frequency and system timing reference. * Industrial quality enclosure, connectors * Real-Time Data Collection System with user defined scripts * LM3S6965 32-Bit Stellaris ARM-core MCU, CC1101 transceiver, CC1190 LNA/PA * Highly immune to multipath fading, interference * 5mS Channel Dwell Time * -107dBm sensitivity, 27.1dBm output power enables communications range in tens of kilometers. Depending on installation, ranges of >50km are easy to achieve * Applications include battery-powered data collection, long-range internet communications. Quality Skype phone calls have been achieved with point-to-points links. Donations: To donate via paypal, please follow this link: http://sourceforge.net/project/project_donations.php?group_id=513759 To donate using Bitcoin (BTC), please use the following address: 1LfnFyk55PGgymLAaWPWoeTWYasYiYbJQA We really appreciate contributions to the project. Thanks! Related Links: ------------------------------------------------------------ OpenFHSS: https://sourceforge.net/projects/openfhss/ Valhalla Wireless: http://valhalla-wireless.com/ News: http://valhalla-wireless.com/blog/ Support: http://valhalla-wireless.com/forums/viewforum.php?f=3 ------------------------------------------------------------ LATEST VERSION - Please use subversion ----------------------------------------- To download code from subversion: svn co https://openfhss.svn.sourceforge.net/svnroot/openfhss openfhss JTAG / IN-CIRCUIT-DEBUGGER ----------------------------------------- We use the ICD board that comes with the Stellaris LM3S9b92 general development board Connectors on the VikingXE design are compatible with ribbon cables on this dev board. PREPARING DEV ENVIRONMENT ----------------------------------------- Links crosstool-ng (building the toolchain made easy.. very nice!.) http://ymorin.is-a-geek.org/projects/crosstool OpenOCD project (debugger / flashing). Need the latest from GIT repository to get the interface and target definitions for the Stellaris parts. This is done with git clone (see below) http://developer.berlios.de/projects/openocd Open FTDI driver for accessing the FT2232 on the Stellaris boards http://www.intra2net.com/en/developer/libftdi/download.php #install crosstool-ng bzip2 -d crosstool-ng-1.8.1.tar.bz2 tar -xf crosstool-ng-1.8.1.tar cd crosstool-ng-1.8.1/ sudo apt-get install awk sudo apt-get install gawk sudo apt-get install bison sudo apt-get install flex sudo apt-get install automake sudo apt-get install libtool sudo apt-get install libncurses-dev sudo apt-get install zlib1g-dev ./configure make sudo make install mkdir /home/user1/arm-eabi/ cd /home/user1/arm-eabi/ #copy sample file for baremetal build to new directory cp /home/user1/downloads/crosstool-ng-1.8.1/samples/arm-bare_newlib_cortex_m3_nommu-eabi/crosstool.config .config #build the entire toolchain ct-ng build #install open FTDI drivers tar -xzf libftdi-0.18.tar.gz cd libftdi-0.18/ sudo apt-get install libusb-dev ./configure make sudo make install ldconfig #install latest OpenOCD git clone git://openocd.git.sourceforge.net/gitroot/openocd/openocd openocd-git cd openocd-git/ ./bootstrap ./configure --enable-ft2232_libftdi make sudo make install #add toolchain built by crosstool-ng to path PATH="/home/user1/x-tools/arm-bare_newlib_cortex_m3_nommu-eabi/bin:${PATH}" export PATH #edit PREFIX in StellarisWare/makedefs to use new toolchain PREFIX=arm-bare_newlib_cortex_m3_nommu-eabi #build entire StellarisWare distribution cd StellarisWare make clean make #start openocd with stellaris configuration #lm3s9b9x with external FTDI ICD board #sudo openocd -f openocd-git/tcl/interface/luminary-icdi.cfg -f openocd-git/tcl/target/stellaris.cfg #lm3s6965 with on-board FTDI sudo openocd -f openocd-git/tcl/interface/luminary.cfg -f openocd-git/tcl/target/stellaris.cfg #flash mcu with some code at address 0x00000 and execute telnet localhost 4444 halt flash write_image erase /tmp/main.bin 0 reset COMPILING ----------------------------------------- The OpenFHSS project in its current form is written to run on the TI Stellaris family of MCU. It depends on the TI StellarisWare driverlib. You will need to download StellarisWare from here: http://www.luminarymicro.com/products/software_updates.html To compile with GNU GCC, move the OpenFHSS folder to a project subdirectory within StellarisWare such as: StellarisWare/boards/ek-lm3s6965/openfhss From within the openfhss project directory: make clean make