[SOLVED] Using RPI GPIO fails


#1

Hi,

i ve tried this on a mangOH Red With Legato and wp7702 :

root@swi-mdm9x28-wp:~# legato version
18.09.0-1-g8350546a_05025499e71b1dbb905fd75d6f797c3a_modified

here it is the sample source code given by Sierra to manage RPI GPIO (available here too) :

#include "legato.h"
#include "interfaces.h"


static bool             _led1_on = false;
static le_timer_Ref_t   _led1_BlinkTimer = NULL;
static bool             _led1_blinking = false;

static bool             _led2_on = false;
static le_timer_Ref_t   _led2_BlinkTimer = NULL;
static bool             _led2_blinking = false;

//-------------------------------------------------------------------------------------------------
/**
 * LED 1 state timer handler.
 */
//-------------------------------------------------------------------------------------------------
static void ToogleLed1
(
    le_timer_Ref_t timer  ///< Led state timer
)
{
    if (!_led1_on)
    {
        LE_DEBUG("turn on LED");
        rpi_gpio1_Activate();
        
        _led1_on = true;
    }
    else
    {
        LE_DEBUG("turn off LED");
        rpi_gpio1_Deactivate();

        _led1_on = false;
    }
}

//-------------------------------------------------------------------------------------------------
/**
 * LED 2 state timer handler.
 */
//-------------------------------------------------------------------------------------------------
static void ToogleLed2
(
    le_timer_Ref_t timer  ///< Led state timer
)
{
    if (!_led2_on)
    {
        LE_DEBUG("turn on LED");
        rpi_gpio2_Activate();
        
        _led2_on = true;
    }
    else
    {
        LE_DEBUG("turn off LED");
        rpi_gpio2_Deactivate();

        _led2_on = false;
    }
}

//-------------------------------------------------------------------------------------------------
/**
 * Generic Push button handler -> toggle LED1
 */
//-------------------------------------------------------------------------------------------------
static void GenericPushButtonHandler
(
    bool state, ///< true if the button is pressed
    void *ctx   ///< context pointer - not used
)
{
    LE_INFO("Generic Button State change %s", state?"TRUE":"FALSE");

    _led1_blinking = !_led1_blinking;

    if (_led1_blinking)
    {
        le_timer_Start(_led1_BlinkTimer);
    }
    else
    {
        le_timer_Stop(_led1_BlinkTimer);
    }
}

//-------------------------------------------------------------------------------------------------
/**
 * GPIO_EXP_RPI_3 Push button handler -> toggle LED2
 */
//-------------------------------------------------------------------------------------------------
static void PushButtonHandler
(
    bool state, ///< true if the button is pressed
    void *ctx   ///< context pointer - not used
)
{
    LE_INFO("RPI_GPIO_3 Button State change %s", state?"TRUE":"FALSE");

    _led2_blinking = !_led2_blinking;

    if (_led2_blinking)
    {
        le_timer_Start(_led2_BlinkTimer);
    }
    else
    {
        le_timer_Stop(_led2_BlinkTimer);
    }
}

//-------------------------------------------------------------------------------------------------
/**
 * Configure GPIOs
 */
//-------------------------------------------------------------------------------------------------
static void ConfigureGpios(void)
{
    // Set LED 1 GPIO to output and initially turn the LED OFF
    LE_FATAL_IF(
        rpi_gpio1_SetPushPullOutput(RPI_GPIO1_ACTIVE_LOW, true) != LE_OK,
        "Couldn't configure LED 1 GPIO as a push pull output");
    rpi_gpio1_Deactivate();

    _led1_on = false;

    // Set LED 2 GPIO to output and initially turn the LED OFF
    LE_FATAL_IF(
        rpi_gpio2_SetPushPullOutput(RPI_GPIO2_ACTIVE_LOW, true) != LE_OK,
        "Couldn't configure LED 1 GPIO as a push pull output");
    rpi_gpio2_Deactivate();

    _led2_on = false;

    // Set the Generic push-button GPIO as input
    LE_FATAL_IF(
        mangoh_button_SetInput(MANGOH_BUTTON_ACTIVE_LOW) != LE_OK,
        "Couldn't configure push button as input");
    mangoh_button_AddChangeEventHandler(MANGOH_BUTTON_EDGE_RISING, GenericPushButtonHandler, NULL, 0);

    // Set the RPI_EXP_3 GPIO as input, for push button
    LE_FATAL_IF(
        rpi_gpio3_SetInput(RPI_GPIO3_ACTIVE_LOW) != LE_OK,
        "Couldn't configure RPI_GPIO_3 as push button");
    rpi_gpio3_AddChangeEventHandler(RPI_GPIO3_EDGE_RISING, PushButtonHandler, NULL, 0);
}


COMPONENT_INIT
{
    _led1_BlinkTimer = le_timer_Create("Led 1 Blink");
    LE_ASSERT_OK(le_timer_SetRepeat(_led1_BlinkTimer, 0));
    LE_ASSERT_OK(le_timer_SetMsInterval(_led1_BlinkTimer, 1000));    //blink every second
    LE_ASSERT_OK(le_timer_SetHandler(_led1_BlinkTimer, ToogleLed1));

    _led2_BlinkTimer = le_timer_Create("Led 2 Blink");
    LE_ASSERT_OK(le_timer_SetRepeat(_led2_BlinkTimer, 0));
    LE_ASSERT_OK(le_timer_SetMsInterval(_led2_BlinkTimer, 500));    //blink every 500ms
    LE_ASSERT_OK(le_timer_SetHandler(_led2_BlinkTimer, ToogleLed2));

    ConfigureGpios();

}

But it gets stucked:

root@swi-mdm9x28-wp:~# sdir list

