Changes between Version 48 and Version 49 of expansion/gw16122


Ignore:
Timestamp:
11/01/2018 10:35:44 PM (13 months ago)
Author:
Ryan Erbstoesser
Comment:

clean up thingsquare section, and move to bottom

Legend:

Unmodified
Added
Removed
Modified
  • expansion/gw16122

    v48 v49  
    620620The RF is at 500 kbps by default but can be adjusted in the source code.
    621621
    622 === Thingsquare ===
     622
     623== Programming the CC1350 ==
     624
     625The CC1350 of the GW16122 can be programmed a number of ways depending on your host machine.
     626
     627Gateworks has tested both Windows (SmartRF Flash Programmer v2) and Linux (Uniflash) tools but specific instructions will be provided from the Linux perspective. However, the [wiki:#HostProgrammingSoftware Windows Software] may be easier and more reliable to use.
     628
     629You will need to have installed the software detailed in the [wiki:expansion/gw16122#SetUp Set Up] section in order to continue.
     630
     631The Uniflash tool is linux compatible and has both a gui and command line interface. The gui program has an autodetect feature and is somewhat easier to use but the command line tool has the same functionality and is better suited for repeated tasks with constant configurations.
     632
     633* Note that there doesn't appear to be a way to update the firmware on a running ARM based target. All of the methods we used to program the !TiVa and CC1350 MCU's from a x86 host are not compatible with an ARM based system. This means that users will not be able to update firmware on running boards.
     634
     635=== GUI Approach ===
     636
     6371. Connect a single GW16122 to the host machine (desktop/laptop) via mini-PCIe to USB adapter.
     6381. Open the "Uniflash" application through a gui file manager from the uniflash_4.2 install directory, or via command line:
     639{{{#!bash
     640./uniflash_4.2/node-webkit/nw
     641}}}
     6421. Select target device of CC1350F128
     6431. Select connection of Texas Instruments XDS110 USB Debug Probe
     6441. Click the "Start" button
     645In the Program tab, select the firmware file you wish to load. This is typically a .out file created via a Code Composer Studio Project and can be found in your workspace directory (default {{{~/workspace_v7/}}})
     6461. Click the "Load Image" and "Verify Image" buttons and see the text console output on the bottom of the window for a green success message
     647
     648It should also be mentioned that you can program your GW16122 directly from the Code Composer Studio IDE by creating a proper target configuration and then selecting "Debug". Most of the TI example projects will detail this procedure.
     649
     650At this point you may want to power cycle your device.
     651
     652=== Command Line Approach ===
     653
     6541. Navigate to your uniflash install directory
     655{{{#!bash
     656cd uniflash_4.2
     657}}}
     658
     6591. Run the installer providing a configuration and .out file as arguments, for example:
     660{{{#!bash
     661./dslite.sh --config=CC1350F128.ccxml ~/workspace_v7/collector_cc1350lp/collector_cc1350lp/collector_cc1350lp.out
     662}}}
     663The {{{CC1350F128.ccxml}}} file can be created via the uniflash gui or Code Composer Studio IDE. The contents of the file are provided in the collapsible text below for convenience.
     664
     665
     666[[CollapsibleStart(CC1350F128.ccxml)]]
     667{{{#!xml
     668<?xml version="1.0" encoding="UTF-8" standalone="no"?>
     669<configurations XML_version="1.2" id="configurations_0">
     670<configuration XML_version="1.2" id="configuration_0">
     671        <instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
     672        <connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe">
     673
     674                           <instance XML_version="1.2" href="drivers/tixds510icepick_c.xml" id="drivers" xml="tixds510icepick_c.xml" xmlpath="drivers"/>
     675
     676                           <instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
     677
     678                           <instance XML_version="1.2" href="drivers/tixds510cortexM.xml" id="drivers" xml="tixds510cortexM.xml" xmlpath="drivers"/>
     679
     680
     681                  <property Type="choicelist" Value="4" id="SWD Mode Settings">
     682            <choice Name="cJTAG (1149.7) 2-pin advanced modes" value="enable">
     683                <property Type="choicelist" Value="1" id="XDS110 Aux Port"/>
     684            </choice>
     685        </property>
     686
     687                  <property Type="choicelist" Value="1" id="Power Selection">
     688            <choice Name="Probe supplied power" value="1">
     689                <property Type="stringfield" Value="3.3" id="Voltage Level"/>
     690            </choice>
     691            <choice Name="Target supplied power" value="0">
     692                <property Type="choicelist" Value="1" id="Voltage Selection">
     693                    <choice Name="User specified value" value="1">
     694                        <property Type="stringfield" Value="3.3" id="Voltage Level"/>
     695                    </choice>
     696                </property>
     697            </choice>
     698        </property>
     699
     700                  <property Type="choicelist" Value="0" id="JTAG Signal Isolation"/>
     701
     702            <platform XML_version="1.2" id="platform_0">
     703                <instance XML_version="1.2" desc="CC1350F128" href="devices/cc1350f128.xml" id="CC1350F128" xml="cc1350f128.xml" xmlpath="devices"/>
     704            </platform>
     705        </connection>
     706    </configuration>
     707</configurations>
     708}}}
     709[[CollapsibleEnd]]
     710== References ==
     711* [http://dev.ti.com/tirex/#/?link=Software%2FSimpleLink%20CC13x0%20SDK ​CC1350 Wiki]
     712* [http://dev.ti.com/tirex/content/tirtos_cc13xx_cc26xx_2_20_00_06/resources/cc1350LaunchPad/project0/landing_page_index.html ​Launch Pad Landing Page on Ti]
     713* [http://processors.wiki.ti.com/index.php/Contiki-6LOWPAN ​Ti Information regarding Contiki]
     714* [http://www.ti.com/lit/ug/sprui94/sprui94.pdf ​XDS110 User Guide]
     715* [http://dev.ti.com/tirex/content/simplelink_academy_cc13x0sdk_1_13_01_05/modules/154-stack_03_linux_project_0/154-stack_03_linux_project_0.html ​TI 15.4-Stack - Linux Gateway Project Zero App Note]
     716* [http://e2e.ti.com/support/wireless_connectivity/proprietary_sub_1_ghz_simpliciti/ ​TI Sub-1GHz E2E Forum]
     717* [http://dev.ti.com/tirex/content/simplelink_academy_cc13x0sdk_1_12_01_16/modules/prop_04_cc1350lpdm/resources/CC1350LaunchPad_BLE_All_v1_00.hex ​CC1350 Bluetooth Software for use with iPhone App]
     718
     719= CC1350STK Notes =
     720The [http://www.ti.com/tool/CC1350STK CC1350STK] is a sensor node sold and designed by Ti. While similar to the Launch Pad, it is much smaller.
     721 * Button 1 is the button on the edge furthest away from the JTAG headers. This is labeled as the 'Power' button.
     722 * Button 2 is the button on the same edge as the JTAG headers. This is a 'user' button.
     723 * There is no green LED on CC1350STK. There is only Green LED on CC2650STK and that function is for CC2650STK.
     724 * Hex file to erase CC1350SensorTag_ExtFlashErase.hex
     725 * Hex file for default factory image: CC1350SensorTag_BLE_All_v1_33.hex
     726 * It's not possible to set the STK in factory restore by pushing buttons.
     727 * The Ti Bluetooth iPhone app is missing the 1Ghz factory image in the list of available firmware.
     728  * Files are placed here (typical installation path):
     729   *C:\Program Files (x86)\Texas Instruments\SmartRF Tools\BLE Device Monitor\firmware\cc1350\sensortag
     730  * rfWsnDmNodeOad_US_CC1350STK_TI_CC1350F128-v1_06.hex
     731
     732= Third Party Software =
     733== Thingsquare ==
    623734[http://www.thingsquare.com Thingsquare] is a software company that offers customized software for the chip on the GW16122, the Ti CC135x. This software allows for the use of a smartphone app to monitor and control sensors through the Thingsquare cloud/backend. A [https://www.thingsquare.com/docs/api/ REST API] is available as well.
    624735
     
    632743 * The CC1350 Sensor tag is reporting back to the Gateway and pushing it's information up to the cloud
    633744
    634 Hardware required as noted [#HardwareRequirements here]
    635 
    636 Steps:
    637  1. Flash the GW16122 and sensor nodes with Thingsquare Firmware located [https://www.thingsquare.com/docs/downloads/ here]
    638   1. GW16122 Firmnware: CC1350 Launchpad Serial USB Access Point (US / 915 MHz)
    639   1. Sensor Firmnware: CC1350 Sensortag
    640  1. Insert GW16122 into a Gateworks SBC Mini-PCIe slot that has USB support
     745
     746
     747'''Hardware required:'''
     748All items purchased seperately
     749
     750 * Gateworks [http://www.gateworks.com/product Ventana or Newport] Single Board Computer
     751 * Gateworks [http://www.gateworks.com/product/item/gw16122-mini-pcie-iot-radio-expansion-card GW16122 IoT Card]
     752 * Gateworks GW10124 900Mhz Antenna
     753 * Gateworks [https://shop.gateworks.com/index.php?route=product/product&product_id=59 GW10074] MMCX to SMA Female Adapter Cable
     754 * [http://www.ti.com/tool/CC1350STK Ti CC1350 Sensor Tag]
     755  * Gateworks SBC and GW16122 are the 'collector' in the system. This CC1350 !Sensor !Tag becomes the 'sensor' for development.
     756 *  USB to Mini-PCIe Adapter
     757  * This allows the Gateworks GW16122 to be connected to a Laptop / PC for programming purposes.
     758  * [https://www.amazon.com/Mini-Wireless-Adapter-Module-Testing/dp/B00T2FPC2A/ref=sr_1_8?ie=UTF8&qid=1519335779&sr=8-8& Option #1 - Amazon] - Requires rubberband to hold GW16122 in
     759  * [https://www.dhgate.com/product/smakn-mini-pci-e-to-usb-adapter-with-sim/386929225.html Option #1 - DHGate] - May require USB extension cable
     760
     761''' The following instructions assume the developer is familiar with using the Gateworks SBC & GW16122 and programming it using the instructions given elsewhere on this wiki'''
     762
     763'''Setup Instructions'''
     764 1. [http://trac.gateworks.com/wiki/expansion/gw16122#Windows Flash] the GW16122 and sensor nodes with Thingsquare Firmware located [https://www.thingsquare.com/docs/downloads/ here]
     765  a. GW16122 Firmnware is labeled as ''CC1350 Launchpad Serial USB Access Point (US / 915 MHz)''
     766  a. Sensor Firmnware is labeled as ''CC1350 Sensortag''
     767 1. Insert a programmed GW16122 into a Gateworks SBC Mini-PCIe slot that has USB support
    641768 1. Load Gateworks SBC Ubuntu 16.04 Software
    642   1. Install Ubuntu Xenial 16.04 with the instructions [wiki:ventana/ubuntu#Ubuntu16.04LTSXenialXerusconsoleimage Ventana 16.04]
    643   1. Confirm /dev/ttyACM0 and /dev/ttyACM1 exist on the Gateworks SBC in software
    644   1. Confirm an ethernet cable is connected to the Gateworks SBC connected to a LAN that has internet access via a WAN
    645   1. Install dnsmasq{{{apt-get install dnsmasq}}}
    646   1. Add the following lines to the end of the /etc/dnsmasq.conf file:
     769  a. Install Ubuntu Xenial 16.04 with the instructions [wiki:ventana/ubuntu#Ubuntu16.04LTSXenialXerusconsoleimage Ventana 16.04]
     770  a. Confirm /dev/ttyACM0 and /dev/ttyACM1 exist on the Gateworks SBC in software
     771  a. Confirm an ethernet cable is connected to the Gateworks SBC connected to a LAN that has internet access via a WAN
     772  a. Install dnsmasq{{{apt-get install dnsmasq}}}
     773  a. Add the following lines to the end of the /etc/dnsmasq.conf file:
    647774{{{
    648775interface=sl0
     
    650777listen-address=172.16.0.1
    651778}}}
    652   1. Create a script or add to /etc/rc.local to be ran after the board boots each time:
     779  a. Create a script or add to /etc/rc.local to be ran after the board boots each time:
    653780{{{
    654781modprobe slip
     
    668795systemctl start dnsmasq.service
    669796}}}
    670  1. Utilize the Thingsquare website to connect both sensor and Gateway to cloud with the following instructions: [http://www.thingsquare.com/docs/get-started-with-starter-kit/]
    671   1. Important Note: Checking the box 'Remote Access' is important to connect the device to the Thingsquare backend and available when logging into the app/browser with user account
    672  1. You can use the website [https://developer.thingsquare.com/web/] to access the devices from a PC browser on the same LAN. Create a Thingsquare account.
    673   1. Use the bottom menu icon, 'Nearby' to be sure you can discover the device on the LAN
     797  a. After script is installed, either run the script or reboot the board if the script will run automatically
     798 1. Connect the Gateway / Sensor either using a mobile phone or network browser, explained below:
     799  1. Utilize the Thingsquare website to connect both sensor and Gateway to cloud with the following instructions using a mobile phone: [http://www.thingsquare.com/docs/get-started-with-starter-kit/]
     800   a. Important Note: Checking the box 'Remote Access' is important to connect the device to the Thingsquare backend and available when logging into the app/browser with user account
     801  1. You can use the website [https://developer.thingsquare.com/web/] to access the devices from a PC browser on the same LAN. Create a Thingsquare account.
     802   a. Use the bottom menu icon, 'Nearby' to be sure you can discover the device on the LAN
     803   a. Important Note: Checking the box 'Remote Access' is important to connect the device to the Thingsquare backend and available when logging into the app/browser with user account
    674804
    675805'''Screenshots:'''
     
    678808
    679809'''Troubleshooting:'''
    680  1. Verify traffic on sl0 interface with tcpdump
     810 1. Verify traffic on sl0 interface with tcpdump, example below:
    681811{{{
    682812root@xenial-ventana:~# tcpdump -i sl0
     
    813943More information can be found on the {{{xdsdfu}}} tool via the {{{ReadMe.txt}}} in the same directory. Also refer to the XDS110 User Guide linked in the [wiki:expansion/gw16122#References References] section.
    814944}}}
    815 == Programming the CC1350 ==
    816 
    817 The CC1350 of the GW16122 can be programmed a number of ways depending on your host machine.
    818 
    819 Gateworks has tested both Windows (SmartRF Flash Programmer v2) and Linux (Uniflash) tools but specific instructions will be provided from the Linux perspective. However, the [wiki:#HostProgrammingSoftware Windows Software] may be easier and more reliable to use.
    820 
    821 You will need to have installed the software detailed in the [wiki:expansion/gw16122#SetUp Set Up] section in order to continue.
    822 
    823 The Uniflash tool is linux compatible and has both a gui and command line interface. The gui program has an autodetect feature and is somewhat easier to use but the command line tool has the same functionality and is better suited for repeated tasks with constant configurations.
    824 
    825 * Note that there doesn't appear to be a way to update the firmware on a running ARM based target. All of the methods we used to program the !TiVa and CC1350 MCU's from a x86 host are not compatible with an ARM based system. This means that users will not be able to update firmware on running boards.
    826 
    827 === GUI Approach ===
    828 
    829 1. Connect a single GW16122 to the host machine (desktop/laptop) via mini-PCIe to USB adapter.
    830 1. Open the "Uniflash" application through a gui file manager from the uniflash_4.2 install directory, or via command line:
    831 {{{#!bash
    832 ./uniflash_4.2/node-webkit/nw
    833 }}}
    834 1. Select target device of CC1350F128
    835 1. Select connection of Texas Instruments XDS110 USB Debug Probe
    836 1. Click the "Start" button
    837 In the Program tab, select the firmware file you wish to load. This is typically a .out file created via a Code Composer Studio Project and can be found in your workspace directory (default {{{~/workspace_v7/}}})
    838 1. Click the "Load Image" and "Verify Image" buttons and see the text console output on the bottom of the window for a green success message
    839 
    840 It should also be mentioned that you can program your GW16122 directly from the Code Composer Studio IDE by creating a proper target configuration and then selecting "Debug". Most of the TI example projects will detail this procedure.
    841 
    842 At this point you may want to power cycle your device.
    843 
    844 === Command Line Approach ===
    845 
    846 1. Navigate to your uniflash install directory
    847 {{{#!bash
    848 cd uniflash_4.2
    849 }}}
    850 
    851 1. Run the installer providing a configuration and .out file as arguments, for example:
    852 {{{#!bash
    853 ./dslite.sh --config=CC1350F128.ccxml ~/workspace_v7/collector_cc1350lp/collector_cc1350lp/collector_cc1350lp.out
    854 }}}
    855 The {{{CC1350F128.ccxml}}} file can be created via the uniflash gui or Code Composer Studio IDE. The contents of the file are provided in the collapsible text below for convenience.
    856 
    857 
    858 [[CollapsibleStart(CC1350F128.ccxml)]]
    859 {{{#!xml
    860 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    861 <configurations XML_version="1.2" id="configurations_0">
    862 <configuration XML_version="1.2" id="configuration_0">
    863         <instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
    864         <connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe">
    865 
    866                            <instance XML_version="1.2" href="drivers/tixds510icepick_c.xml" id="drivers" xml="tixds510icepick_c.xml" xmlpath="drivers"/>
    867 
    868                            <instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
    869 
    870                            <instance XML_version="1.2" href="drivers/tixds510cortexM.xml" id="drivers" xml="tixds510cortexM.xml" xmlpath="drivers"/>
    871 
    872 
    873                   <property Type="choicelist" Value="4" id="SWD Mode Settings">
    874             <choice Name="cJTAG (1149.7) 2-pin advanced modes" value="enable">
    875                 <property Type="choicelist" Value="1" id="XDS110 Aux Port"/>
    876             </choice>
    877         </property>
    878 
    879                   <property Type="choicelist" Value="1" id="Power Selection">
    880             <choice Name="Probe supplied power" value="1">
    881                 <property Type="stringfield" Value="3.3" id="Voltage Level"/>
    882             </choice>
    883             <choice Name="Target supplied power" value="0">
    884                 <property Type="choicelist" Value="1" id="Voltage Selection">
    885                     <choice Name="User specified value" value="1">
    886                         <property Type="stringfield" Value="3.3" id="Voltage Level"/>
    887                     </choice>
    888                 </property>
    889             </choice>
    890         </property>
    891 
    892                   <property Type="choicelist" Value="0" id="JTAG Signal Isolation"/>
    893 
    894             <platform XML_version="1.2" id="platform_0">
    895                 <instance XML_version="1.2" desc="CC1350F128" href="devices/cc1350f128.xml" id="CC1350F128" xml="cc1350f128.xml" xmlpath="devices"/>
    896             </platform>
    897         </connection>
    898     </configuration>
    899 </configurations>
    900 }}}
    901 [[CollapsibleEnd]]
    902 == References ==
    903 * [http://dev.ti.com/tirex/#/?link=Software%2FSimpleLink%20CC13x0%20SDK ​CC1350 Wiki]
    904 * [http://dev.ti.com/tirex/content/tirtos_cc13xx_cc26xx_2_20_00_06/resources/cc1350LaunchPad/project0/landing_page_index.html ​Launch Pad Landing Page on Ti]
    905 * [http://processors.wiki.ti.com/index.php/Contiki-6LOWPAN ​Ti Information regarding Contiki]
    906 * [http://www.ti.com/lit/ug/sprui94/sprui94.pdf ​XDS110 User Guide]
    907 * [http://dev.ti.com/tirex/content/simplelink_academy_cc13x0sdk_1_13_01_05/modules/154-stack_03_linux_project_0/154-stack_03_linux_project_0.html ​TI 15.4-Stack - Linux Gateway Project Zero App Note]
    908 * [http://e2e.ti.com/support/wireless_connectivity/proprietary_sub_1_ghz_simpliciti/ ​TI Sub-1GHz E2E Forum]
    909 * [http://dev.ti.com/tirex/content/simplelink_academy_cc13x0sdk_1_12_01_16/modules/prop_04_cc1350lpdm/resources/CC1350LaunchPad_BLE_All_v1_00.hex ​CC1350 Bluetooth Software for use with iPhone App]
    910 
    911 = CC1350STK Notes =
    912 The [http://www.ti.com/tool/CC1350STK CC1350STK] is a sensor node sold and designed by Ti. While similar to the Launch Pad, it is much smaller.
    913  * Button 1 is the button on the edge furthest away from the JTAG headers. This is labeled as the 'Power' button.
    914  * Button 2 is the button on the same edge as the JTAG headers. This is a 'user' button.
    915  * There is no green LED on CC1350STK. There is only Green LED on CC2650STK and that function is for CC2650STK.
    916  * Hex file to erase CC1350SensorTag_ExtFlashErase.hex
    917  * Hex file for default factory image: CC1350SensorTag_BLE_All_v1_33.hex
    918  * It's not possible to set the STK in factory restore by pushing buttons.
    919  * The Ti Bluetooth iPhone app is missing the 1Ghz factory image in the list of available firmware.
    920   * Files are placed here (typical installation path):
    921    *C:\Program Files (x86)\Texas Instruments\SmartRF Tools\BLE Device Monitor\firmware\cc1350\sensortag
    922   * rfWsnDmNodeOad_US_CC1350STK_TI_CC1350F128-v1_06.hex