<?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>nRF52832 Custom Board Pin In Use By GPIOTE Fault in BSP</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/51465/nrf52832-custom-board-pin-in-use-by-gpiote-fault-in-bsp</link><description>Hi, 
 I am trying to build out a button pressing scheme for BSP on a custom device with 15 buttons operating on a BL652 Laird Module (underlying nRF52832). After modifying the BOARD_PCA10040.h file to a custom one with our buttons (15) and leds (2), I</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 27 Aug 2019 18:10:11 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/51465/nrf52832-custom-board-pin-in-use-by-gpiote-fault-in-bsp" /><item><title>RE: nRF52832 Custom Board Pin In Use By GPIOTE Fault in BSP</title><link>https://devzone.nordicsemi.com/thread/206453?ContentTypeID=1</link><pubDate>Tue, 27 Aug 2019 18:10:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:96bfe4cc-f804-4b39-bc1e-db92d41b956d</guid><dc:creator>BendaEng</dc:creator><description>&lt;p&gt;Fire up! I figured out the issue. Similar to your original suggestion, just in a different location. Simple, but still difficult to find. When I redefined the BSP_BUTTON_# for all 15 of my buttons, I accidentally defined the failing button as the following.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;   #ifdef BSP_BUTTON_10
    {BSP_BUTTON_11, false, BUTTON_PULL, bsp_button_event_handler},
    #endif // BUTTON_10&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;The correct definition (in bsp.c) should be as follows for more buttons.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#ifndef BSP_SIMPLE