BINDINGS

        <root>.sdirTool -> <root>.sdirTool
        <root>.LogClient -> <root>.LogClient
        <root>.LogControl -> <root>.LogControl
        <root>.le_appCtrl -> <root>.le_appCtrl
        <root>.le_framework -> <root>.le_framework
        <root>.wdog -> <root>.wdog
        <root>.le_wdog -> <root>.le_wdog
        <root>.le_cfg -> <root>.le_cfg
        <root>.le_cfgAdmin -> <root>.le_cfgAdmin
        <root>.le_update -> <root>.le_update
        <root>.le_updateCtrl -> <root>.le_updateCtrl
        <root>.le_appRemove -> <root>.le_appRemove
        <root>.le_instStat -> <root>.le_instStat
        <root>.le_appInfo -> <root>.le_appInfo
        <root>.le_appProc -> <root>.le_appProc
        <root>.le_ima -> <root>.le_ima
        <root>.appSmack -> <root>.appSmack
        <root>.logFd -> <root>.logFd
        <root>.configTreeWdog -> <root>.configTreeWdog
        <root>.logDaemonWdog -> <root>.logDaemonWdog
        <root>.updateDaemonWdog -> <root>.updateDaemonWdog
        <root>.supervisorWdog -> <root>.supervisorWdog
        <root>.le_sup_ctrl -> <root>.le_sup_ctrl
        <root>.le_fwupdate -> <root>.le_fwupdate
        <root>.atClientDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.atServerDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.atServerDaemon.atServer.le_atClient -> <root>.le_atClient
        <root>.audioDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.audioDaemon.audio.le_pm -> <root>.le_pm
        <root>.avcDaemon.appCfg.le_cfg -> <root>.le_cfg
        <root>.avcDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.avcDaemon.avcDaemon.le_instStat -> <root>.le_instStat
        <root>.avcDaemon.avcDaemon.le_appRemove -> <root>.le_appRemove
        <root>.avcDaemon.avcDaemon.le_appCtrl -> <root>.le_appCtrl
        <root>.avcDaemon.avcDaemon.le_cfg -> <root>.le_cfg
        <root>.avcDaemon.avcDaemon.le_data -> <root>.le_data
        <root>.avcDaemon.avcDaemon.le_ulpm -> <root>.le_ulpm
        <root>.avcDaemon.avcDaemon.le_info -> <root>.le_info
        <root>.avcDaemon.avcDaemon.le_ips -> <root>.le_ips
        <root>.avcDaemon.avcDaemon.le_mdc -> <root>.le_mdc
        <root>.avcDaemon.avcDaemon.le_mrc -> <root>.le_mrc
        <root>.avcDaemon.avcDaemon.le_sim -> <root>.le_sim
        <root>.avcDaemon.avcDaemon.le_sms -> <root>.le_sms
        <root>.avcDaemon.avcDaemon.le_temp -> <root>.le_temp
        <root>.avcDaemon.avcDaemon.le_gnss -> <root>.le_gnss
        <root>.avcDaemon.avcDaemon.le_pos -> <root>.le_pos
        <root>.avcDaemon.avcDaemon.le_appInfo -> <root>.le_appInfo
        <root>.avcDaemon.avcDaemon.le_fwupdate -> <root>.le_fwupdate
        <root>.avcDaemon.avcDaemon.le_update -> <root>.le_update
        <root>.avcDaemon.avcDaemon.le_framework -> <root>.le_framework
        <root>.avcDaemon.avcDaemon.le_secStore -> <root>.le_secStore
        <root>.avcDaemon.avcDaemon.le_cellnet -> <root>.le_cellnet
        <root>.battery.batteryComponent.le_cfg -> <root>.le_cfg
        <root>.battery.batteryComponent.dhubIO -> <root>.io
        <root>.cellNetService.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.cellNetService.cellNetService.le_sim -> <root>.le_sim
        <root>.cellNetService.cellNetService.le_mrc -> <root>.le_mrc
        <root>.cellNetService.cellNetService.le_secStore -> <root>.le_secStore
        <root>.dcsDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.dcsDaemon.dcsDaemon.le_mdc -> <root>.le_mdc
        <root>.dcsDaemon.dcsDaemon.le_mrc -> <root>.le_mrc
        <root>.dcsDaemon.dcsDaemon.le_cfg -> <root>.le_cfg
        <root>.dcsDaemon.dcsDaemon.le_wifiClient -> <root>.le_wifiClient
        <root>.dhubToolAdmin -> <root>.admin
        <root>.dhubToolQuery -> <root>.query
        <root>.dhubToolIo -> <root>.io
        <root>.devMode.devMode.le_pm -> <root>.le_pm
        <root>.devMode.devMode.le_updateCtrl -> <root>.le_updateCtrl
        <root>.devMode.devMode.le_instStat -> <root>.le_instStat
        <root>.devMode.devMode.le_framework -> <root>.le_framework
        <root>.dr.drTool.dataRouter -> dataRouter.dataRouter
        <root>.fwupdateDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.gpioService.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.gpioService.sysfsGpio.le_cfg -> <root>.le_cfg
        <root>.modemDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.modemDaemon.modemDaemon.le_cfg -> <root>.le_cfg
        <root>.modemDaemon.modemDaemon.le_pm -> <root>.le_pm
        <root>.rSimDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.portDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.portDaemon.portDaemon.le_atServer -> <root>.le_atServer
        <root>.posDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.posDaemon.posDaemon.le_cfg -> <root>.le_cfg
        <root>.powerManagerService.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.powerManagerService.powerMgr.le_framework -> <root>.le_framework
        <root>.secStore.appCfg.le_cfg -> <root>.le_cfg
        <root>.secStore.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.secStore.secStoreDaemon.le_appInfo -> <root>.le_appInfo
        <root>.secStore.secStoreDaemon.le_update -> <root>.le_update
        <root>.smsInboxService.smsInboxService.le_sim -> <root>.le_sim
        <root>.smsInboxService.smsInboxService.le_sms -> <root>.le_sms
        <root>.smsInboxService.smsInboxService.le_cfg -> <root>.le_cfg
        <root>.cm.cm.le_cfg -> <root>.le_cfg
        <root>.cm.cm.le_ulpm -> <root>.le_ulpm
        <root>.cm.cm.le_mrc -> <root>.le_mrc
        <root>.cm.cm.le_mdc -> <root>.le_mdc
        <root>.cm.cm.le_sim -> <root>.le_sim
        <root>.cm.cm.le_sms -> <root>.le_sms
        <root>.cm.cm.le_info -> <root>.le_info
        <root>.cm.cm.le_adc -> <root>.le_adc
        <root>.cm.cm.le_temp -> <root>.le_temp
        <root>.cm.cm.le_ips -> <root>.le_ips
        <root>.cm.cm.le_rtc -> <root>.le_rtc
        <root>.cm.cm.le_cellnet -> <root>.le_cellnet
        <root>.fwupdate.fwupdate.le_fwupdate -> <root>.le_fwupdate
        <root>.gnss.gnss.le_gnss -> <root>.le_gnss
        <root>.gnss.gnss.le_pos -> <root>.le_pos
        <root>.gnss.gnss.le_posCtrl -> <root>.le_posCtrl
        <root>.kmod.moduleLoad.le_kernelModule -> <root>.le_kernelModule
        <root>.pmtool.pmtool.le_ulpm -> <root>.le_ulpm
        <root>.pmtool.pmtool.le_bootReason -> <root>.le_bootReason
        <root>.pmtool.pmtool.le_pm -> <root>.le_pm
        <root>.secstore.secstore.secStoreAdmin -> <root>.secStoreAdmin
        <root>.voiceCallService.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.voiceCallService.voiceCallService.le_mcc -> <root>.le_mcc
        <root>.voiceCallService.voiceCallService.le_audio -> <root>.le_audio
        <root>.wifi.wifi.le_wifiClient -> <root>.le_wifiClient
        <root>.wifi.wifi.le_wifiAp -> <root>.le_wifiAp
        <root>.wifiApTest.wifiApTestComponent.le_wifiAp -> <root>.le_wifiAp
        <root>.wifiClientTest.wifiClientTestComponent.le_wifiClient -> <root>.le_wifiClient
        <root>.wifiWebAp.wifiWebApComponent.le_wifiAp -> <root>.le_wifiAp
        <root>.mqttClient.mqttClientApiComponent.le_info -> <root>.le_info
        <root>.OrangeStarterKit.smsClient.le_sms -> <root>.le_sms
        <root>.OrangeStarterKit.OrangeStarterKitComponent.le_mdc -> <root>.le_mdc
        <root>.OrangeStarterKit.OrangeStarterKitComponent.le_info -> <root>.le_info
        <root>.OrangeStarterKit.OrangeStarterKitComponent.le_adc -> <root>.le_adc
        <root>.OrangeStarterKit.OrangeStarterKitComponent.ma_led -> <root>.ma_led
        <root>.OrangeStarterKit.dataProfileComponent.le_data -> <root>.le_data
        <root>.OrangeStarterKit.dataProfileComponent.le_mdc -> <root>.le_mdc
        <root>.OrangeStarterKit.LiveObjects.mqttClient -> <root>.mqttClient
        <root>.OrangeStarterKit.LiveObjects.le_data -> <root>.le_data
        dataRouter.LogClient -> <root>.LogClient
        dataRouter.dataRouter.routerComponent.mqtt -> <root>.mqtt
        dataRouter.dataRouter.routerComponent.le_appInfo -> <root>.le_appInfo
        dataRouter.dataRouter.routerComponent.le_avdata -> <root>.le_avdata
        dataRouter.dataRouter.routerComponent.le_secStore -> <root>.le_secStore
        dataRouter.dataRouter.routerComponent.le_cfg -> <root>.le_cfg
        dataPushTest.LogClient -> <root>.LogClient
        dataPushTest.dataPushTest.avPublisherComponent.le_avdata -> <root>.le_avdata
        redSensorToCloud.LogClient -> <root>.LogClient
        redSensorToCloud.redSensorToCloud.sensorsComponent.le_adc -> <root>.le_adc
        redSensorToCloud.redSensorToCloud.sensorsComponent.le_posCtrl -> <root>.le_posCtrl
        redSensorToCloud.redSensorToCloud.sensorsComponent.le_pos -> <root>.le_pos
        redSensorToCloud.redSensorToCloud.avPublisherComponent.le_avdata -> <root>.le_avdata
        redSensorToCloud.redSensorToCloud.avPublisherComponent.ma_led -> <root>.ma_led
        socialService.LogClient -> <root>.LogClient
        socialService.socialService.social.le_cfg -> <root>.le_cfg
        socialService.twitterClient.twitterClient.serviceConfig -> socialService.socialService.social.serviceConfig
        socialService.twitterClient.twitterClient.twitter -> socialService.twitter
        spiService.LogClient -> <root>.LogClient
        spiService.spiService.watchdogChain.le_wdog -> <root>.le_wdog
        helloWorld.LogClient -> <root>.LogClient

