<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>I/O expander pins on thingy52</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/46282/i-o-expander-pins-on-thingy52</link><description>I&amp;#39;m having problems with toggling the EXT0 pin on my thingy:52. 
 I have tried with setting the EXT0 as an output like this: drv_ext_gpio_cfg_output(SX_IOEXT_0); And then i&amp;#39;m trying to toggle the EXT0 like this inside a loop that is trigged every 5 second</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 02 May 2019 12:48:27 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/46282/i-o-expander-pins-on-thingy52" /><item><title>RE: I/O expander pins on thingy52</title><link>https://devzone.nordicsemi.com/thread/184904?ContentTypeID=1</link><pubDate>Thu, 02 May 2019 12:48:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cff33040-72a0-4566-959d-72c9d6ecb810</guid><dc:creator>Joakim Jakobsen</dc:creator><description>&lt;p&gt;Hi again.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Sorry about the delay. I&amp;#39;ll try to test this using your code and setup as a template today.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;In the meantime, maybe you could try doing the pin toggle in main()? Just to make sure that it actually works and that it isn&amp;#39;t related to the timer etc.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&amp;nbsp;&lt;br /&gt;Joakim&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I/O expander pins on thingy52</title><link>https://devzone.nordicsemi.com/thread/184371?ContentTypeID=1</link><pubDate>Mon, 29 Apr 2019 14:48:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:18d1851a-84da-4ce2-a313-ae6f76e3e978</guid><dc:creator>ragnarolsson</dc:creator><description>&lt;p&gt;Thanks for the answer, i&amp;nbsp;have tried to toggle the other EXT pins as well and got the same result as with the EXT0 pin.&lt;br /&gt;If you try with toggling a EXT pin and&amp;nbsp;succeed it would be very nice if you could paste in a code snippet for that so can i maybe see if i am doing something wrong.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I/O expander pins on thingy52</title><link>https://devzone.nordicsemi.com/thread/184370?ContentTypeID=1</link><pubDate>Mon, 29 Apr 2019 14:36:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:597a62a8-828d-4512-a8b0-06afe57c41ca</guid><dc:creator>Joakim Jakobsen</dc:creator><description>&lt;p&gt;Hi again.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I can&amp;#39;t see anything that stands from your code that should prevent you from doing this.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Let me do some tests on this myself and see what I can find out.&amp;nbsp;&lt;br /&gt;Have you tried toggling any of the other EXT pins? Is this only an issue for EXT0 or are you seeing the same result using the other pins as well?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&amp;nbsp;&lt;br /&gt;Joakim&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I/O expander pins on thingy52</title><link>https://devzone.nordicsemi.com/thread/183724?ContentTypeID=1</link><pubDate>Thu, 25 Apr 2019 09:43:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:279f30a0-39db-45c2-b1a9-99eaf2c0c107</guid><dc:creator>ragnarolsson</dc:creator><description>&lt;p&gt;Hi and thanks for the answer,&amp;nbsp;&lt;br /&gt;&lt;span&gt;Not what i know, i have added my code to my main program almost all my&amp;nbsp;&lt;/span&gt;&lt;span&gt;modifications to the Thingy:52 FW has been done there&lt;/span&gt;&lt;span&gt;, maybe you can have i look and see if there is something&amp;nbsp;&lt;/span&gt;&lt;span&gt;obviously that will&lt;/span&gt;&lt;span&gt;&amp;nbsp;interfere with the toggeling of the EXT pin.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;At line&amp;nbsp;&lt;/span&gt;&lt;span&gt;377&amp;nbsp;&lt;/span&gt;&lt;span&gt;i&amp;#39;m doing the toggling and at line 408 i&amp;#39;m setting the pin as a output.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/*
  Copyright (c) 2010 - 2017, Nordic Semiconductor ASA
  All rights reserved.

  Redistribution and use in source and binary forms, with or without modification,
  are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this
     list of conditions and the following disclaimer.

  2. Redistributions in binary form, except as embedded into a Nordic
     Semiconductor ASA integrated circuit in a product or a software update for
     such product, 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.

  3. Neither the name of Nordic Semiconductor ASA nor the names of its
     contributors may be used to endorse or promote products derived from this
     software without specific prior written permission.

  4. This software, with or without modification, must only be used with a
     Nordic Semiconductor ASA integrated circuit.

  5. Any software provided in binary form under this license must not be reverse
     engineered, decompiled, modified and/or disassembled.

  THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA &amp;quot;AS IS&amp;quot; AND ANY EXPRESS
  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
  DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA 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
 *
 * @brief    Thingy application main file.
 *
 * This file contains the source code for the Thingy application that uses the Weather Station service.
 */

