<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Atom Button at GPIO39 without Pullup?]]></title><description><![CDATA[<p dir="auto">Hi<br />
I´m using my first M5Stack and it´s a Atom Lite. The button of the device it like to use to toggle dedicated events from my central home automation system, but I am wondering because the events are triggered and nobody has pushed the button of the Atom lite. So I started to research and found that the button is connected to GPIO39 which is sensor_VN at the ESP32 pico which can only be used as input and has no pullup or pulldown resistor.<br />
I can only find a simplyfied schematic of the Atom Lite and there is shown that GND is connected to the User Button at the Atom.</p>
<p dir="auto">So what has been done inside? Is there any pullup or pulldown resistor or in case of no closed user button to GND the result will be undefined ....</p>
<p dir="auto">I struggeling with such design for a product and please can anyone clarify if GPIO39 of the user button might send sometimes some wrong values because of missing pullup resistor?</p>
<p dir="auto">Big Thx!</p>
]]></description><link>https://community.m5stack.com/topic/3955/atom-button-at-gpio39-without-pullup</link><generator>RSS for Node</generator><lastBuildDate>Mon, 16 Mar 2026 08:33:58 GMT</lastBuildDate><atom:link href="https://community.m5stack.com/topic/3955.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Jan 2022 18:15:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Atom Button at GPIO39 without Pullup? on Sat, 29 Jan 2022 15:42:13 GMT]]></title><description><![CDATA[<p dir="auto">Hello <a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/16344">@Dieter_P</a></p>
<p dir="auto">thank you - I appreciate you letting us know about the implication regarding power safe and usage of BLE and WiFi.</p>
<p dir="auto">Thanks<br />
Felix</p>
]]></description><link>https://community.m5stack.com/post/16408</link><guid isPermaLink="true">https://community.m5stack.com/post/16408</guid><dc:creator><![CDATA[felmue]]></dc:creator><pubDate>Sat, 29 Jan 2022 15:42:13 GMT</pubDate></item><item><title><![CDATA[Reply to Atom Button at GPIO39 without Pullup? on Sat, 29 Jan 2022 15:37:21 GMT]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/111">@macsbug</a></p>
<p dir="auto">Thank you very much. According my current research I cannot disable power safe function which includes wifi sleep. Reason behind is that I´am also using Bluetooth application and BLE + Wifi does not work in disabled power safe mode. According this discussion:<br />
<a href="https://github.com/esphome/issues/issues/2141#issuecomment-865688582" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/esphome/issues/issues/2141#issuecomment-865688582</a></p>
<p dir="auto">Nevertheless, I activated adc power and longpress for user button for 2seconds.  Since then I have not received any false signals and therefore I think I can deal with this and we have solution so far.</p>
<p dir="auto">Big Thx and greetings!</p>
]]></description><link>https://community.m5stack.com/post/16407</link><guid isPermaLink="true">https://community.m5stack.com/post/16407</guid><dc:creator><![CDATA[Dieter_P]]></dc:creator><pubDate>Sat, 29 Jan 2022 15:37:21 GMT</pubDate></item><item><title><![CDATA[Reply to Atom Button at GPIO39 without Pullup? on Sat, 29 Jan 2022 23:02:39 GMT]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/16344">@Dieter_P</a><br />
：<br />
If HARD does not have PULL_UP, you can use SOFT to PULL_UP.<br />
The code is below.<br />
pinMode(Pin, INPUT_PULLUP);<br />
pinMode(33, INPUT_PULLUP);<br />
：<br />
If you don't have an oscilloscope, just do the following.<br />
WiFi.setSleep(false);<br />
Or<br />
false#include &lt;driver/adc.h&gt;<br />
falsevoid setup(){<br />
falseadc_power_acquire(); // ADC Power ON</p>
]]></description><link>https://community.m5stack.com/post/16369</link><guid isPermaLink="true">https://community.m5stack.com/post/16369</guid><dc:creator><![CDATA[macsbug]]></dc:creator><pubDate>Sat, 29 Jan 2022 23:02:39 GMT</pubDate></item><item><title><![CDATA[Reply to Atom Button at GPIO39 without Pullup? on Fri, 28 Jan 2022 09:15:16 GMT]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/111">@macsbug</a></p>
<p dir="auto">Thx, I wasn´t aware that there are two models, Atom and Atom Lite so good to know.</p>
<p dir="auto">I have Atom Lite in use / bought some days ago.</p>
<p dir="auto">According your information I activated adc power for GPIO33 and will test if this will eleminate the pulses for GPIO39.</p>
<p dir="auto">Because GPIO33 has no pullup I can only see unstable signal from 0.05V to 0.6V at the moment.</p>
<p dir="auto">I cannot proof by oscilloscope so in case of several days without recognized pulses at GPIO39 I have to deal with this and assume that it will work in this case. More precise and professional measurement isn´t possible at my home.</p>
]]></description><link>https://community.m5stack.com/post/16367</link><guid isPermaLink="true">https://community.m5stack.com/post/16367</guid><dc:creator><![CDATA[Dieter_P]]></dc:creator><pubDate>Fri, 28 Jan 2022 09:15:16 GMT</pubDate></item><item><title><![CDATA[Reply to Atom Button at GPIO39 without Pullup? on Thu, 27 Jan 2022 22:15:15 GMT]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/16344">@Dieter_P</a><br />
Atom Lite is not used due to a design mistake.<br />
Bugs and measures for M5Stack ATOM<br />
<a href="https://macsbug.wordpress.com/2021/10/10/bugs-and-measures-for-m5stack-atom/" target="_blank" rel="noopener noreferrer nofollow ugc">https://macsbug.wordpress.com/2021/10/10/bugs-and-measures-for-m5stack-atom/</a></p>
<p dir="auto">Atom Lite is a simplified schematic and difficult to deal with.</p>
<p dir="auto">M5Stack Atom PSRAM is fine.</p>
<p dir="auto">There are two confirmations of unnecessary triggers.</p>
<ol>
<li>Check the operation of Atom Lite.</li>
<li>You need to see the GPIO_39 waveform on your oscilloscope.<br />
2 is important.</li>
</ol>
<p dir="auto">... Google translate</p>
]]></description><link>https://community.m5stack.com/post/16359</link><guid isPermaLink="true">https://community.m5stack.com/post/16359</guid><dc:creator><![CDATA[macsbug]]></dc:creator><pubDate>Thu, 27 Jan 2022 22:15:15 GMT</pubDate></item><item><title><![CDATA[Reply to Atom Button at GPIO39 without Pullup? on Thu, 27 Jan 2022 15:23:37 GMT]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/111">@macsbug</a></p>
<p dir="auto">Thx. I am testing at the moment with longpress trigger &gt;=2 seconds and no unwanted actions have been triggered so far.</p>
<p dir="auto">But if I understand your code right, you just included adc.h in general. Not directly specified and aligned for an GPIO e.g. GPIO39, right?</p>
<p dir="auto">I think I can make use from this and align ADC Power to an unused GPIO (e.g. GPIO 19, 22 or 23) from my Atom lite. This will include adc.h for software compiling (automatically by ESPHome) and activate ADC Power in general.  This should then also be beneficial for GPIO39 and avoid theses pulses.</p>
<p dir="auto">wifi sleep I do not know if this can be disabled.</p>
]]></description><link>https://community.m5stack.com/post/16354</link><guid isPermaLink="true">https://community.m5stack.com/post/16354</guid><dc:creator><![CDATA[Dieter_P]]></dc:creator><pubDate>Thu, 27 Jan 2022 15:23:37 GMT</pubDate></item><item><title><![CDATA[Reply to Atom Button at GPIO39 without Pullup? on Thu, 27 Jan 2022 09:27:00 GMT]]></title><description><![CDATA[<p dir="auto">I made Wab radio with M5Stack.<br />
Added the function to lower Volume (VOL-) to A button (GPIO39).<br />
When I monitored it for one day, Volume dropped from 25 to 0.</p>
<p dir="auto">Web Radio of M5Stack<br />
<a href="https://macsbug.wordpress.com/2021/01/08/web-radio-of-m5stack/" target="_blank" rel="noopener noreferrer nofollow ugc">https://macsbug.wordpress.com/2021/01/08/web-radio-of-m5stack/</a></p>
<p dir="auto">Web Radio with a built-in speaker in M5Stack<br />
<a href="https://macsbug.wordpress.com/2021/04/16/web-radio-with-a-built-in-speaker-in-m5stack/" target="_blank" rel="noopener noreferrer nofollow ugc">https://macsbug.wordpress.com/2021/04/16/web-radio-with-a-built-in-speaker-in-m5stack/</a></p>
<p dir="auto">The button functions are as follows.<br />
M5.BtnA.isPressedPressed(),<br />
M5.BtnA.wasPressed(),<br />
M5.BtnA.pressedFor(ms)<br />
<a href="https://github.com/m5stack/m5-docs/blob/master/docs/ja/api/button.md" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/m5stack/m5-docs/blob/master/docs/ja/api/button.md</a></p>
<p dir="auto">No matter which command I used, the A button was pressed without permission.<br />
In M5.BtnA.pressedFor (ms), a problem occurred even with a value of 25 to 250 msec.</p>
<p dir="auto">When I checked the signal of GPIO39, a pulse was generated.<br />
The number of times a pulse is generated and the number of times a button is pressed do not always match.</p>
<p dir="auto">This issue has been resolved below.<br />
WiFi.setSleep(false);<br />
Or<br />
#include &lt;driver/adc.h&gt;<br />
void setup(){<br />
adc_power_acquire(); // ADC Power ON</p>
]]></description><link>https://community.m5stack.com/post/16351</link><guid isPermaLink="true">https://community.m5stack.com/post/16351</guid><dc:creator><![CDATA[macsbug]]></dc:creator><pubDate>Thu, 27 Jan 2022 09:27:00 GMT</pubDate></item><item><title><![CDATA[Reply to Atom Button at GPIO39 without Pullup? on Wed, 26 Jan 2022 07:24:12 GMT]]></title><description><![CDATA[<p dir="auto">Big Tanks <a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/4037">@felmue</a> &amp; <a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/111">@macsbug</a> !</p>
<p dir="auto">Yes, I´m using Wifi in parallel and this sounds very similar to my identified behaviour. I´m not skilled in programming and using standard software solution ESPHome.<br />
During compiling process the SDK version is shown:</p>
<p dir="auto">Processing esp32 (board: m5stack-core-esp32; framework: arduino; platform: platformio/espressif32 @ 3.3.2)</p>
<p dir="auto">This seems to be newer than reported in this github issue?</p>
<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/111">@macsbug</a> as linked by you I have to check if can make use of the workaround by turning on the ADC power.</p>
<p dir="auto">In general it is not clear mentioned if this problem only occur for millisecond or so? So in case of only a quick signal switch on/off I would prefer a woraround by making use of a "longpress-function". For usability longpress of e.g. 2 seconds is ok for me and in case the wifi/interrupt case will never switch longer 1 second this should work.....what do you thing about it?</p>
]]></description><link>https://community.m5stack.com/post/16331</link><guid isPermaLink="true">https://community.m5stack.com/post/16331</guid><dc:creator><![CDATA[Dieter_P]]></dc:creator><pubDate>Wed, 26 Jan 2022 07:24:12 GMT</pubDate></item><item><title><![CDATA[Reply to Atom Button at GPIO39 without Pullup? on Mon, 24 Jan 2022 21:46:41 GMT]]></title><description><![CDATA[<p dir="auto">Hello <a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/16344">@Dieter_P</a></p>
<p dir="auto">I don't own ATOM Lite (ESP32-PICO-D4), so I haven't checked it.</p>
<ol>
<li>Does the problem occur when using WiFi?</li>
<li>You need to check the signal of GPIO39.<br />
：</li>
</ol>
<p dir="auto">In M5Stack (ESP32-D0WDQ6-V3), there is a case where GPIO39 works without permission when using WiFi.<br />
M5.BtnA.wasPressed() conflicts with WiFi<br />
<a href="https://forum.m5stack.com/topic/3262/m5-btna-waspressed-conflicts-with-wifi" target="_blank" rel="noopener noreferrer nofollow ugc">https://forum.m5stack.com/topic/3262/m5-btna-waspressed-conflicts-with-wifi</a><br />
：</p>
<p dir="auto">Supplement：<br />
Example of using GPIO39.<br />
M5Stack Basic (ESP32-D0WDQ6-V3)：PULL UP with 100KΩ.<br />
ATOM PSRAM (ESP32-V3-02)：PULL UP with 5.1KΩ.<br />
M5Stamp Pico (ESP32-PICO-D4)：PULL UP with 5.1KΩ.</p>
]]></description><link>https://community.m5stack.com/post/16324</link><guid isPermaLink="true">https://community.m5stack.com/post/16324</guid><dc:creator><![CDATA[macsbug]]></dc:creator><pubDate>Mon, 24 Jan 2022 21:46:41 GMT</pubDate></item><item><title><![CDATA[Reply to Atom Button at GPIO39 without Pullup? on Mon, 24 Jan 2022 19:44:13 GMT]]></title><description><![CDATA[<p dir="auto">Hello <a class="mention plugin-mentions-user plugin-mentions-a" href="https://community.m5stack.com/uid/16344">@Dieter_P</a></p>
<p dir="auto">I haven't opened my M5Atom so I cannot say for sure whether there is an external pull-up resistor or not. But I must assume there is.</p>
<p dir="auto">I think your issue might be that some GPIOs (like GPIO36 and GPIO39) can produce 'ghost' inputs when WiFi is active with sleep mode on. See <a href="https://github.com/espressif/arduino-esp32/issues/4903" target="_blank" rel="noopener noreferrer nofollow ugc">here</a>.</p>
<p dir="auto">Thanks<br />
Felix</p>
]]></description><link>https://community.m5stack.com/post/16323</link><guid isPermaLink="true">https://community.m5stack.com/post/16323</guid><dc:creator><![CDATA[felmue]]></dc:creator><pubDate>Mon, 24 Jan 2022 19:44:13 GMT</pubDate></item></channel></rss>