622 | | === Thingsquare === |
| 622 | |
| 623 | == Programming the CC1350 == |
| 624 | |
| 625 | The CC1350 of the GW16122 can be programmed a number of ways depending on your host machine. |
| 626 | |
| 627 | 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. |
| 628 | |
| 629 | You will need to have installed the software detailed in the [wiki:expansion/gw16122#SetUp Set Up] section in order to continue. |
| 630 | |
| 631 | 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. |
| 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 | |
| 637 | 1. Connect a single GW16122 to the host machine (desktop/laptop) via mini-PCIe to USB adapter. |
| 638 | 1. 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 | }}} |
| 642 | 1. Select target device of CC1350F128 |
| 643 | 1. Select connection of Texas Instruments XDS110 USB Debug Probe |
| 644 | 1. Click the "Start" button |
| 645 | 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/}}}) |
| 646 | 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 |
| 647 | |
| 648 | 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. |
| 649 | |
| 650 | At this point you may want to power cycle your device. |
| 651 | |
| 652 | === Command Line Approach === |
| 653 | |
| 654 | 1. Navigate to your uniflash install directory |
| 655 | {{{#!bash |
| 656 | cd uniflash_4.2 |
| 657 | }}} |
| 658 | |
| 659 | 1. 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 | }}} |
| 663 | 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. |
| 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 = |
| 720 | 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. |
| 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 == |
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:''' |
| 748 | All 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 |
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 |
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 |