<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to 208: Using add_event_detect() prevents other apps from using the GPIO pins.</title><link>https://sourceforge.net/p/raspberry-gpio-python/tickets/208/</link><description>Recent changes to 208: Using add_event_detect() prevents other apps from using the GPIO pins.</description><atom:link href="https://sourceforge.net/p/raspberry-gpio-python/tickets/208/feed.rss" rel="self"/><language>en</language><lastBuildDate>Wed, 26 Oct 2022 20:23:09 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/raspberry-gpio-python/tickets/208/feed.rss" rel="self" type="application/rss+xml"/><item><title>#208 Using add_event_detect() prevents other apps from using the GPIO pins.</title><link>https://sourceforge.net/p/raspberry-gpio-python/tickets/208/?limit=25#13c2</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Just seems like a bad bug that I can't even watch for a change while only reading a pin that it causes failures elsewhere.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Walter A. Boring IV</dc:creator><pubDate>Wed, 26 Oct 2022 20:23:09 -0000</pubDate><guid>https://sourceforge.net8a503d431a2f5b863c36f53cd8014de0a981b0c0</guid></item><item><title>#208 Using add_event_detect() prevents other apps from using the GPIO pins.</title><link>https://sourceforge.net/p/raspberry-gpio-python/tickets/208/?limit=25#f1a0</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I would loop back pin 12 to another spare pin on your RPi using a 1k resistor and monitor that pin instead.  It isn't possible to set up events for an output channel.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ben Croston</dc:creator><pubDate>Wed, 26 Oct 2022 16:08:05 -0000</pubDate><guid>https://sourceforge.netd6d06df73a405128e6ca192a05538bb4e354aa6d</guid></item><item><title>#208 Using add_event_detect() prevents other apps from using the GPIO pins.</title><link>https://sourceforge.net/p/raspberry-gpio-python/tickets/208/?limit=25#31f4</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;PTT = push to talk.   it raises one of the GPIO pins to high which is connected to my ham radio to key up the mic for transmit out RF.&lt;/p&gt;
&lt;p&gt;I'm trying to monitor direwolf when it raises the PTT GPIO pin &lt;br/&gt;
There is also an RX GPIO Pin as well that I want to monitor at the same time &lt;/p&gt;
&lt;p&gt;Ultimately I'm trying to monitor when my ham radio does a TX and RX via the GPIO pins that direwolf uses.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Walter A. Boring IV</dc:creator><pubDate>Wed, 26 Oct 2022 16:01:37 -0000</pubDate><guid>https://sourceforge.netf72aca0b58d59814501055622dd5129e1b9bbb0f</guid></item><item><title>#208 Using add_event_detect() prevents other apps from using the GPIO pins.</title><link>https://sourceforge.net/p/raspberry-gpio-python/tickets/208/?limit=25#095e</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Is the PTT an output from direwolf?&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ben Croston</dc:creator><pubDate>Wed, 26 Oct 2022 15:59:29 -0000</pubDate><guid>https://sourceforge.net42790921d49655a3567747a0b6cb8f355dd0be61</guid></item><item><title>#208 Using add_event_detect() prevents other apps from using the GPIO pins.</title><link>https://sourceforge.net/p/raspberry-gpio-python/tickets/208/?limit=25#79dd</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I'm trying to monitor the PTT being set high from python.   &lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Walter A. Boring IV</dc:creator><pubDate>Wed, 26 Oct 2022 15:32:15 -0000</pubDate><guid>https://sourceforge.net04ee32300e14a7c21c9d0901ab8bd02946aa997d</guid></item><item><title>#208 Using add_event_detect() prevents other apps from using the GPIO pins.</title><link>https://sourceforge.net/p/raspberry-gpio-python/tickets/208/?limit=25#729c</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Rather than a software fix, would it not be easier in this case to connect your PTT to a second input pin and use that?&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ben Croston</dc:creator><pubDate>Wed, 26 Oct 2022 14:39:53 -0000</pubDate><guid>https://sourceforge.netf14b95c32400b49f0809d847293918b417fbd414</guid></item><item><title>Using add_event_detect() prevents other apps from using the GPIO pins.</title><link>https://sourceforge.net/p/raspberry-gpio-python/tickets/208/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I have direwolf running on my raspi as a ham radio digipeter, which uses GPIO Pin 16 for Push to Talk to send a packet over RF.   I want to detect when PTT is raised without affecting direwolf.  Unfortunately, when using add_event_detect on the pin, it causes direwolf to raise errors when trying&lt;br/&gt;
to use the GPIO pin.&lt;/p&gt;
&lt;p&gt;Here is my code&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;def&lt;/span&gt; &lt;span class="nv"&gt;test&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ctx&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;:
    &lt;span class="nv"&gt;console&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;ctx&lt;/span&gt;.&lt;span class="nv"&gt;obj&lt;/span&gt;[&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;console&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;]
    &lt;span class="nv"&gt;pin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;

    &lt;span class="nv"&gt;def&lt;/span&gt; &lt;span class="nv"&gt;rx_pin&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="nv"&gt;kwargs&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;:
        &lt;span class="nv"&gt;console&lt;/span&gt;.&lt;span class="nv"&gt;print&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rx_pin pin {pin}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
        &lt;span class="nv"&gt;console&lt;/span&gt;.&lt;span class="nv"&gt;print_json&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;kwargs&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;

    &lt;span class="nv"&gt;GPIO&lt;/span&gt;.&lt;span class="nv"&gt;setwarnings&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;True&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
    &lt;span class="nv"&gt;GPIO&lt;/span&gt;.&lt;span class="nv"&gt;setmode&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;GPIO&lt;/span&gt;.&lt;span class="nv"&gt;BCM&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
    &lt;span class="nv"&gt;GPIO&lt;/span&gt;.&lt;span class="nv"&gt;setup&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;pin&lt;/span&gt;, &lt;span class="nv"&gt;GPIO&lt;/span&gt;.&lt;span class="nv"&gt;IN&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
    &lt;span class="nv"&gt;GPIO&lt;/span&gt;.&lt;span class="nv"&gt;add_event_detect&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;pin&lt;/span&gt;, &lt;span class="nv"&gt;GPIO&lt;/span&gt;.&lt;span class="nv"&gt;RISING&lt;/span&gt;, &lt;span class="nv"&gt;callback&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;lambda&lt;/span&gt; &lt;span class="nv"&gt;x&lt;/span&gt;: &lt;span class="nv"&gt;rx_pin&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;loop&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;asyncio&lt;/span&gt;.&lt;span class="nv"&gt;get_event_loop&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;
    &lt;span class="nv"&gt;msg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Checking status of RX LED &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="nv"&gt;with&lt;/span&gt; &lt;span class="nv"&gt;console&lt;/span&gt;.&lt;span class="nv"&gt;status&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;msg&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;status&lt;/span&gt;:
        &lt;span class="k"&gt;loop&lt;/span&gt;.&lt;span class="nv"&gt;run_forever&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;loop&lt;/span&gt;.&lt;span class="nv"&gt;close&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Here is the output of my test app&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;(.&lt;/span&gt;&lt;span class="n"&gt;dwm&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;venv&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;pi&lt;/span&gt;&lt;span class="nv"&gt;@digipi&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~/&lt;/span&gt;&lt;span class="n"&gt;mine&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;python&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;direwolf&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;monitor&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;direwolf_monitor&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;cmds&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dwm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;test&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nf"&gt;pi&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mine&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;python&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;direwolf&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;monitor&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;direwolf_monitor&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;cmds&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;leds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nl"&gt;py&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;74&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;RuntimeWarning&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;This&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;channel&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;already&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;use&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;continuing&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;anyway&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;Use&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GPIO&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;setwarnings&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;disable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;warnings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;GPIO&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pin&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GPIO&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="ow"&gt;IN&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="err"&gt;⠼&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Checking&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;RX&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;LED&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The output of direwolf&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;PTT&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="nv"&gt;Error&lt;/span&gt; &lt;span class="nv"&gt;setting&lt;/span&gt; &lt;span class="nv"&gt;GPIO&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nv"&gt;PTT&lt;/span&gt;
&lt;span class="nv"&gt;Operation&lt;/span&gt; &lt;span class="nv"&gt;not&lt;/span&gt; &lt;span class="nv"&gt;permitted&lt;/span&gt;
[&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="nv"&gt;L&lt;/span&gt;] &lt;span class="nv"&gt;APPOMX&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nv"&gt;APDW16&lt;/span&gt;,&lt;span class="nv"&gt;WIDE2&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;:&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="mi"&gt;3720&lt;/span&gt;.&lt;span class="mi"&gt;66&lt;/span&gt;&lt;span class="nv"&gt;N107850&lt;/span&gt;.&lt;span class="mi"&gt;98&lt;/span&gt;&lt;span class="nv"&gt;W&lt;/span&gt;#&lt;span class="nv"&gt;PHG7260&lt;/span&gt; &lt;span class="nv"&gt;WB4BOR&lt;/span&gt; &lt;span class="nv"&gt;tier1&lt;/span&gt; &lt;span class="nv"&gt;digi&lt;/span&gt;, &lt;span class="nv"&gt;RF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="nv"&gt;Internet&lt;/span&gt;
&lt;span class="nv"&gt;PTT&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="nv"&gt;Error&lt;/span&gt; &lt;span class="nv"&gt;setting&lt;/span&gt; &lt;span class="nv"&gt;GPIO&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nv"&gt;PTT&lt;/span&gt;
&lt;span class="nv"&gt;Operation&lt;/span&gt; &lt;span class="nv"&gt;not&lt;/span&gt; &lt;span class="nv"&gt;permitted&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Walter A. Boring IV</dc:creator><pubDate>Wed, 26 Oct 2022 14:13:13 -0000</pubDate><guid>https://sourceforge.net9db8f78ae9376af0e1e9aab97f70105a43731af5</guid></item></channel></rss>