#include &amp;lt;stdint.h&amp;gt;
#include &amp;lt;float.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;quot;nordic_common.h&amp;quot;
#include &amp;quot;nrf.h&amp;quot;
#include &amp;quot;ble_hci.h&amp;quot;
#include &amp;quot;ble_advdata.h&amp;quot;
#include &amp;quot;ble_advertising.h&amp;quot;
#include &amp;quot;ble_conn_params.h&amp;quot;
#include &amp;quot;softdevice_handler.h&amp;quot;
#include &amp;quot;app_scheduler.h&amp;quot;
#include &amp;quot;app_button.h&amp;quot;
#include &amp;quot;app_util_platform.h&amp;quot;
#include &amp;quot;m_ble.h&amp;quot;
#include &amp;quot;m_environment.h&amp;quot;
#include &amp;quot;m_sound.h&amp;quot;
#include &amp;quot;m_motion.h&amp;quot;
#include &amp;quot;m_ui.h&amp;quot;
#include &amp;quot;m_batt_meas.h&amp;quot;
#include &amp;quot;drv_ext_light.h&amp;quot;
#include &amp;quot;drv_ext_gpio.h&amp;quot;
#include &amp;quot;nrf_delay.h&amp;quot;
#include &amp;quot;twi_manager.h&amp;quot;
#include &amp;quot;support_func.h&amp;quot;
#include &amp;quot;pca20020.h&amp;quot;
#include &amp;quot;app_error.h&amp;quot;

#define  NRF_LOG_MODULE_NAME &amp;quot;main          &amp;quot;
#include &amp;quot;nrf_log.h&amp;quot;
#include &amp;quot;nrf_log_ctrl.h&amp;quot;

//Rasmus
#include &amp;quot;drv_motion.h&amp;quot;
#include &amp;quot;drv_nfc.h&amp;quot;
#include &amp;quot;gps_track_def.h&amp;quot;
#include &amp;quot;app_uart.h&amp;quot;
#include &amp;lt;stdio.h&amp;gt;

#include &amp;lt;stdbool.h&amp;gt;
#include &amp;quot;hardfault.h&amp;quot;
#include &amp;quot;sdk_macros.h&amp;quot;
#include &amp;quot;sdk_config.h&amp;quot;
#include &amp;quot;adafruit_pn532.h&amp;quot;
#include &amp;quot;nfc_t4t_cc_file.h&amp;quot;
#include &amp;quot;nfc_t4t_hl_detection_procedures.h&amp;quot;
#include &amp;quot;nfc_ndef_msg_parser.h&amp;quot;
#include &amp;quot;nfc_t2t_parser.h&amp;quot;

#include &amp;quot;nrf_drv_twi.h&amp;quot;
#include &amp;quot;macros_common.h&amp;quot;


APP_TIMER_DEF(sending_interval_timer);

#define DEAD_BEEF   0xDEADBEEF          /**&amp;lt; Value used as error code on stack dump, can be used to identify stack location on stack unwind. */
#define SCHED_MAX_EVENT_DATA_SIZE   MAX(APP_TIMER_SCHED_EVENT_DATA_SIZE, BLE_STACK_HANDLER_SCHED_EVT_SIZE) /**&amp;lt; Maximum size of scheduler events. */
#define SCHED_QUEUE_SIZE            60  /**&amp;lt; Maximum number of events in the scheduler queue. */

static const nrf_drv_twi_t     m_twi_sensors = NRF_DRV_TWI_INSTANCE(TWI_SENSOR_INSTANCE);
static m_ble_service_handle_t  m_ble_service_handles[THINGY_SERVICES_MAX];


void app_error_fault_handler(uint32_t id, uint32_t pc, uint32_t info)
{
    #if NRF_LOG_ENABLED
        error_info_t * err_info = (error_info_t*)info;
        NRF_LOG_ERROR(&amp;quot; id = %d, pc = %d, file = %s, line number: %d, error code = %d = %s \r\n&amp;quot;, \
        id, pc, nrf_log_push((char*)err_info-&amp;gt;p_file_name), err_info-&amp;gt;line_num, err_info-&amp;gt;err_code, nrf_log_push((char*)nrf_strerror_find(err_info-&amp;gt;err_code)));
    #endif

    (void)m_ui_led_set_event(M_UI_ERROR);
    NRF_LOG_FINAL_FLUSH();
    nrf_delay_ms(5);

    // On assert, the system can only recover with a reset.
    #ifndef DEBUG
        NVIC_SystemReset();
    #endif

    app_error_save_and_stop(id, pc, info);
}