SERVICES

        <root>.sdirTool  (protocol ID = 'sdirTool', max message size = 268 bytes)
        <root>.logFd  (protocol ID = 'f871a40b4c7617a93b47f874956f1e69', max message size = 118 bytes)
        <root>.logDaemonWdog  (protocol ID = '5f75fa14e4d6040284a6d7f2ca05dade', max message size = 24 bytes)
        <root>.LogClient  (protocol ID = 'LogControlProtocol', max message size = 300 bytes)
        <root>.LogControl  (protocol ID = 'LogControlProtocol', max message size = 300 bytes)
        <root>.le_cfg  (protocol ID = '26b40ad3a107d48e4227dff8903b9601', max message size = 1565 bytes)
        <root>.le_cfgAdmin  (protocol ID = '2aac298e89c905c985fd3b9437fb9f53', max message size = 1052 bytes)
        <root>.configTreeWdog  (protocol ID = '5f75fa14e4d6040284a6d7f2ca05dade', max message size = 24 bytes)
        <root>.le_update  (protocol ID = '17cd65c5c26efb8f22650432980df70f', max message size = 56 bytes)
        <root>.le_appRemove  (protocol ID = '13c5300b39cc08587796fd4b47183f92', max message size = 67 bytes)
        <root>.le_instStat  (protocol ID = 'e160a983e92b4310ae8af3fbeff75a1b', max message size = 63 bytes)
        <root>.le_updateCtrl  (protocol ID = '2068715d5da737c096cc7146ce5f1df6', max message size = 17 bytes)
        <root>.updateDaemonWdog  (protocol ID = '5f75fa14e4d6040284a6d7f2ca05dade', max message size = 24 bytes)
        <root>.le_atClient  (protocol ID = 'ef7be0a431448f583f2e7a2ec83a5680', max message size = 4119 bytes)
        <root>.le_atServer  (protocol ID = '2527056ddcf5218c3a18f8b922a25fd2', max message size = 4123 bytes)
        <root>.ma_led  (protocol ID = '91c870ebd3551834d9731e5d0681a038', max message size = 16 bytes)
        <root>.le_port  (protocol ID = 'c7135da061a6a38d810159fff5799177', max message size = 70 bytes)
        <root>.le_rsim  (protocol ID = 'b09e1d24fc5dc8036c1bf572dbd40b21', max message size = 300 bytes)
        <root>.le_sup_ctrl  (protocol ID = 'bb17ec49ba32b1f1cfa05c1fa0000719', max message size = 68 bytes)
        <root>.le_appCtrl  (protocol ID = 'bbc8a1041b89cad83df1e4bfb1c9a067', max message size = 541 bytes)
        <root>.le_framework  (protocol ID = '28525bdc36d66247ae720424d0b28b51', max message size = 17 bytes)
        <root>.wdog  (protocol ID = '80408175972a85f9cd0abf02df19f2f3', max message size = 16 bytes)
        <root>.supervisorWdog  (protocol ID = '5f75fa14e4d6040284a6d7f2ca05dade', max message size = 24 bytes)
        <root>.le_appInfo  (protocol ID = '092c2f7994c22cecc1e5a2608e1595b0', max message size = 118 bytes)
        <root>.le_appProc  (protocol ID = '3a750db42e253ea2307d75519c48afeb', max message size = 633 bytes)
        <root>.le_ima  (protocol ID = '32b128a43637f60e028aba17f6513daa', max message size = 531 bytes)
        <root>.le_kernelModule  (protocol ID = 'b9a021649e1b6d35ccdd0293014c964b', max message size = 80 bytes)
        <root>.le_pm  (protocol ID = '39f21a4932ef87d302a8f31dfe5a0af7', max message size = 55 bytes)
        <root>.le_ulpm  (protocol ID = 'fdb586a476e5e0e19b60614aa1ea5d7a', max message size = 40 bytes)
        <root>.le_bootReason  (protocol ID = '2d79668511adea4d675f5d77b9f2d3ea', max message size = 17 bytes)
        <root>.io  (protocol ID = '2521df9c34619280d5712f58693a0ac8', max message size = 238 bytes)
        <root>.admin  (protocol ID = 'e825b12f3c6c38e778065318ec4bb76c', max message size = 234 bytes)
        <root>.query  (protocol ID = 'ce058d01527d4eb46f3b3fff76784fa6', max message size = 246 bytes)
        <root>.le_wdog  (protocol ID = '572ba176b790548eed89b7ba6f9f4b14', max message size = 24 bytes)
        <root>.le_audio  (protocol ID = '6a8550b129317ef436c4894129509c7c', max message size = 132 bytes)
        <root>.ma_battery  (protocol ID = '438130cada0d5ac2f4a3245f58f5ba31', max message size = 152 bytes)
        <root>.ma_adminbattery  (protocol ID = 'c914c29c3c0f31fc2b8641c409866acb', max message size = 152 bytes)
        <root>.le_wifiClient  (protocol ID = '49eb962b16889a72c83872700e06f2da', max message size = 223 bytes)
        <root>.le_wifiAp  (protocol ID = '461e6b8f546beb192a8645fb0d26e89d', max message size = 94 bytes)
        <root>.le_fwupdate  (protocol ID = 'a8f730857c018907842f8ee02858e26f', max message size = 276 bytes)
        <root>.le_dualsys  (protocol ID = '69539775d6f1358ade33034c2fa222c4', max message size = 20 bytes)
        <root>.le_flash  (protocol ID = 'a36a81bca852297786086f08a8884cda', max message size = 262172 bytes)
        <root>.le_gnss  (protocol ID = 'ac786c9bdfedf53fb1ab99476841610f', max message size = 2023 bytes)
        <root>.le_pos  (protocol ID = 'c9b4a5b877bfe3915d5029d8393d9566', max message size = 36 bytes)
        <root>.le_posCtrl  (protocol ID = 'd47cc30512e69387f546399a44c565e4', max message size = 16 bytes)
        <root>.le_secStore  (protocol ID = '98c2a4dd482018a94c642390891be24f', max message size = 8471 bytes)
        <root>.secStoreGlobal  (protocol ID = '98c2a4dd482018a94c642390891be24f', max message size = 8471 bytes)
        <root>.secStoreAdmin  (protocol ID = '4995e42beb8aa21c2fabf4414840024d', max message size = 8727 bytes)
        <root>.le_gpioPin1  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin2  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin3  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin4  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin5  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin7  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin8  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin9  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin10  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin11  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin12  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin14  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin15  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin16  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin17  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin18  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin19  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin20  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin21  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin22  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin23  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin24  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin25  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin26  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin27  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin28  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin29  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin30  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin31  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin32  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin33  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin34  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin35  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin36  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin37  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin38  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin39  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin40  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin41  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin42  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin43  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin44  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin45  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin46  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_info  (protocol ID = '975257ab76b4bd700b883f96a47b6508', max message size = 276 bytes)
        <root>.le_sms  (protocol ID = '6e36b32bb82b37b44288335e8dec164e', max message size = 205 bytes)
        <root>.le_mrc  (protocol ID = '9050243ec820d5521bcc635c52691835', max message size = 124 bytes)
        <root>.le_sim  (protocol ID = 'a0eebdf2681bff48efc6d76ad002fd10', max message size = 540 bytes)
        <root>.le_mdc  (protocol ID = '5110946da2c3c40cf6a28792bb0cf4ef', max message size = 196 bytes)
        <root>.le_mcc  (protocol ID = 'bf43202a0369b12bb827e1bc4724bb41', max message size = 41 bytes)
        <root>.le_ecall  (protocol ID = '9ca2a687836cbb0fe7a26c7519fc2637', max message size = 164 bytes)
        <root>.le_ips  (protocol ID = '90ad953c761aa71f85c44f94ee91aff1', max message size = 24 bytes)
        <root>.le_temp  (protocol ID = '01650568439a3a9c47468069df5a7783', max message size = 128 bytes)
        <root>.le_antenna  (protocol ID = 'c6ad7def5425943d0e3b97ad84593ed5', max message size = 24 bytes)
        <root>.le_riPin  (protocol ID = 'aafbc3c57eec1350fdae5eb6fe083e5a', max message size = 17 bytes)
        <root>.le_adc  (protocol ID = 'cca082d3d4d6b9c7c11466ab2ea74e4f', max message size = 54 bytes)
        <root>.le_rtc  (protocol ID = '88750cf71cdf94a8a7d68de367465558', max message size = 24 bytes)
        <root>.le_mdmCfg  (protocol ID = 'fcf3b5cece06794472fb938f2c621c50', max message size = 16 bytes)
        <root>.le_lpt  (protocol ID = 'ddfabab9b938cdcb7564dbd7632f76bc', max message size = 24 bytes)
        <root>.mqttClient  (protocol ID = 'cfa0257f5f505e5a5cb045d0e9846322', max message size = 1204 bytes)
        <root>.le_cellnet  (protocol ID = 'd635d930065e3c3f1e7f12c3b1ec3c41', max message size = 32 bytes)
        <root>.le_data  (protocol ID = '301e0f957699e656d25d93021f0f5a77', max message size = 117 bytes)
        <root>.le_avc  (protocol ID = '7a818d1ee00573303dc3b4f87c43e029', max message size = 541 bytes)
        <root>.le_avdata  (protocol ID = 'd042ee9f795ba3ff64aacf91d970b8fc', max message size = 802 bytes)