static const app_button_cfg_t app_buttons[BUTTONS_NUMBER] =
{
    #ifdef BSP_BUTTON_0
    {BSP_BUTTON_0, false, BUTTON_PULL, bsp_button_event_handler},
    #endif // BUTTON_0

    #ifdef BSP_BUTTON_1
    {BSP_BUTTON_1, false, BUTTON_PULL, bsp_button_event_handler},
    #endif // BUTTON_1

    #ifdef BSP_BUTTON_2
    {BSP_BUTTON_2, false, BUTTON_PULL, bsp_button_event_handler},
    #endif // BUTTON_2

    #ifdef BSP_BUTTON_3
    {BSP_BUTTON_3, false, BUTTON_PULL, bsp_button_event_handler},
    #endif // BUTTON_3

    #ifdef BSP_BUTTON_4
    {BSP_BUTTON_4, false, BUTTON_PULL, bsp_button_event_handler},
    #endif // BUTTON_4

    #ifdef BSP_BUTTON_5
    {BSP_BUTTON_5, false, BUTTON_PULL, bsp_button_event_handler},
    #endif // BUTTON_5

    #ifdef BSP_BUTTON_6
    {BSP_BUTTON_6, false, BUTTON_PULL, bsp_button_event_handler},
    #endif // BUTTON_6

    #ifdef BSP_BUTTON_7
    {BSP_BUTTON_7, false, BUTTON_PULL, bsp_button_event_handler},
    #endif // BUTTON_7

    #ifdef BSP_BUTTON_8
    {BSP_BUTTON_8, false, BUTTON_PULL, bsp_button_event_handler},
    #endif // BUTTON_8

    #ifdef BSP_BUTTON_9
    {BSP_BUTTON_9, false, BUTTON_PULL, bsp_button_event_handler},
    #endif // BUTTON_9

    #ifdef BSP_BUTTON_10
    {BSP_BUTTON_10, false, BUTTON_PULL, bsp_button_event_handler},
    #endif // BUTTON_10

    #ifdef BSP_BUTTON_11
    {BSP_BUTTON_11, false, BUTTON_PULL, bsp_button_event_handler},
    #endif // BUTTON_11

    #ifdef BSP_BUTTON_12
    {BSP_BUTTON_12, false, BUTTON_PULL, bsp_button_event_handler},
    #endif // BUTTON_12

    #ifdef BSP_BUTTON_13
    {BSP_BUTTON_13, false, BUTTON_PULL, bsp_button_event_handler},
    #endif // BUTTON_13

    #ifdef BSP_BUTTON_14
    {BSP_BUTTON_14, false, BUTTON_PULL, bsp_button_event_handler},
    #endif // BUTTON_14

};&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;This at least got me past that error, going to start testing the rest of it now.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52832 Custom Board Pin In Use By GPIOTE Fault in BSP</title><link>https://devzone.nordicsemi.com/thread/206450?ContentTypeID=1</link><pubDate>Tue, 27 Aug 2019 16:42:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5f994b90-6712-4ee0-b401-862572c792fa</guid><dc:creator>BendaEng</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I see the confusion you were having with the naming of the buttons (i.e. #define BSP_BUTTON_1 BUTTON_2). However, in my program I&amp;#39;m defining my buttons in a very specific way (i.e. #define BSP_BUTTON_12 PN_BT) so I don&amp;#39;t think there would be any issues there. As well as the file where the definition of buttons happens (bsp_btn_ble.c) as far as I can tell doesn&amp;#39;t get called at all yet at the point of failure.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;It seems like the issue has more to do with GPIOTE Channels and their limitations, but I&amp;#39;m not sure how I can modify to support more than 8 since the documentation states the following:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;Only one GPIOTE channel can be assigned to one physical pin. Failing to do so may result in unpredictable behavior.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.nrf52832.ps.v1.1%2Fgpiote.html"&gt;https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.nrf52832.ps.v1.1%2Fgpiote.html&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Or is the GPIOTE channels just the way to be able to deal with GPIO tasks and events? I see there is some more documentation regarding Port Events &lt;em&gt;(PORT is an event that can be generated from multiple input pins using the GPIO DETECT signal.).&amp;nbsp;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Does anyone know if it&amp;#39;s possible to modify the BSP functionality to support more than 8 buttons? In this case 15? Is there a way to modify the BSP functions to support Port Events (if this is the way that is required for more I/O)? If so how would this be done?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52832 Custom Board Pin In Use By GPIOTE Fault in BSP</title><link>https://devzone.nordicsemi.com/thread/206441?ContentTypeID=1</link><pubDate>Tue, 27 Aug 2019 15:50:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d1a853b9-176e-4240-835a-6cc7259ec11d</guid><dc:creator>hmolesworth</dc:creator><description>&lt;p&gt;Worth checking these (slightly confusing) mappings, as Button 1 isn&amp;#39;t ..:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define BUTTON_2        14
#define SPIM2_MISO_PIN  14  // SPI Master In Slave Out GPIO pin number.
#define ARDUINO_3_PIN   14  // Digital pin 3

#define #define BSP_BUTTON_1   BUTTON_2
BUTTONS_LIST       { BUTTON_1, BUTTON_2, BUTTON_3, BUTTON_4 }&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;There are a few others worth reviewing:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define BSP_BOARD_BUTTON_2 2

#ifdef BSP_BUTTON_2
#define BSP_BUTTON_2_MASK (1&amp;lt;&amp;lt;BSP_BUTTON_2)
#define BUTTON_CAPSLOCK   BSP_BUTTON_2_MASK

#define BTN_ID_WAKEUP             0  /**&amp;lt; ID of button used to wake up the application. */
#define BTN_ID_SLEEP              0  /**&amp;lt; ID of button used to put the application into sleep mode. */
#define BTN_ID_DISCONNECT         0  /**&amp;lt; ID of button used to gracefully terminate a connection on long press. */
#define BTN_ID_WAKEUP_BOND_DELETE 1  /**&amp;lt; ID of button used to wake up the application and delete all bonding information. */
#define BTN_ID_WHITELIST_OFF      1  /**&amp;lt; ID of button used to turn off usage of the whitelist. */&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Since Button 1 is really button 2 fiddling with (say) the whitelist can have unexpected pin assignments .. I was confused, if I recall ..&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>