/**@brief Function for assert macro callback.
 *
 * @details This function will be called in case of an assert in the SoftDevice.
 *
 * @warning On assert from the SoftDevice, the system can only recover on reset.
 *
 * @param[in] line_num    Line number of the failing ASSERT call.
 * @param[in] p_file_name File name of the failing ASSERT call.
 */
void assert_nrf_callback(uint16_t line_num, const uint8_t * p_file_name)
{
    app_error_handler(DEAD_BEEF, line_num, p_file_name);
}

/**@brief Function for putting Thingy into sleep mode.
 *
 * @note This function will not return.
 */
static void sleep_mode_enter(void)
{
    uint32_t err_code;

    NRF_LOG_INFO(&amp;quot;Entering sleep mode \r\n&amp;quot;);
    err_code = m_motion_sleep_prepare(true);
    APP_ERROR_CHECK(err_code);

    err_code = support_func_configure_io_shutdown();
    APP_ERROR_CHECK(err_code);

    // Enable wake on button press.
    nrf_gpio_cfg_sense_input(BUTTON, NRF_GPIO_PIN_PULLUP, NRF_GPIO_PIN_SENSE_LOW);
    // Enable wake on low power accelerometer.
    nrf_gpio_cfg_sense_input(LIS_INT1, NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_HIGH);

    NRF_LOG_FLUSH();
    nrf_delay_ms(5);
    // Go to system-off (sd_power_system_off() will not return; wakeup will cause a reset). When debugging, this function may return and code execution will continue.
    err_code = sd_power_system_off();
    NRF_LOG_WARNING(&amp;quot;sd_power_system_off() returned. -Probably due to debugger being used. Instructions will still run. \r\n&amp;quot;);
    NRF_LOG_FLUSH();

    #ifdef DEBUG
        if(!support_func_sys_halt_debug_enabled())
        {
            APP_ERROR_CHECK(err_code); // If not in debug mode, return the error and the system will reboot.
        }
        else
        {
            NRF_LOG_WARNING(&amp;quot;Exec stopped, busy wait \r\n&amp;quot;);
            NRF_LOG_FLUSH();

            while(true) // Only reachable when entering emulated system off.
            {
                // Infinte loop to ensure that code stops in debug mode.
            }
        }
    #else
        APP_ERROR_CHECK(err_code);
    #endif
}


/**@brief Function for placing the application in low power state while waiting for events.
 */
#define FPU_EXCEPTION_MASK 0x0000009F
static void power_manage(void)
{
    __set_FPSCR(__get_FPSCR()  &amp;amp; ~(FPU_EXCEPTION_MASK));
    (void) __get_FPSCR();
    NVIC_ClearPendingIRQ(FPU_IRQn);

    uint32_t err_code = sd_app_evt_wait();
    APP_ERROR_CHECK(err_code);

    //NRF_LOG_WARNING(&amp;quot;H&amp;#196;R &amp;#196;R VI NU!! \r\n&amp;quot;);
}


/**@brief Battery module data handler.
 */
static void m_batt_meas_handler(m_batt_meas_event_t const * p_batt_meas_event)
{
    NRF_LOG_INFO(&amp;quot;Voltage: %d V, Charge: %d %%, Event type: %d \r\n&amp;quot;,
                p_batt_meas_event-&amp;gt;voltage_mv, p_batt_meas_event-&amp;gt;level_percent, p_batt_meas_event-&amp;gt;type);

    if (p_batt_meas_event != NULL)
    {
        if( p_batt_meas_event-&amp;gt;type == M_BATT_MEAS_EVENT_LOW)
        {
            uint32_t err_code;

            err_code = support_func_configure_io_shutdown();
            APP_ERROR_CHECK(err_code);

            // Enable wake on USB detect only.
            nrf_gpio_cfg_sense_input(USB_DETECT, NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_HIGH);

            NRF_LOG_WARNING(&amp;quot;Battery voltage low, shutting down Thingy. Connect USB to charge \r\n&amp;quot;);
            NRF_LOG_FINAL_FLUSH();
            // Go to system-off mode (This function will not return; wakeup will cause a reset).
            err_code = sd_power_system_off();

            #ifdef DEBUG
                if(!support_func_sys_halt_debug_enabled())
                {
                    APP_ERROR_CHECK(err_code); // If not in debug mode, return the error and the system will reboot.
                }
                else
                {
                    NRF_LOG_WARNING(&amp;quot;Exec stopped, busy wait \r\n&amp;quot;);
                    NRF_LOG_FLUSH();
                    while(true) // Only reachable when entering emulated system off.
                    {
                        // Infinte loop to ensure that code stops in debug mode.
                    }
                }
            #else
                APP_ERROR_CHECK(err_code);
            #endif
        }
    }
}


