This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SPPBLEClient button press not working

Other Parts Discussed in Thread: CC2650

Hi,

I am working on SPP project. I want to communicate SPPBLEServer with SPPBLE Client. I could load both programs from CCS to 2 boards. Server side shows "Advertising". but when i press UP button at client side it does not show "Discovering...". In short button press functions at client side not working. I had modified my Board.h file earlier (Keys, LEDs , UART , and LCD IODs). Whenever i load pre built hex files system works fine. How to make the client side to detect serever on button presses? please help (I am using CC2650EM 7ID and SmartRF06 EB)(Software patch downloaded from www.ti.com/.../TIDC-SPPBLE-SW-RD).

My Modified Board.h file
/*
 * Copyright (c) 2015, Texas Instruments Incorporated
 * 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 Texas Instruments Incorporated 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 THE COPYRIGHT OWNER OR
 * CONTRIBUTORS 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.
 */
/** ============================================================================
 *  @file       Board.h
 *
 *  @brief      CC2650SENSORTAG Board Specific header file.
 *
 *  NB! This is the board file for PCB versions 1.2 and 1.3
 *
 *  The CC2650 header file should be included in an application as follows:
 *  @code
 *  #include <Board.h>
 *  @endcode
 *
 *  ============================================================================
 */
#ifndef __BOARD_H__
#define __BOARD_H__

#ifdef __cplusplus
extern "C" {
#endif

/** ============================================================================
 *  Includes
 *  ==========================================================================*/
#include <ti/drivers/PIN.h>
#include <driverlib/ioc.h>

/** ============================================================================
 *  Externs
 *  ==========================================================================*/
extern PIN_Config BoardGpioInitTable[];

/** ============================================================================
 *  Defines
 *  ==========================================================================*/

/* Symbol by generic Board.c to include the correct PCB  specific Board.c */
#define CC2650ST_0120

/* Identify as SensorTag */
#define CC2650ST_7ID

/* Same RF Configuration as 7x7 EM */
#define CC2650EM_7ID

/* This PCB version supports magnetometer */
#define FEATURE_MAGNETOMETER

/* External flash manufacturer and device ID */
#define EXT_FLASH_MAN_ID            0xEF
#define EXT_FLASH_DEV_ID            0x12

/* Mapping of pins to board signals using general board aliases
 *      <board signal alias>                <pin mapping>
 */

/* Discrete outputs */
#define Board_LED1                  IOID_25    // IOID_10
#define Board_LED2                  IOID_27    //IOID_15
#define Board_LED3                  IOID_7    //-----------
#define Board_LED4                  IOID_6    //-----------

#define Board_BUZZER                IOID_21
#define Board_LED_ON                1
#define Board_LED_OFF               0
#define Board_BUZZER_ON             1
#define Board_BUZZER_OFF            0

/* Discrete inputs */
#define Board_KEY_LEFT              IOID_15//IOID_0
#define Board_KEY_RIGHT             IOID_18//IOID_4
#define Board_KEY_UP                 IOID_19//------------
#define Board_KEY_DOWN                 IOID_12//------------
#define Board_KEY_SELECT            IOID_11//------------
#define Board_RELAY                 IOID_3

/* Sensor outputs */
#define Board_MPU_INT               IOID_7
#define Board_TMP_RDY               IOID_1

/* I2C */
#define Board_I2C0_SDA0             IOID_5
#define Board_I2C0_SCL0             IOID_6
#define Board_I2C0_SDA1             IOID_8
#define Board_I2C0_SCL1             IOID_9

/* SPI */
#define Board_SPI_FLASH_CS          IOID_14
#define Board_SPI_DEVPK_CS          IOID_20
#define Board_FLASH_CS_ON           0
#define Board_FLASH_CS_OFF          1
#define Board_DEVPK_CS_ON           1
#define Board_DEVPK_CS_OFF          0

#define Board_SPI0_MISO             IOID_8         //IOID_18
#define Board_SPI0_MOSI             IOID_9         //IOID_19
#define Board_SPI0_CLK              IOID_10        //IOID_17
#define Board_SPI0_CSN              PIN_UNASSIGNED
#define Board_SPI1_MISO             PIN_UNASSIGNED
#define Board_SPI1_MOSI             PIN_UNASSIGNED
#define Board_SPI1_CLK              PIN_UNASSIGNED
#define Board_SPI1_CSN              PIN_UNASSIGNED

/* UART when connected to SRF06EB */
#define Board_EB_UART_TX               IOID_3         // IOID_16
#define Board_EB_UART_RX            IOID_2        //IOID_17

/* DevPack */
#define Board_AUDIOFS_TDO           IOID_16
#define Board_AUDIODO               IOID_22
#define Board_DP2                   IOID_23
#define Board_DP1                   IOID_24
#define Board_DP0                   IOID_25
#define Board_DP3                   IOID_27
#define Board_DP4_UARTRX            IOID_2              //IOID_28
#define Board_DP5_UARTTX            IOID_3               //IOID_29
#define Board_DEVPK_ID              IOID_30

/* Power control */
#define Board_MPU_POWER             IOID_12
#define Board_MPU_POWER_ON          1
#define Board_MPU_POWER_OFF         0


/* LCD control */
#define Board_3V3_EN               IOID_13//--------------
#define Board_LCD_MODE             IOID_4//--------------
#define Board_LCD_RST              IOID_5//--------------
#define Board_LCD_CSN              IOID_14//--------------
#define Board_LCD_SCK              IOID_10//--------------



/* Audio */
#define Board_MIC_POWER             IOID_13
#define Board_MIC_POWER_ON          1
#define Board_MIC_POWER_OFF         0
#define Board_AUDIO_DI              IOID_2
#define Board_AUDIO_CLK             IOID_11

#define REV1_0                                  1
#define REV1_2                                  2

#ifndef DevPackBoard_REV
#define DevPackBoard_REV                      REV1_2
#endif

#if defined(DevPackBoard_REV) && DevPackBoard_REV == REV1_0
/* UART pins used by driver */
#define Board_UART_TX               Board_DP4_UARTRX
#define Board_UART_RX               Board_DP5_UARTTX

#elif DevPackBoard_REV == REV1_2
/* UART pins used by driver with RX/TX switched */
#define Board_UART_TX               Board_DP5_UARTTX
#define Board_UART_RX               Board_DP4_UARTRX
#endif

/** ============================================================================
 *  Instance identifiers
 *  ==========================================================================*/
/* Generic I2C instance identifiers */
#define Board_I2C                   CC2650_I2C0
/* Generic SPI instance identifiers */
#define Board_SPI0                  CC2650_SPI0
#define Board_SPI1                  CC2650_SPI1
/* Generic UART instance identifiers */
#define Board_UART                  CC2650_UART0


/** ============================================================================
 *  Number of peripherals and their names
 *  ==========================================================================*/

/*!
 *  @def    CC2650_I2CName
 *  @brief  Enum of I2C names on the CC2650 dev board
 */
typedef enum CC2650_I2CName {
    CC2650_I2C0 = 0,
    CC2650_I2CCOUNT
} CC2650_I2CName;

/*!
 *  @def    CC2650_CryptoName
 *  @brief  Enum of Crypto names on the CC2650 dev board
 */
typedef enum CC2650_CryptoName {
    CC2650_CRYPTO0 = 0,
    CC2650_CRYPTOCOUNT
} CC2650_CryptoName;


/*!
 *  @def    CC2650_SPIName
 *  @brief  Enum of SPI names on the CC2650 dev board
 */
typedef enum CC2650_SPIName {
    CC2650_SPI0 = 0,
    CC2650_SPI1,
    CC2650_SPICOUNT
} CC2650_SPIName;

/*!
 *  @def    CC2650_UARTName
 *  @brief  Enum of UARTs on the CC2650 dev board
 */
typedef enum CC2650_UARTName {
    CC2650_UART0 = 0,
    CC2650_UARTCOUNT
} CC2650_UARTName;

/*!
 *  @def    CC2650_UdmaName
 *  @brief  Enum of DMA buffers
 */
typedef enum CC2650_UdmaName {
    CC2650_UDMA0 = 0,
    CC2650_UDMACOUNT
} CC2650_UdmaName;

#ifdef __cplusplus
}
#endif

