<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/blog/rss.xsl" type="text/xsl" media="screen" ?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: GPIO madness	</title>
	<atom:link href="https://cdn.jwz.org/blog/2026/01/gpio-madness/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.jwz.org/blog/2026/01/gpio-madness/</link>
	<description></description>
	<lastBuildDate>Sat, 24 Jan 2026 18:34:20 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/>
<atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>
<atom:link rel="hub" href="https://websubhub.com/hub"/>
<atom:link rel="self" href="https://cdn.jwz.org/blog/2026/01/gpio-madness/feed/"/>
	<item>
		<title>
		By: Robert		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265940</link>

		<dc:creator><![CDATA[Robert]]></dc:creator>
		<pubDate>Sat, 24 Jan 2026 18:34:20 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265940</guid>

					<description><![CDATA[Broadcomm closed sourced the chip that the rpi runs on. This is basically the problem. You need to submit a bug report to the official forum/github and pray for them to fix the issue. OK I know you might be running linux but that linux requires kernel level precompiled binary blobs to get the various parts of the SoC blobs to do proprietary things. &quot;&lt;em&gt;The Community&lt;/em&gt;&quot; pretends it is open source but as soon as you start trying to use it for anything that&#039;s not an officially supported distro you will run into the NDA and pay multi-million surety to have the privilege of requesting access to documents that they won&#039;t give you because you&#039;re not willing to agree to purchasing a million units to demonstrate your loyalty. So basically you have closed source example projects for the rpi to choose from and no support for the burnt in bugs that those examples did not address.

Nicest thing to use these days for io is ICE40(project icestorm) + rpipicow or esp32 as an spi-wifi bridge only.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">Australia</div>
<p>Broadcomm closed sourced the chip that the rpi runs on. This is basically the problem. You need to submit a bug report to the official forum/github and pray for them to fix the issue. OK I know you might be running linux but that linux requires kernel level precompiled binary blobs to get the various parts of the SoC blobs to do proprietary things. "<em>The Community</em>" pretends it is open source but as soon as you start trying to use it for anything that's not an officially supported distro you will run into the NDA and pay multi-million surety to have the privilege of requesting access to documents that they won't give you because you're not willing to agree to purchasing a million units to demonstrate your loyalty. So basically you have closed source example projects for the rpi to choose from and no support for the burnt in bugs that those examples did not address.</p>
<p>Nicest thing to use these days for io is ICE40(project icestorm) + rpipicow or esp32 as an spi-wifi bridge only.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: jwz		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265926</link>

		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Wed, 21 Jan 2026 23:52:12 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265926</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265925&quot;&gt;Bill Paul&lt;/a&gt;.

I think &quot;force hotplug&quot; means the opposite of what it sounds like.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">United States</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265925">Bill Paul</a>.</p>
<p>I think "force hotplug" means the opposite of what it sounds like.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Bill Paul		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265925</link>

		<dc:creator><![CDATA[Bill Paul]]></dc:creator>
		<pubDate>Wed, 21 Jan 2026 23:06:35 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265925</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265924&quot;&gt;jwz&lt;/a&gt;.

That&#039;s an excellent question. You&#039;re right, a lot of the time these things are headless so why would it fark up only for you?

But also, even if that &quot;force hotplug&quot; property were renamed, why wouldn&#039;t it be on by default? I would think hotplugging would be the rule and hardwiring would be the exception.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">United States</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265924">jwz</a>.</p>
<p>That's an excellent question. You're right, a lot of the time these things are headless so why would it fark up only for you?</p>
<p>But also, even if that "force hotplug" property were renamed, why wouldn't it be on by default? I would think hotplugging would be the rule and hardwiring would be the exception.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: jwz		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265924</link>

		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Wed, 21 Jan 2026 21:16:59 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265924</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265923&quot;&gt;Bill Paul&lt;/a&gt;.

I did not go down the path of &quot;disable HDMI entirely&quot; to see what that would do (even though my guess was &quot;nothing good&quot;) because I do occasionally need to plug in a monitor for debugging.

I never found a working solution to tell it to just pretend HDMI is always there, so I plugged in an EDID ghost, a &quot;solution&quot; I had previously rejected even&lt;em&gt; before&lt;/em&gt; the spate of know-nothing post-before-reading crowd suggested that &lt;em&gt;nine times&lt;/em&gt;. I hate that solution and I hate &lt;em&gt;them&lt;/em&gt;. But I&#039;m so sick of dealing with this that I just cargo-culted it, which I guess makes me no better than those other idiots. Hooray.

The thing I hate most about this is that those idiots will see that and say to themselves, &quot;See? My suggestion was Right and Correct.&quot; No. Fuck you. Fuck off. Fuck all the way off and keep fucking off then fuck off some more.

There were a few other suggestions that came in after I had already given up, that I did not try, such as: &quot;Oh, maybe &#039;hdmi_force_hotplug&#039; has been renamed to &#039;vc4.force_hotplug&#039; and you&#039;re supposed to have known that by reading the driver source or something because we&#039;re sure as fuck not going to document it anywhere or note the change&quot;.

But here is another thing that I don&#039;t understand:

&lt;ul&gt;&lt;li&gt;One presumes that other people use the GPIO pins on Raspberry Pi 4Bs.&lt;/li&gt;&lt;li&gt;One presumes that a common use case is that the device does not have a monitor plugged in.&lt;/li&gt;&lt;li&gt;How the fuck can I be the first person to experience this weird-assed bug?&lt;/li&gt;&lt;/ul&gt;]]></description>
			<content:encoded><![CDATA[<div class="geolocation">United States</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265923">Bill Paul</a>.</p>
<p>I did not go down the path of "disable HDMI entirely" to see what that would do (even though my guess was "nothing good") because I do occasionally need to plug in a monitor for debugging.</p>
<p>I never found a working solution to tell it to just pretend HDMI is always there, so I plugged in an EDID ghost, a "solution" I had previously rejected even<em> before</em> the spate of know-nothing post-before-reading crowd suggested that <em>nine times</em>. I hate that solution and I hate <em>them</em>. But I'm so sick of dealing with this that I just cargo-culted it, which I guess makes me no better than those other idiots. Hooray.</p>
<p>The thing I hate most about this is that those idiots will see that and say to themselves, "See? My suggestion was Right and Correct." No. Fuck you. Fuck off. Fuck all the way off and keep fucking off then fuck off some more.</p>
<p>There were a few other suggestions that came in after I had already given up, that I did not try, such as: "Oh, maybe 'hdmi_force_hotplug' has been renamed to 'vc4.force_hotplug' and you're supposed to have known that by reading the driver source or something because we're sure as fuck not going to document it anywhere or note the change".</p>
<p>But here is another thing that I don't understand:</p>
<ul>
<li>One presumes that other people use the GPIO pins on Raspberry Pi 4Bs.</li>
<li>One presumes that a common use case is that the device does not have a monitor plugged in.</li>
<li>How the fuck can I be the first person to experience this weird-assed bug?</li>
</ul>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Bill Paul		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265923</link>

		<dc:creator><![CDATA[Bill Paul]]></dc:creator>
		<pubDate>Wed, 21 Jan 2026 20:59:40 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265923</guid>

					<description><![CDATA[I&#039;m late to this party, and I can&#039;t give an exact solution to this because as usual I&#039;m way over here and don&#039;t have the same hardware I can monkey with. But here are a few things I know:

- SoCs never have enough pins for all the I/O blocks in the chip, so pins are multiplexed
- The board designer must Choose Wisely (tm) when selecting what I/O blocks to enable based on their needs
- The SoC has register blocks for selecting pin functions, as well as enabling power and clocks to the various I/O blocks
- Some pinmux and power/clocking decisions are made at boot time (the serial console UART may need to always be on, for example)
- Other pinmux/power/clocking decisions may be made on the fly as devices are enabled *and* devices on which they depend are also enabled
- For high speed I/O devices, there are often external transceiver chips. This is common for USB, PCI, ethernet and likely HDMI/DisplayPort/whatever graphics interfaces too (I am not a graphics expert.)
- High-speed I/O devices also need to have I/O signal pins
- The external transceiver chips need to be managed somehow and often the management mechanism is via I2C (I2C is just the transport, different devices have their own vendor/device specific command protocols to do things)
- I2C also needs pins

What might be happening is that when the HDMI interface is enabled, it also needs an I2C controller to manage the external transceiver (not to mention I/O pins for the graphics data, possibly SerDes lanes), and when that I2C is turned on the pinmux controller is being twiddled to enable I2C function for some of the pins, and this is somehow causing the pin function of the GPIO pins to be affected.

Then once the monitor is detected the pin/power/clocking settings stabilize.

If you don&#039;t give a damn about HDMI for this device, it occurs to me you might be able to edit the device tree to chop off that branch of the tree. For Arm-based systems, Linux relies on the device tree to know what hardware is present, and that includes telling it about the HDMI controller. If you delete the HDMI controller node from the device tree (along with any children it has) it will never try to bind any driver to it.

Device tree files can be a pain in the ass to grok though, they are like the Windows Registry of the Linux world. If you only have the compiled device tree blob (DTB) you can decompile it with the device tree compiler tool (dtc) and while some informative context may be lost, it may still be possible to identify the graphics controller block and chop it out, then compile it back to a DTB again.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">United States</div>
<p>I'm late to this party, and I can't give an exact solution to this because as usual I'm way over here and don't have the same hardware I can monkey with. But here are a few things I know:</p>
<p>- SoCs never have enough pins for all the I/O blocks in the chip, so pins are multiplexed<br />
- The board designer must Choose Wisely (tm) when selecting what I/O blocks to enable based on their needs<br />
- The SoC has register blocks for selecting pin functions, as well as enabling power and clocks to the various I/O blocks<br />
- Some pinmux and power/clocking decisions are made at boot time (the serial console UART may need to always be on, for example)<br />
- Other pinmux/power/clocking decisions may be made on the fly as devices are enabled *and* devices on which they depend are also enabled<br />
- For high speed I/O devices, there are often external transceiver chips. This is common for USB, PCI, ethernet and likely HDMI/DisplayPort/whatever graphics interfaces too (I am not a graphics expert.)<br />
- High-speed I/O devices also need to have I/O signal pins<br />
- The external transceiver chips need to be managed somehow and often the management mechanism is via I2C (I2C is just the transport, different devices have their own vendor/device specific command protocols to do things)<br />
- I2C also needs pins</p>
<p>What might be happening is that when the HDMI interface is enabled, it also needs an I2C controller to manage the external transceiver (not to mention I/O pins for the graphics data, possibly SerDes lanes), and when that I2C is turned on the pinmux controller is being twiddled to enable I2C function for some of the pins, and this is somehow causing the pin function of the GPIO pins to be affected.</p>
<p>Then once the monitor is detected the pin/power/clocking settings stabilize.</p>
<p>If you don't give a damn about HDMI for this device, it occurs to me you might be able to edit the device tree to chop off that branch of the tree. For Arm-based systems, Linux relies on the device tree to know what hardware is present, and that includes telling it about the HDMI controller. If you delete the HDMI controller node from the device tree (along with any children it has) it will never try to bind any driver to it.</p>
<p>Device tree files can be a pain in the ass to grok though, they are like the Windows Registry of the Linux world. If you only have the compiled device tree blob (DTB) you can decompile it with the device tree compiler tool (dtc) and while some informative context may be lost, it may still be possible to identify the graphics controller block and chop it out, then compile it back to a DTB again.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: jwz		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265910</link>

		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Tue, 20 Jan 2026 18:18:14 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265910</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265903&quot;&gt;Phil Armstrong&lt;/a&gt;.

Literally the opposite of the goal. Read the other replies before commenting.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">Via Mastodon</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265903">Phil Armstrong</a>.</p>
<p>Literally the opposite of the goal. Read the other replies before commenting.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Phil Armstrong		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265903</link>

		<dc:creator><![CDATA[Phil Armstrong]]></dc:creator>
		<pubDate>Tue, 20 Jan 2026 15:03:06 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265903</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265848&quot;&gt;jwz&lt;/a&gt;.

If convincing the pi that it doesn’t have any hdmi sockets is the goal then

dtoverlay=vc4-kms-v3d-pi4,nohdmi

is what you want according to https://github.com/raspberrypi/linux/blob/e5c6e2c80b6fc1ff9cbb010f5d0cff97dcb9a023/arch/arm/boot/dts/overlays/README#L4405

Convincing it to pretend that a monitor is plugged in requires providing an edid file to substitute for the data a real monitor would provide IIRC, but I’ve never tried to do that.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">Via Mastodon</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265848">jwz</a>.</p>
<p>If convincing the pi that it doesn’t have any hdmi sockets is the goal then</p>
<p>dtoverlay=vc4-kms-v3d-pi4,nohdmi</p>
<p>is what you want according to <a href="https://github.com/raspberrypi/linux/blob/e5c6e2c80b6fc1ff9cbb010f5d0cff97dcb9a023/arch/arm/boot/dts/overlays/README#L4405" rel="nofollow ugc">https://github.com/raspberrypi/linux/blob/e5c6e2c80b6fc1ff9cbb010f5d0cff97dcb9a023/arch/arm/boot/dts/overlays/README#L4405</a></p>
<p>Convincing it to pretend that a monitor is plugged in requires providing an edid file to substitute for the data a real monitor would provide IIRC, but I’ve never tried to do that.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Carl		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265901</link>

		<dc:creator><![CDATA[Carl]]></dc:creator>
		<pubDate>Tue, 20 Jan 2026 14:13:52 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265901</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265888&quot;&gt;jwz&lt;/a&gt;.

As far as I can tell, doing root cause analysis is out of fashion these days. I guess it’s too slow and has too much detail. Heuristiken über Alles.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">Sweden</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265888">jwz</a>.</p>
<p>As far as I can tell, doing root cause analysis is out of fashion these days. I guess it’s too slow and has too much detail. Heuristiken über Alles.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Baggypants		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265896</link>

		<dc:creator><![CDATA[Baggypants]]></dc:creator>
		<pubDate>Tue, 20 Jan 2026 07:47:59 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265896</guid>

					<description><![CDATA[As always, the real madness isn&#039;t in the question, it&#039;s in the replies.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">United Kingdom</div>
<p>As always, the real madness isn't in the question, it's in the replies.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: adrian chadd		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265894</link>

		<dc:creator><![CDATA[adrian chadd]]></dc:creator>
		<pubDate>Tue, 20 Jan 2026 03:30:21 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265894</guid>

					<description><![CDATA[if i were doing this at my desk and faced with this, and when you say &quot;all gpio pins&quot; I guess you mean all the gpio pins on the raspberry pi, i&#039;d honestly start poking at the linux pinctrl driver and add some printk&#039;s to whatever reset / clock reconfig stuff it has.

i&#039;m assuming at this point it&#039;s booted linux, and all gpio pins are being yanked down/up?

because that behaviour really sounds like someone added a &quot;oh if I can&#039;t see this, maybe something is busted, just keep yanking on this chain periodically until things work&quot; workaround.

if you&#039;d like some help i could go see if i have a matching pi in my collection and whack debian on it and see if i can reproduce it and then work backwards to which bit of software is being dumb.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">United States</div>
<p>if i were doing this at my desk and faced with this, and when you say "all gpio pins" I guess you mean all the gpio pins on the raspberry pi, i'd honestly start poking at the linux pinctrl driver and add some printk's to whatever reset / clock reconfig stuff it has.</p>
<p>i'm assuming at this point it's booted linux, and all gpio pins are being yanked down/up?</p>
<p>because that behaviour really sounds like someone added a "oh if I can't see this, maybe something is busted, just keep yanking on this chain periodically until things work" workaround.</p>
<p>if you'd like some help i could go see if i have a matching pi in my collection and whack debian on it and see if i can reproduce it and then work backwards to which bit of software is being dumb.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Stewart Russell		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265890</link>

		<dc:creator><![CDATA[Stewart Russell]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 21:18:42 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265890</guid>

					<description><![CDATA[someone smarter and better paid than me suggests comparing the output of `pinctrl` in state [2] against the output in state [3] (once stable)]]></description>
			<content:encoded><![CDATA[<div class="geolocation">Via Mastodon</div>
<p>someone smarter and better paid than me suggests comparing the output of `pinctrl` in state [2] against the output in state [3] (once stable)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: jwz		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265888</link>

		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 18:28:03 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265888</guid>

					<description><![CDATA[&lt;a href=&quot;https://mastodon.social/@mhoye/115922797739479464&quot; rel=&quot;nofollow ugc&quot;&gt;mhoye uses this post as an example of how the stackoverflow crowd was primed for LLM brainrot:&lt;/a&gt;
&lt;blockquote&gt;All the suggestions are things you can try that make the problem go away. There&#039;s no &quot;this is the issue, here is why it occurs and what you can do about it.&quot;

There&#039;s no comprehension.

Someone who doesn&#039;t read is no better off than somebody who can&#039;t. So how is a person who doesn&#039;t want to understand a problem before making suggestions any more useful than a machine that can&#039;t understand anything before making suggestions?&lt;/blockquote&gt;]]></description>
			<content:encoded><![CDATA[<div class="geolocation">United States</div>
<p><a href="https://mastodon.social/@mhoye/115922797739479464" rel="nofollow ugc">mhoye uses this post as an example of how the stackoverflow crowd was primed for LLM brainrot:</a></p>
<blockquote><p>All the suggestions are things you can try that make the problem go away. There's no "this is the issue, here is why it occurs and what you can do about it."</p>
<p>There's no comprehension.</p>
<p>Someone who doesn't read is no better off than somebody who can't. So how is a person who doesn't want to understand a problem before making suggestions any more useful than a machine that can't understand anything before making suggestions?</p></blockquote>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Otter-Matic		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265887</link>

		<dc:creator><![CDATA[Otter-Matic]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 18:24:44 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265887</guid>

					<description><![CDATA[I wonder if it’s a weird memory allocation thing. The video memory and the normal ram are shared. I wonder if the GPIO and Video have some overlapping memory tables. When you connect the monitor it’s all properly allocated, then when you unplug it takes a while for some bit of data to overwrite that memory space. I’m not technical enough or smart enough to test or debug this but it came to mind as I was reading about miners using dummy hdmi to trick anti hash cards.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">Via Mastodon</div>
<p>I wonder if it’s a weird memory allocation thing. The video memory and the normal ram are shared. I wonder if the GPIO and Video have some overlapping memory tables. When you connect the monitor it’s all properly allocated, then when you unplug it takes a while for some bit of data to overwrite that memory space. I’m not technical enough or smart enough to test or debug this but it came to mind as I was reading about miners using dummy hdmi to trick anti hash cards.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: jwz		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265886</link>

		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 18:22:22 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265886</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265885&quot;&gt;Aedius Filmania ⚙️🎮🖊️&lt;/a&gt;.

Do not explain Mastodon to me. &lt;I&gt;*plonk*&lt;/I&gt;]]></description>
			<content:encoded><![CDATA[<div class="geolocation">Via Mastodon</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265885">Aedius Filmania ⚙️🎮🖊️</a>.</p>
<p>Do not explain Mastodon to me. <i>*plonk*</i></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Aedius Filmania ⚙️🎮🖊️		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265885</link>

		<dc:creator><![CDATA[Aedius Filmania ⚙️🎮🖊️]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 18:18:07 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265885</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265883&quot;&gt;jwz&lt;/a&gt;.

I see only one reply 🤷🏻

This is how mastodon works.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">Via Mastodon</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265883">jwz</a>.</p>
<p>I see only one reply 🤷🏻</p>
<p>This is how mastodon works.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: dusoft		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265884</link>

		<dc:creator><![CDATA[dusoft]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 18:15:46 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265884</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265883&quot;&gt;jwz&lt;/a&gt;.

Maybe reading via Mastodon, where some replies are not fetched automatically? But yes, once clicking through...]]></description>
			<content:encoded><![CDATA[<div class="geolocation">Via Mastodon</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265883">jwz</a>.</p>
<p>Maybe reading via Mastodon, where some replies are not fetched automatically? But yes, once clicking through...</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: jwz		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265883</link>

		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 18:14:28 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265883</guid>

					<description><![CDATA[UPDATE: I have now been informed &lt;I&gt;NINE TIMES&lt;/I&gt; that HDID dongles exist by people who don&#039;t read the replies before commenting with the first thing that popped into their head, don&#039;t have an answer to my actual question, but think they know how to Google.

I am blocking every single one of you.

Don&#039;t be that guy.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">Via Mastodon</div>
<p>UPDATE: I have now been informed <i>NINE TIMES</i> that HDID dongles exist by people who don't read the replies before commenting with the first thing that popped into their head, don't have an answer to my actual question, but think they know how to Google.</p>
<p>I am blocking every single one of you.</p>
<p>Don't be that guy.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: jwz		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265882</link>

		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 18:11:01 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265882</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265878&quot;&gt;thielges&lt;/a&gt;.

Overlay supposedly helps with that, but perhaps not 100%.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">United States</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265878">thielges</a>.</p>
<p>Overlay supposedly helps with that, but perhaps not 100%.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Grey Hodge		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265881</link>

		<dc:creator><![CDATA[Grey Hodge]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 17:32:39 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265881</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265823&quot;&gt;jwz&lt;/a&gt;.

HDMI dummy plugs would be my solution. uHDMI to HDMI dongle for $5, and an HDMI dummy for another $5.

https://www.amazon.com/UGREEN-Adapter-Compatible-Raspberry-ZenBook/dp/B00B2HORKE

https://www.amazon.com/Woieyeks-Virtual-Emulator-Headless-Supports/dp/B0CKKLTWMN]]></description>
			<content:encoded><![CDATA[<div class="geolocation">United States</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265823">jwz</a>.</p>
<p>HDMI dummy plugs would be my solution. uHDMI to HDMI dongle for $5, and an HDMI dummy for another $5.</p>
<p><a href="https://www.amazon.com/UGREEN-Adapter-Compatible-Raspberry-ZenBook/dp/B00B2HORKE" rel="nofollow ugc">https://www.amazon.com/UGREEN-Adapter-Compatible-Raspberry-ZenBook/dp/B00B2HORKE</a></p>
<p><a href="https://www.amazon.com/Woieyeks-Virtual-Emulator-Headless-Supports/dp/B0CKKLTWMN" rel="nofollow ugc">https://www.amazon.com/Woieyeks-Virtual-Emulator-Headless-Supports/dp/B0CKKLTWMN</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Robert		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265880</link>

		<dc:creator><![CDATA[Robert]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 17:08:53 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265880</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265842&quot;&gt;Jonathan Dowland&lt;/a&gt;.

That bit about the GPIO pins makes &quot;console=ttyS0&quot; sound like a really bad idea.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">United States</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265842">Jonathan Dowland</a>.</p>
<p>That bit about the GPIO pins makes "console=ttyS0" sound like a really bad idea.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: thielges		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265878</link>

		<dc:creator><![CDATA[thielges]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 16:25:50 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265878</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265832&quot;&gt;Gerard Thornley&lt;/a&gt;.

SD corruption after a power cut is my main RPI nemesis. &#160; I’ve tried everything including turning off most logging and directing the rest to a ram disk.&#160; It is powered by a UPS too but that only has enough juice for 30 minutes.&#160; Those measures do help to reduce corruption , but it still happens, just not as frequent. 

One think that a little low power computer ideal for headless applications would tolerate abrupt power loss better.&#160; Consumer products that brick when you unplug them are near worthless. &#160; Auto SD corruption would be nice. &#160;]]></description>
			<content:encoded><![CDATA[<div class="geolocation">United States</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265832">Gerard Thornley</a>.</p>
<p>SD corruption after a power cut is my main RPI nemesis. &nbsp; I’ve tried everything including turning off most logging and directing the rest to a ram disk.&nbsp; It is powered by a UPS too but that only has enough juice for 30 minutes.&nbsp; Those measures do help to reduce corruption , but it still happens, just not as frequent. </p>
<p>One think that a little low power computer ideal for headless applications would tolerate abrupt power loss better.&nbsp; Consumer products that brick when you unplug them are near worthless. &nbsp; Auto SD corruption would be nice. &nbsp;</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: grogol		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265876</link>

		<dc:creator><![CDATA[grogol]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 15:48:16 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265876</guid>

					<description><![CDATA[You can always try the brute-force-and-ignorance option and just plug a dummy HDMI connector that terminates all the signals and has an EDID chip that tells tall tales to the video output hardware in the Pi.

This link is something I dug up from a search engine just now. I skimmed it and it seems to be okay but apologies for risking inflicting AI slop on you.
https://techdim.com/hdmi-dummy-plug-what-is-it-and-how-do-you-use-it/

I tried a variant of this with Windows 10. I wanted to VNC into it when there was no screen attached. But it wouldn&#039;t let me. So I dug up a broken HDMI-to-VGA converter I had, plugged that in and suddenly Windows would let me connect. Yay!]]></description>
			<content:encoded><![CDATA[<div class="geolocation">Serbia</div>
<p>You can always try the brute-force-and-ignorance option and just plug a dummy HDMI connector that terminates all the signals and has an EDID chip that tells tall tales to the video output hardware in the Pi.</p>
<p>This link is something I dug up from a search engine just now. I skimmed it and it seems to be okay but apologies for risking inflicting AI slop on you.<br />
<a href="https://techdim.com/hdmi-dummy-plug-what-is-it-and-how-do-you-use-it/" rel="nofollow ugc">https://techdim.com/hdmi-dummy-plug-what-is-it-and-how-do-you-use-it/</a></p>
<p>I tried a variant of this with Windows 10. I wanted to VNC into it when there was no screen attached. But it wouldn't let me. So I dug up a broken HDMI-to-VGA converter I had, plugged that in and suddenly Windows would let me connect. Yay!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Trouble		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265875</link>

		<dc:creator><![CDATA[Trouble]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 15:18:13 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265875</guid>

					<description><![CDATA[slim chance this might be related, I encountered this some years ago, a only-when-headless, non-booting Linux (Ubuntu 20), due to kernel config: https://rightsock.blogspot.com/2020/05/intel-compute-stick-wont-boot-without.html?m=1]]></description>
			<content:encoded><![CDATA[<div class="geolocation">Via Mastodon</div>
<p>slim chance this might be related, I encountered this some years ago, a only-when-headless, non-booting Linux (Ubuntu 20), due to kernel config: <a href="https://rightsock.blogspot.com/2020/05/intel-compute-stick-wont-boot-without.html?m=1" rel="nofollow ugc">https://rightsock.blogspot.com/2020/05/intel-compute-stick-wont-boot-without.html?m=1</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Nathaniel Hawthorne		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265874</link>

		<dc:creator><![CDATA[Nathaniel Hawthorne]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 14:18:27 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265874</guid>

					<description><![CDATA[It seems to me that the obvious solution is to just attach a small HDMI monitor, &lt;a href=&quot;https://www.bhphotovideo.com/c/product/1473374-REG/lumantek_ez_hsv_hdmi_to_sdi_converter.html&quot; rel=&quot;nofollow ugc&quot;&gt;like this 2.7&quot; one&lt;/a&gt;, and display some manner of scarlet letter to let everyone know what a bad computer it is. With AI becoming a thing, for some reason, we need to start shaming devices more. ]]></description>
			<content:encoded><![CDATA[<div class="geolocation">United States</div>
<p>It seems to me that the obvious solution is to just attach a small HDMI monitor, <a href="https://www.bhphotovideo.com/c/product/1473374-REG/lumantek_ez_hsv_hdmi_to_sdi_converter.html" rel="nofollow ugc">like this 2.7" one</a>, and display some manner of scarlet letter to let everyone know what a bad computer it is. With AI becoming a thing, for some reason, we need to start shaming devices more. </p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Oblomov		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265870</link>

		<dc:creator><![CDATA[Oblomov]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 09:26:33 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265870</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265837&quot;&gt;akiran_n&lt;/a&gt;.

wow, what is this witchcraft.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">Via Mastodon</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265837">akiran_n</a>.</p>
<p>wow, what is this witchcraft.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: raveguide		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265867</link>

		<dc:creator><![CDATA[raveguide]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 08:34:53 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265867</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265863&quot;&gt;jwz&lt;/a&gt;.

You should still try it to see if it stops the GPIO flapping at least.&#160; If it does then you can look for convenient ways to enable/disable HDMI at runtime by loading/unloading or binding/unbinding kernel module(s) via SSH or some other means.&#160; You might also want to test if the GPIO flapping sets in again after unplugging the monitor and unloading the respective kernel module(s).&#160; I suspect that the module internally keeps state of where it has seen activity already to stop its polling loop.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">Netherlands</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265863">jwz</a>.</p>
<p>You should still try it to see if it stops the GPIO flapping at least.&nbsp; If it does then you can look for convenient ways to enable/disable HDMI at runtime by loading/unloading or binding/unbinding kernel module(s) via SSH or some other means.&nbsp; You might also want to test if the GPIO flapping sets in again after unplugging the monitor and unloading the respective kernel module(s).&nbsp; I suspect that the module internally keeps state of where it has seen activity already to stop its polling loop.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: jwz		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265866</link>

		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 07:54:32 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265866</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265865&quot;&gt;James Young&lt;/a&gt;.

The GPIO inputs are just switches, but there is also an SPI display involved. Start here https://www.dnalounge.com/backstage/src/phonebooth/phonebooth.pl and here https://www.dnalounge.com/backstage/src/phonebooth/gpio_poll.c but if you&#039;re serious about this I&#039;ll send you a tar file. I do not recommend it.]]></description>
			<content:encoded><![CDATA[<div class="geolocation">Via Mastodon</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265865">James Young</a>.</p>
<p>The GPIO inputs are just switches, but there is also an SPI display involved. Start here <a href="https://www.dnalounge.com/backstage/src/phonebooth/phonebooth.pl" rel="nofollow ugc">https://www.dnalounge.com/backstage/src/phonebooth/phonebooth.pl</a> and here <a href="https://www.dnalounge.com/backstage/src/phonebooth/gpio_poll.c" rel="nofollow ugc">https://www.dnalounge.com/backstage/src/phonebooth/gpio_poll.c</a> but if you're serious about this I'll send you a tar file. I do not recommend it.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: James Young		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265865</link>

		<dc:creator><![CDATA[James Young]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 07:29:58 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265865</guid>

					<description><![CDATA[two questions:
1. How complicated is the GPIO input? If I wanted to retrace your steps, what would I need?
2. Which kernel version?]]></description>
			<content:encoded><![CDATA[<div class="geolocation">Via Mastodon</div>
<p>two questions:<br />
1. How complicated is the GPIO input? If I wanted to retrace your steps, what would I need?<br />
2. Which kernel version?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: jwz		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265863</link>

		<dc:creator><![CDATA[jwz]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 03:19:06 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265863</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265862&quot;&gt;Scott M&lt;/a&gt;.

&quot;nohdmi&quot; sounds a lot like &quot;no HDMI&quot; which is the opposite of what I want. ]]></description>
			<content:encoded><![CDATA[<div class="geolocation">United States</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265862">Scott M</a>.</p>
<p>"nohdmi" sounds a lot like "no HDMI" which is the opposite of what I want. </p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Scott M		</title>
		<link>https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265862</link>

		<dc:creator><![CDATA[Scott M]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 03:14:35 +0000</pubDate>
		<guid isPermaLink="false">https://jwz.org/b/yk2F#comment-265862</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265861&quot;&gt;Scott M&lt;/a&gt;.

https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README#L5821

Suggests a nohdmi flag to the driver:

dtoverlay=vc4-kms-v3d,nohdmi]]></description>
			<content:encoded><![CDATA[<div class="geolocation">United States</div>
<p>In reply to <a href="https://www.jwz.org/blog/2026/01/gpio-madness/#comment-265861">Scott M</a>.</p>
<p><a href="https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README#L5821" rel="nofollow ugc">https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README#L5821</a></p>
<p>Suggests a nohdmi flag to the driver:</p>
<p>dtoverlay=vc4-kms-v3d,nohdmi</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