WAITING CLIENTS

        [pid  9861] <root>.ioRaspi.ioRaspiComponent.mangoh_button UNBOUND  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd')

The rest of the story in the second post


#2

If I remove all code concerning gpio rpi 1& 2, it s stucking on gpio 3:


BINDINGS

        <root>.sdirTool -> <root>.sdirTool
        <root>.LogClient -> <root>.LogClient
        <root>.LogControl -> <root>.LogControl
        <root>.le_appCtrl -> <root>.le_appCtrl
        <root>.le_framework -> <root>.le_framework
        <root>.wdog -> <root>.wdog
        <root>.le_wdog -> <root>.le_wdog
        <root>.le_cfg -> <root>.le_cfg
        <root>.le_cfgAdmin -> <root>.le_cfgAdmin
        <root>.le_update -> <root>.le_update
        <root>.le_updateCtrl -> <root>.le_updateCtrl
        <root>.le_appRemove -> <root>.le_appRemove
        <root>.le_instStat -> <root>.le_instStat
        <root>.le_appInfo -> <root>.le_appInfo
        <root>.le_appProc -> <root>.le_appProc
        <root>.le_ima -> <root>.le_ima
        <root>.appSmack -> <root>.appSmack
        <root>.logFd -> <root>.logFd
        <root>.configTreeWdog -> <root>.configTreeWdog
        <root>.logDaemonWdog -> <root>.logDaemonWdog
        <root>.updateDaemonWdog -> <root>.updateDaemonWdog
        <root>.supervisorWdog -> <root>.supervisorWdog
        <root>.le_sup_ctrl -> <root>.le_sup_ctrl
        <root>.le_fwupdate -> <root>.le_fwupdate
        <root>.atClientDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.atServerDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.atServerDaemon.atServer.le_atClient -> <root>.le_atClient
        <root>.audioDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.audioDaemon.audio.le_pm -> <root>.le_pm
        <root>.avcDaemon.appCfg.le_cfg -> <root>.le_cfg
        <root>.avcDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.avcDaemon.avcDaemon.le_instStat -> <root>.le_instStat
        <root>.avcDaemon.avcDaemon.le_appRemove -> <root>.le_appRemove
        <root>.avcDaemon.avcDaemon.le_appCtrl -> <root>.le_appCtrl
        <root>.avcDaemon.avcDaemon.le_cfg -> <root>.le_cfg
        <root>.avcDaemon.avcDaemon.le_data -> <root>.le_data
        <root>.avcDaemon.avcDaemon.le_ulpm -> <root>.le_ulpm
        <root>.avcDaemon.avcDaemon.le_info -> <root>.le_info
        <root>.avcDaemon.avcDaemon.le_ips -> <root>.le_ips
        <root>.avcDaemon.avcDaemon.le_mdc -> <root>.le_mdc
        <root>.avcDaemon.avcDaemon.le_mrc -> <root>.le_mrc
        <root>.avcDaemon.avcDaemon.le_sim -> <root>.le_sim
        <root>.avcDaemon.avcDaemon.le_sms -> <root>.le_sms
        <root>.avcDaemon.avcDaemon.le_temp -> <root>.le_temp
        <root>.avcDaemon.avcDaemon.le_gnss -> <root>.le_gnss
        <root>.avcDaemon.avcDaemon.le_pos -> <root>.le_pos
        <root>.avcDaemon.avcDaemon.le_appInfo -> <root>.le_appInfo
        <root>.avcDaemon.avcDaemon.le_fwupdate -> <root>.le_fwupdate
        <root>.avcDaemon.avcDaemon.le_update -> <root>.le_update
        <root>.avcDaemon.avcDaemon.le_framework -> <root>.le_framework
        <root>.avcDaemon.avcDaemon.le_secStore -> <root>.le_secStore
        <root>.avcDaemon.avcDaemon.le_cellnet -> <root>.le_cellnet
        <root>.battery.batteryComponent.le_cfg -> <root>.le_cfg
        <root>.battery.batteryComponent.dhubIO -> <root>.io
        <root>.cellNetService.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.cellNetService.cellNetService.le_sim -> <root>.le_sim
        <root>.cellNetService.cellNetService.le_mrc -> <root>.le_mrc
        <root>.cellNetService.cellNetService.le_secStore -> <root>.le_secStore
        <root>.dcsDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.dcsDaemon.dcsDaemon.le_mdc -> <root>.le_mdc
        <root>.dcsDaemon.dcsDaemon.le_mrc -> <root>.le_mrc
        <root>.dcsDaemon.dcsDaemon.le_cfg -> <root>.le_cfg
        <root>.dcsDaemon.dcsDaemon.le_wifiClient -> <root>.le_wifiClient
        <root>.dhubToolAdmin -> <root>.admin
        <root>.dhubToolQuery -> <root>.query
        <root>.dhubToolIo -> <root>.io
        <root>.devMode.devMode.le_pm -> <root>.le_pm
        <root>.devMode.devMode.le_updateCtrl -> <root>.le_updateCtrl
        <root>.devMode.devMode.le_instStat -> <root>.le_instStat
        <root>.devMode.devMode.le_framework -> <root>.le_framework
        <root>.dr.drTool.dataRouter -> dataRouter.dataRouter
        <root>.fwupdateDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.gpioService.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.gpioService.sysfsGpio.le_cfg -> <root>.le_cfg
        <root>.modemDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.modemDaemon.modemDaemon.le_cfg -> <root>.le_cfg
        <root>.modemDaemon.modemDaemon.le_pm -> <root>.le_pm
        <root>.rSimDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.portDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.portDaemon.portDaemon.le_atServer -> <root>.le_atServer
        <root>.posDaemon.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.posDaemon.posDaemon.le_cfg -> <root>.le_cfg
        <root>.powerManagerService.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.powerManagerService.powerMgr.le_framework -> <root>.le_framework
        <root>.secStore.appCfg.le_cfg -> <root>.le_cfg
        <root>.secStore.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.secStore.secStoreDaemon.le_appInfo -> <root>.le_appInfo
        <root>.secStore.secStoreDaemon.le_update -> <root>.le_update
        <root>.smsInboxService.smsInboxService.le_sim -> <root>.le_sim
        <root>.smsInboxService.smsInboxService.le_sms -> <root>.le_sms
        <root>.smsInboxService.smsInboxService.le_cfg -> <root>.le_cfg
        <root>.cm.cm.le_cfg -> <root>.le_cfg
        <root>.cm.cm.le_ulpm -> <root>.le_ulpm
        <root>.cm.cm.le_mrc -> <root>.le_mrc
        <root>.cm.cm.le_mdc -> <root>.le_mdc
        <root>.cm.cm.le_sim -> <root>.le_sim
        <root>.cm.cm.le_sms -> <root>.le_sms
        <root>.cm.cm.le_info -> <root>.le_info
        <root>.cm.cm.le_adc -> <root>.le_adc
        <root>.cm.cm.le_temp -> <root>.le_temp
        <root>.cm.cm.le_ips -> <root>.le_ips
        <root>.cm.cm.le_rtc -> <root>.le_rtc
        <root>.cm.cm.le_cellnet -> <root>.le_cellnet
        <root>.fwupdate.fwupdate.le_fwupdate -> <root>.le_fwupdate
        <root>.gnss.gnss.le_gnss -> <root>.le_gnss
        <root>.gnss.gnss.le_pos -> <root>.le_pos
        <root>.gnss.gnss.le_posCtrl -> <root>.le_posCtrl
        <root>.kmod.moduleLoad.le_kernelModule -> <root>.le_kernelModule
        <root>.pmtool.pmtool.le_ulpm -> <root>.le_ulpm
        <root>.pmtool.pmtool.le_bootReason -> <root>.le_bootReason
        <root>.pmtool.pmtool.le_pm -> <root>.le_pm
        <root>.secstore.secstore.secStoreAdmin -> <root>.secStoreAdmin
        <root>.voiceCallService.watchdogChain.le_wdog -> <root>.le_wdog
        <root>.voiceCallService.voiceCallService.le_mcc -> <root>.le_mcc
        <root>.voiceCallService.voiceCallService.le_audio -> <root>.le_audio
        <root>.wifi.wifi.le_wifiClient -> <root>.le_wifiClient
        <root>.wifi.wifi.le_wifiAp -> <root>.le_wifiAp
        <root>.wifiApTest.wifiApTestComponent.le_wifiAp -> <root>.le_wifiAp
        <root>.wifiClientTest.wifiClientTestComponent.le_wifiClient -> <root>.le_wifiClient
        <root>.wifiWebAp.wifiWebApComponent.le_wifiAp -> <root>.le_wifiAp
        <root>.mqttClient.mqttClientApiComponent.le_info -> <root>.le_info
        <root>.OrangeStarterKit.smsClient.le_sms -> <root>.le_sms
        <root>.OrangeStarterKit.OrangeStarterKitComponent.le_mdc -> <root>.le_mdc
        <root>.OrangeStarterKit.OrangeStarterKitComponent.le_info -> <root>.le_info
        <root>.OrangeStarterKit.OrangeStarterKitComponent.le_adc -> <root>.le_adc
        <root>.OrangeStarterKit.OrangeStarterKitComponent.ma_led -> <root>.ma_led
        <root>.OrangeStarterKit.dataProfileComponent.le_data -> <root>.le_data
        <root>.OrangeStarterKit.dataProfileComponent.le_mdc -> <root>.le_mdc
        <root>.OrangeStarterKit.LiveObjects.mqttClient -> <root>.mqttClient
        <root>.OrangeStarterKit.LiveObjects.le_data -> <root>.le_data
        dataRouter.LogClient -> <root>.LogClient
        dataRouter.dataRouter.routerComponent.mqtt -> <root>.mqtt
        dataRouter.dataRouter.routerComponent.le_appInfo -> <root>.le_appInfo
        dataRouter.dataRouter.routerComponent.le_avdata -> <root>.le_avdata
        dataRouter.dataRouter.routerComponent.le_secStore -> <root>.le_secStore
        dataRouter.dataRouter.routerComponent.le_cfg -> <root>.le_cfg
        dataPushTest.LogClient -> <root>.LogClient
        dataPushTest.dataPushTest.avPublisherComponent.le_avdata -> <root>.le_avdata
        redSensorToCloud.LogClient -> <root>.LogClient
        redSensorToCloud.redSensorToCloud.sensorsComponent.le_adc -> <root>.le_adc
        redSensorToCloud.redSensorToCloud.sensorsComponent.le_posCtrl -> <root>.le_posCtrl
        redSensorToCloud.redSensorToCloud.sensorsComponent.le_pos -> <root>.le_pos
        redSensorToCloud.redSensorToCloud.avPublisherComponent.le_avdata -> <root>.le_avdata
        redSensorToCloud.redSensorToCloud.avPublisherComponent.ma_led -> <root>.ma_led
        socialService.LogClient -> <root>.LogClient
        socialService.socialService.social.le_cfg -> <root>.le_cfg
        socialService.twitterClient.twitterClient.serviceConfig -> socialService.socialService.social.serviceConfig
        socialService.twitterClient.twitterClient.twitter -> socialService.twitter
        spiService.LogClient -> <root>.LogClient
        spiService.spiService.watchdogChain.le_wdog -> <root>.le_wdog
        helloWorld.LogClient -> <root>.LogClient