#endif /* __BOARD_H__ */




Br,

Abhijith S

  • Hi Abhijith,

    It seems you are using the board file for the Sensortag, can you try excluding this file and add in the board file for the SmartRF06 board that's used in the original SimpleBLEPeripheral project?

    Best wishes
  • Hi,
    I think I have overwritten that file with this new board.h file :(. from where can i get the original file?. I have modified that  file by referring this pdf


    BR,
    Abhijith S.

  • The board file for RF06 is located in C:\ti\tirtos_simplelink_2_13_00_06\packages\ti\boards\SRF06EB\CC2650EM_7ID\Board.h

    You should not see any definition regarding sensortag
  • Actually i have overwritten that  file at this location , Now i got that  original file from another folder. i will be working on it , but not now. Now i am concentrate on Server side. i can manage client side with an app

  • HI,
    Can we use SPPServer project to measure and display voltage given at input pin ? I have already written a sample code to measure voltage at a pin and print value in console. i want to see this in mobile appa.SPPBLEServer gives a reading on app when we type a value in TeraTerm , right? which part of the program i have to change to display vallues from adc instead of TeraTerm input?
    BR,
    Abhijith
  • Another Qn:
    HI,
    Can we use SPPServer project to measure and display voltage given at input pin ? I have already written a sample code to measure voltage at a pin and print value in console. i want to see this in mobile appa.SPPBLEServer gives a reading on app when we type a value in TeraTerm , right? which part of the program i have to change to display vallues from adc instead of TeraTerm input?
    BR,
    Abhijith
  • Hi,

    You can look at SerialPortService_SetParameter() API with first parameter set to SERIALPORTSERVICE_CHAR_DATA to send data from the server. See the guide Section 2.2.4:

    Best wishes