/**@brief Function for handling BLE events.
 */
static void thingy_ble_evt_handler(m_ble_evt_t * p_evt)
{
    switch (p_evt-&amp;gt;evt_type)
    {
        case thingy_ble_evt_connected:
            NRF_LOG_INFO(NRF_LOG_COLOR_CODE_GREEN &amp;quot;Thingy_ble_evt_connected \r\n&amp;quot;);
            break;

        case thingy_ble_evt_disconnected:
            NRF_LOG_INFO(NRF_LOG_COLOR_CODE_YELLOW &amp;quot;Thingy_ble_evt_disconnected \r\n&amp;quot;);
            NRF_LOG_FINAL_FLUSH();
            nrf_delay_ms(5);
            NVIC_SystemReset();
            break;

        case thingy_ble_evt_timeout:
            NRF_LOG_INFO(NRF_LOG_COLOR_CODE_YELLOW &amp;quot;Thingy_ble_evt_timeout \r\n&amp;quot;);
            sleep_mode_enter();
            NVIC_SystemReset();
            break;
    }
}


/**@brief Function for initializing the Thingy.
 */
static void thingy_init(void)
{
    uint32_t                 err_code;
    m_ui_init_t              ui_params;
    m_environment_init_t     env_params;
    m_motion_init_t          motion_params;
    m_ble_init_t             ble_params;
    batt_meas_init_t         batt_meas_init = BATT_MEAS_PARAM_CFG;

    /**@brief Initialize the TWI manager. */
    err_code = twi_manager_init(APP_IRQ_PRIORITY_THREAD);
    APP_ERROR_CHECK(err_code);

    /**@brief Initialize LED and button UI module. */
    ui_params.p_twi_instance = &amp;amp;m_twi_sensors;
    err_code = m_ui_init(&amp;amp;m_ble_service_handles[THINGY_SERVICE_UI],
                         &amp;amp;ui_params);
    APP_ERROR_CHECK(err_code);

    /**@brief Initialize environment module. */
    env_params.p_twi_instance = &amp;amp;m_twi_sensors;
    err_code = m_environment_init(&amp;amp;m_ble_service_handles[THINGY_SERVICE_ENVIRONMENT],
                                  &amp;amp;env_params);
    APP_ERROR_CHECK(err_code);

    /**@brief Initialize motion module. */
    motion_params.p_twi_instance = &amp;amp;m_twi_sensors;

    err_code = m_motion_init(&amp;amp;m_ble_service_handles[THINGY_SERVICE_MOTION],
                             &amp;amp;motion_params);
    APP_ERROR_CHECK(err_code);

    err_code = m_sound_init(&amp;amp;m_ble_service_handles[THINGY_SERVICE_SOUND]);
    APP_ERROR_CHECK(err_code);

    /**@brief Initialize the battery measurement. */
    batt_meas_init.evt_handler = m_batt_meas_handler;
    err_code = m_batt_meas_init(&amp;amp;m_ble_service_handles[THINGY_SERVICE_BATTERY], &amp;amp;batt_meas_init);
    APP_ERROR_CHECK(err_code);

    err_code = m_batt_meas_enable(BATT_MEAS_INTERVAL_MS);
    APP_ERROR_CHECK(err_code);

    /**@brief Initialize BLE handling module. */
    ble_params.evt_handler       = thingy_ble_evt_handler;
    ble_params.p_service_handles = m_ble_service_handles;
    ble_params.service_num       = THINGY_SERVICES_MAX;

    err_code = m_ble_init(&amp;amp;ble_params);
    APP_ERROR_CHECK(err_code);

    err_code = m_ui_led_set_event(M_UI_BLE_DISCONNECTED);
    APP_ERROR_CHECK(err_code);

}