SERVICES

        <root>.sdirTool  (protocol ID = 'sdirTool', max message size = 268 bytes)
        <root>.logFd  (protocol ID = 'f871a40b4c7617a93b47f874956f1e69', max message size = 118 bytes)
        <root>.logDaemonWdog  (protocol ID = '5f75fa14e4d6040284a6d7f2ca05dade', max message size = 24 bytes)
        <root>.LogClient  (protocol ID = 'LogControlProtocol', max message size = 300 bytes)
        <root>.LogControl  (protocol ID = 'LogControlProtocol', max message size = 300 bytes)
        <root>.le_cfg  (protocol ID = '26b40ad3a107d48e4227dff8903b9601', max message size = 1565 bytes)
        <root>.le_cfgAdmin  (protocol ID = '2aac298e89c905c985fd3b9437fb9f53', max message size = 1052 bytes)
        <root>.configTreeWdog  (protocol ID = '5f75fa14e4d6040284a6d7f2ca05dade', max message size = 24 bytes)
        <root>.le_update  (protocol ID = '17cd65c5c26efb8f22650432980df70f', max message size = 56 bytes)
        <root>.le_appRemove  (protocol ID = '13c5300b39cc08587796fd4b47183f92', max message size = 67 bytes)
        <root>.le_instStat  (protocol ID = 'e160a983e92b4310ae8af3fbeff75a1b', max message size = 63 bytes)
        <root>.le_updateCtrl  (protocol ID = '2068715d5da737c096cc7146ce5f1df6', max message size = 17 bytes)
        <root>.updateDaemonWdog  (protocol ID = '5f75fa14e4d6040284a6d7f2ca05dade', max message size = 24 bytes)
        <root>.ma_led  (protocol ID = '91c870ebd3551834d9731e5d0681a038', max message size = 16 bytes)
        <root>.le_atClient  (protocol ID = 'ef7be0a431448f583f2e7a2ec83a5680', max message size = 4119 bytes)
        <root>.le_sup_ctrl  (protocol ID = 'bb17ec49ba32b1f1cfa05c1fa0000719', max message size = 68 bytes)
        <root>.le_appCtrl  (protocol ID = 'bbc8a1041b89cad83df1e4bfb1c9a067', max message size = 541 bytes)
        <root>.le_framework  (protocol ID = '28525bdc36d66247ae720424d0b28b51', max message size = 17 bytes)
        <root>.wdog  (protocol ID = '80408175972a85f9cd0abf02df19f2f3', max message size = 16 bytes)
        <root>.supervisorWdog  (protocol ID = '5f75fa14e4d6040284a6d7f2ca05dade', max message size = 24 bytes)
        <root>.le_appInfo  (protocol ID = '092c2f7994c22cecc1e5a2608e1595b0', max message size = 118 bytes)
        <root>.le_appProc  (protocol ID = '3a750db42e253ea2307d75519c48afeb', max message size = 633 bytes)
        <root>.le_ima  (protocol ID = '32b128a43637f60e028aba17f6513daa', max message size = 531 bytes)
        <root>.le_kernelModule  (protocol ID = 'b9a021649e1b6d35ccdd0293014c964b', max message size = 80 bytes)
        <root>.le_rsim  (protocol ID = 'b09e1d24fc5dc8036c1bf572dbd40b21', max message size = 300 bytes)
        <root>.le_wdog  (protocol ID = '572ba176b790548eed89b7ba6f9f4b14', max message size = 24 bytes)
        <root>.le_pm  (protocol ID = '39f21a4932ef87d302a8f31dfe5a0af7', max message size = 55 bytes)
        <root>.le_ulpm  (protocol ID = 'fdb586a476e5e0e19b60614aa1ea5d7a', max message size = 40 bytes)
        <root>.le_bootReason  (protocol ID = '2d79668511adea4d675f5d77b9f2d3ea', max message size = 17 bytes)
        <root>.le_audio  (protocol ID = '6a8550b129317ef436c4894129509c7c', max message size = 132 bytes)
        <root>.le_atServer  (protocol ID = '2527056ddcf5218c3a18f8b922a25fd2', max message size = 4123 bytes)
        <root>.io  (protocol ID = '2521df9c34619280d5712f58693a0ac8', max message size = 238 bytes)
        <root>.admin  (protocol ID = 'e825b12f3c6c38e778065318ec4bb76c', max message size = 234 bytes)
        <root>.query  (protocol ID = 'ce058d01527d4eb46f3b3fff76784fa6', max message size = 246 bytes)
        <root>.le_port  (protocol ID = 'c7135da061a6a38d810159fff5799177', max message size = 70 bytes)
        <root>.ma_battery  (protocol ID = '438130cada0d5ac2f4a3245f58f5ba31', max message size = 152 bytes)
        <root>.ma_adminbattery  (protocol ID = 'c914c29c3c0f31fc2b8641c409866acb', max message size = 152 bytes)
        <root>.le_wifiClient  (protocol ID = '49eb962b16889a72c83872700e06f2da', max message size = 223 bytes)
        <root>.le_wifiAp  (protocol ID = '461e6b8f546beb192a8645fb0d26e89d', max message size = 94 bytes)
        <root>.le_fwupdate  (protocol ID = 'a8f730857c018907842f8ee02858e26f', max message size = 276 bytes)
        <root>.le_dualsys  (protocol ID = '69539775d6f1358ade33034c2fa222c4', max message size = 20 bytes)
        <root>.le_flash  (protocol ID = 'a36a81bca852297786086f08a8884cda', max message size = 262172 bytes)
        <root>.le_secStore  (protocol ID = '98c2a4dd482018a94c642390891be24f', max message size = 8471 bytes)
        <root>.secStoreGlobal  (protocol ID = '98c2a4dd482018a94c642390891be24f', max message size = 8471 bytes)
        <root>.secStoreAdmin  (protocol ID = '4995e42beb8aa21c2fabf4414840024d', max message size = 8727 bytes)
        <root>.le_gnss  (protocol ID = 'ac786c9bdfedf53fb1ab99476841610f', max message size = 2023 bytes)
        <root>.le_pos  (protocol ID = 'c9b4a5b877bfe3915d5029d8393d9566', max message size = 36 bytes)
        <root>.le_posCtrl  (protocol ID = 'd47cc30512e69387f546399a44c565e4', max message size = 16 bytes)
        <root>.le_gpioPin1  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin2  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin3  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin4  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin5  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin7  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin8  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin9  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin10  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin11  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin12  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin14  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin15  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin16  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin17  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin18  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin19  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin20  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin21  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin22  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin23  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin24  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin25  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin26  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin27  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin28  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin29  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin30  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin31  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin32  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin33  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin34  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin35  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin36  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin37  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin38  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin39  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin40  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin41  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin42  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin43  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin44  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin45  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_gpioPin46  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd', max message size = 28 bytes)
        <root>.le_info  (protocol ID = '975257ab76b4bd700b883f96a47b6508', max message size = 276 bytes)
        <root>.le_sms  (protocol ID = '6e36b32bb82b37b44288335e8dec164e', max message size = 205 bytes)
        <root>.le_mrc  (protocol ID = '9050243ec820d5521bcc635c52691835', max message size = 124 bytes)
        <root>.le_sim  (protocol ID = 'a0eebdf2681bff48efc6d76ad002fd10', max message size = 540 bytes)
        <root>.le_mdc  (protocol ID = '5110946da2c3c40cf6a28792bb0cf4ef', max message size = 196 bytes)
        <root>.le_mcc  (protocol ID = 'bf43202a0369b12bb827e1bc4724bb41', max message size = 41 bytes)
        <root>.le_ecall  (protocol ID = '9ca2a687836cbb0fe7a26c7519fc2637', max message size = 164 bytes)
        <root>.le_ips  (protocol ID = '90ad953c761aa71f85c44f94ee91aff1', max message size = 24 bytes)
        <root>.le_temp  (protocol ID = '01650568439a3a9c47468069df5a7783', max message size = 128 bytes)
        <root>.le_antenna  (protocol ID = 'c6ad7def5425943d0e3b97ad84593ed5', max message size = 24 bytes)
        <root>.le_riPin  (protocol ID = 'aafbc3c57eec1350fdae5eb6fe083e5a', max message size = 17 bytes)
        <root>.le_adc  (protocol ID = 'cca082d3d4d6b9c7c11466ab2ea74e4f', max message size = 54 bytes)
        <root>.le_rtc  (protocol ID = '88750cf71cdf94a8a7d68de367465558', max message size = 24 bytes)
        <root>.le_mdmCfg  (protocol ID = 'fcf3b5cece06794472fb938f2c621c50', max message size = 16 bytes)
        <root>.le_lpt  (protocol ID = 'ddfabab9b938cdcb7564dbd7632f76bc', max message size = 24 bytes)
        <root>.mqttClient  (protocol ID = 'cfa0257f5f505e5a5cb045d0e9846322', max message size = 1204 bytes)
        <root>.le_cellnet  (protocol ID = 'd635d930065e3c3f1e7f12c3b1ec3c41', max message size = 32 bytes)
        <root>.le_data  (protocol ID = '301e0f957699e656d25d93021f0f5a77', max message size = 117 bytes)
        <root>.le_avc  (protocol ID = '7a818d1ee00573303dc3b4f87c43e029', max message size = 541 bytes)
        <root>.le_avdata  (protocol ID = 'd042ee9f795ba3ff64aacf91d970b8fc', max message size = 802 bytes)

