SShortSingh.
Back to feed

Raspberry Pi OS kernel update breaks Pironman 5 fan control — permanent fix found

0
·1 views

Users running a SunFounder Pironman 5 case on a Raspberry Pi 5 began reporting their case fan spinning at full speed continuously after a recent kernel update via apt dist-upgrade. The issue stems from the Raspberry Pi 5's GPIO header being routed through a southbridge chip called RP1, whose gpiochip device number can change between kernel versions. The gpiozero lgpio backend hardcodes an expected chip number, so when the kernel reassigns it — as happened after updating to 6.12.96 — the fan control software fails silently and loses control of the fan pin. A developer has published a permanent fix using a udev rule that dynamically creates a stable symlink pointing to whichever chip is actually driven by the pinctrl-rp1 driver, regardless of what number the kernel assigns it. Applying the rule and restarting the Pironman5 service restores normal fan control without requiring a kernel downgrade or static workarounds.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Git Workflow Basics: Why Branch Names, Clean Commits, and Pull Requests Matter

A fictional educational series uses a dialogue between an experienced engineer and his nephew to explain professional Git workflows. The uncle corrects the nephew's habit of pushing directly to main, explaining that branches should always be created from an up-to-date local copy to avoid unnecessary merge conflicts. He emphasizes that branch names should reference ticket IDs so any contributor can trace work back to its origin without confusion. Clean, descriptive commit messages are highlighted as essential for future debugging, since vague messages like 'asdf' provide no context when using tools like git blame. The episode also introduces the practice of opening Draft Pull Requests early, rather than waiting until a feature is fully complete.

0
ProgrammingDEV Community ·

How to Safely Inspect and Debug JWTs Without Exposing Production Tokens

JSON Web Tokens (JWTs) consist of three dot-separated segments — header, payload, and signature — where the first two are Base64URL-encoded and readable without any special tools. Developers can decode and inspect token claims such as issuer, audience, and expiration dates locally in a browser, avoiding the need to upload sensitive tokens to third-party servers. Production tokens should never be pasted into public tools, support tickets, or chat platforms, as they can still grant live API access even when simply being 'inspected'. Actual signature verification requires the expected algorithm, a trusted public key or secret, and strict issuer and audience checks performed in backend code or a controlled local environment. When sharing debugging information, the recommended practice is to redact the original token and include only the extracted claims, timestamps, and any verification errors to avoid leaking reusable credentials.

0
ProgrammingDEV Community ·

How to Visualize Kubernetes Metrics Using Grafana and Prometheus

Grafana is a widely used open-source tool that transforms raw Prometheus metrics into interactive dashboards with graphs, alerts, and customizable panels. To deploy it on a Kubernetes cluster, users need Metrics Server, Prometheus, and Helm already configured, after which Grafana can be installed via its official Helm chart from Artifact Hub. Once running, Prometheus must be added as a data source through Grafana's web interface by providing the internal cluster URL of the Prometheus service. Rather than building dashboards from scratch, users can import community-built templates directly using dashboard IDs from grafana.com/dashboards, such as IDs 9679 and 10000. With the setup complete, the cluster gains full visual observability, and administrators can further configure automated alerts for metrics like CPU usage or application errors.

0
ProgrammingDEV Community ·

Developer builds trainable transformer model from scratch using pure PyTorch

A software developer constructed a full transformer architecture in pure PyTorch without relying on libraries like HuggingFace, aiming to deeply understand how the models work rather than simply use them. The implementation covers core components including multi-head attention with 8 heads and a 512-dimensional model, sinusoidal positional encoding, and a pre-norm layer normalization approach for more stable training. The developer noted that omitting the scaling factor of √d_k in the attention mechanism initially prevented the model from converging, highlighting a subtle but critical implementation detail. Pre-norm architecture, where layer normalization is applied before each sublayer rather than after, was chosen over the original paper's post-norm design due to improved gradient flow. The project was undertaken as a learning exercise, with the developer studying loss curves and debugging errors to build genuine intuition about transformer internals.