static void board_init(void)
{
    uint32_t            err_code;
    drv_ext_gpio_init_t ext_gpio_init;

    #if defined(THINGY_HW_v0_7_0)
        #error   &amp;quot;HW version v0.7.0 not supported.&amp;quot;
    #elif defined(THINGY_HW_v0_8_0)
        NRF_LOG_WARNING(&amp;quot;FW compiled for depricated Thingy HW v0.8.0 \r\n&amp;quot;);
    #elif defined(THINGY_HW_v0_9_0)
        NRF_LOG_WARNING(&amp;quot;FW compiled for depricated Thingy HW v0.9.0 \r\n&amp;quot;);
    #endif

    static const nrf_drv_twi_config_t twi_config =
    {
        .scl                = TWI_SCL,
        .sda                = TWI_SDA,
        .frequency          = NRF_TWI_FREQ_400K,
        .interrupt_priority = APP_IRQ_PRIORITY_LOW
    };

    static const drv_sx1509_cfg_t sx1509_cfg =
    {
        .twi_addr       = SX1509_ADDR,
        .p_twi_instance = &amp;amp;m_twi_sensors,
        .p_twi_cfg      = &amp;amp;twi_config
    };

    ext_gpio_init.p_cfg = &amp;amp;sx1509_cfg;

    err_code = support_func_configure_io_startup(&amp;amp;ext_gpio_init);
    APP_ERROR_CHECK(err_code);

    nrf_delay_ms(100);
}


static void time_out_rasmus(void * p_context)
{
  drv_ext_gpio_pin_toggle(SX_IOEXT_0);

  //React on timer interrupt
  //blue led
  ble_uis_led_t led_orientation;
  led_orientation.mode = BLE_UIS_LED_MODE_CONST;
  led_orientation.data.mode_const.r = 0;
  led_orientation.data.mode_const.g = 0;
  led_orientation.data.mode_const.b = 100;
  set_led_for_event(led_orientation);
  send_gps_data(TIME_OUT);

}


static void rasmus_init(void)
{
  uint32_t err_code;
  err_code = drv_motion_enable(DRV_MOTION_FEATURE_MASK_ORIENTATION); //enable origentation detection
  APP_ERROR_CHECK(err_code);                                         //enable origentation detection

  err_code = drv_motion_enable(DRV_MOTION_FEATURE_MASK_PEDOMETER);  //enable step detection
  APP_ERROR_CHECK(err_code);                                        //enable step detection

  //enable timer interrupt
  err_code = app_timer_create(&amp;amp;sending_interval_timer, APP_TIMER_MODE_REPEATED, time_out_rasmus);
  APP_ERROR_CHECK(err_code);

  err_code = app_timer_start(sending_interval_timer, APP_TIMER_TICKS(5000), NULL);
  APP_ERROR_CHECK(err_code);

  drv_ext_gpio_cfg_output(SX_IOEXT_0);

}



/**@brief Application main function.
 */
int main(void)
{
    uint32_t err_code;
    err_code = NRF_LOG_INIT(NULL);
    APP_ERROR_CHECK(err_code);

    NRF_LOG_INFO(NRF_LOG_COLOR_CODE_GREEN&amp;quot;===== Thingy started! =====\r\n&amp;quot;);

    // Initialize.
    APP_SCHED_INIT(SCHED_MAX_EVENT_DATA_SIZE, SCHED_QUEUE_SIZE);
    err_code = app_timer_init();
    APP_ERROR_CHECK(err_code);

    board_init();
    thingy_init();
    rasmus_init();
  
    for (;;)
    {

        app_sched_execute();
        if (!NRF_LOG_PROCESS()) // Process logs
        {
            power_manage();
        }

    }
}
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I/O expander pins on thingy52</title><link>https://devzone.nordicsemi.com/thread/183693?ContentTypeID=1</link><pubDate>Thu, 25 Apr 2019 08:43:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1f6bea17-fda7-4272-943c-14420dd8ea52</guid><dc:creator>Joakim Jakobsen</dc:creator><description>&lt;p&gt;Hi.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t see why this shouldn&amp;#39;t work for you.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Have you made any major modifications to the Thingy:52 FW that might affect this?&lt;/p&gt;
&lt;p&gt;Best,&amp;nbsp;&lt;br /&gt;Joakim&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>