WAITING CLIENTS

        [pid  4093] <root>.ioRaspi.ioRaspiComponent.rpi_gpio3 UNBOUND  (protocol ID = 'eb4b6dc575d64f27484e7657275f11fd')
        [pid  1380] dataRouter.dataRouter.routerComponent.mqtt WAITING for <root>.mqtt  (protocol ID = 'bdc248f37f95194d469945e6f5b23d11')

What should I do ?

Regards


#3

If you run app status on the target, do you see gpioExpanderServiceRed?


#4

No , only gpioService

root@swi-mdm9x28-wp:~# app status |grep gpio
[running] gpioService

#5

This is the same issue discussed in the other thread about the heartbeat app and in the github issue.


#6

So if I well understand there is no way to use gpio on mangoh RED with wp7702.
Am I right ?


#7

That understanding is incorrect.
All cf3 gpios are usable.
For gpio expander there are ways to make them work.

What gpio do you want to use?


#8

Hello,

I just want make running the example given by Sierra
which use rpi_gpio_1,2,3

Regards


#9

Here is what you can do:

a. Create a gpio driver for RPI 1,2,3 (on yellow we did something like this: https://github.com/mangOH/mangOH/tree/master/linux_kernel_modules/expander)

b. Add the driver on red driver ( on yellow we did something like this : https://github.com/mangOH/mangOH/tree/master/linux_kernel_modules/mangoh)

This will create a sysfs entry for those gpios. Now you can write user space code to talk to the sysfs or write a legato api.


#10

Hi @pierr0t,
The code we gave you is using gpioExpanderServiceRed.
this is defined in the .adef file :
ioRaspi.ioRaspiComponent.mangoh_button -> gpioExpanderServiceRed.mangoh_gpioExpPin14

So you’d need to compile and install gpioExpanderRedService, then restart Legato.

Hope this helps
Nhon


#11

Hi Nhon,

Thanks for your reply.

So, several questions :

  • Where are the sources ?
  • Can you provide the procedure to do it ?

Regards


#12

Hi @pierr0t,

it is in your VM : mangOH/apps/

Nhon


#14

Hi @NhonChu,

Thank You, IIt works great. Steps in:

  • In ~/mangOH/apps/GpioExpander/gpioExpanderService, modify Makefile, as follow :
localhost: app.localhost
TARGETS := $(MAKECMDGOALS)

.PHONY: all $(TARGETS)
all: $(TARGETS)

$(TARGETS):
	mkapp -v -t $@ \
	gpioExpanderServiceRed.adef

ar7: app.ar7

wp7: app.wp7

ar86: app.ar86

wp85: app.wp85

app.%:
	mkapp gpioExpanderService.adef -i ${MANGOH_ROOT}/apps/GpioExpander/ -t $* -v

clean:
	rm -rf _build_* *.localhost *.ar7 *.wp7 *.ar8 *.wp85
  • then make
  • then ùpdate`
  • add a pussh button between pin 1 (3.3V) and pin 22 (GPIO_EXP_RPI3 )
  • press button

And you should get

Dec  3 15:07:48 swi-mdm9x28-wp user.info Legato:  INFO | ioRaspi[1900]/ioRaspiComponent T=main | ioRaspi.c PushButtonHandler() 101 | RPI_GPIO_3 Button State change FALSE
Dec  3 15:07:49 swi-mdm9x28-wp user.info Legato:  INFO | ioRaspi[1900]/ioRaspiComponent T=main | ioRaspi.c PushButtonHandler() 101 | RPI_GPIO_3 Button State change FALSE
Dec  3 15:07:49 swi-mdm9x28-wp user.info Legato:  INFO | ioRaspi[1900]/ioRaspiComponent T=main | ioRaspi.c PushButtonHandler() 101 | RPI_GPIO_3 Button State change TRUE
Dec  3 15:07:49 swi-mdm9x28-wp user.info Legato:  INFO | ioRaspi[1900]/ioRaspiComponent T=main | ioRaspi.c PushButtonHandler() 101 | RPI_GPIO_3 Button State change TRUE

Thanks again