fan-shim interrupts u-boot

Bug #1873520 reported by Dave Jones on 2020-04-17
This bug affects 2 people
Affects Status Importance Assigned to Milestone
u-boot (Ubuntu)

Bug Description

The popular pimoroni fan-shim uses the serial lines on the GPIO header to control an RGBLED. The default configuration of Ubuntu includes a serial console, which can interrupt the u-boot process with an appropriately timed key-press. When the fan-shim is installed, it effectively spams the serial console continuously with the result that the boot process is interrupted and lots of repeated characters appear on the screen.

The workaround, for now, is to add the following line to the syscfg.txt file, disabling the serial port:


tags: added: eoan focal
Maxwell Andrews (nairn62) wrote :

Disabling the UART is an option for me, as I use this USB console ( device on all my Raspberry PI 4Bs. I hacked the Pimoroni Python file to disabled any communication to the GPIO14 & GPIO15 pins, and even cut the stacker pins on my header. Now, I can use the USB console and have the fan-shim's system service switching the fan on and off under Ubuntu (Focal Fossil).

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in u-boot (Ubuntu):
status: New → Confirmed
rewound (rewound) wrote :

syscfg.txt is intended to contain system-made configuration changes and user configuration changes should be placed in usercfg.txt. Consequently I edited, in the boot partition of the RPi4's SD card mounted in a laptop, usercfg.txt and inserted enable_uart=0 there. Xubuntu 20.04 LTS now boots correctly with Fan Shim mounted.

Guilherme Oliveira (gui-lancia) wrote :

In my case, I read a one-way communication coming from a power meter on the uart. Since I can't control the flow of data coming and also need to have uart enabled, how can I work arround?

Is is possible to set enable_uart=0 on /boot/firmware/usercfg.txt and after boot use a script to reenable it?

Guilherme Oliveira (gui-lancia) wrote :

An additional info:

setting the environment variable below for u-boot solves the problem on the u-boot CLI. To get to the CLI, I need to have and HDMI monitor and a USB keyboard.

setenv bootdelay -2

Can someone help me adding this through ssh command line. I need to fix an equipment that is already in field, with hard physical access to it.

Mathew Hodson (mhodson) on 2020-10-03
Changed in u-boot (Ubuntu):
importance: Undecided → Low
Changed in u-boot (Ubuntu):
status: Confirmed → Fix Committed
status: Fix Committed → Incomplete
assignee: nobody → Muhammad ariesta (anezdoank84)
information type: Public → Public Security
Colin Watson (cjwatson) on 2021-02-01
information type: Public Security → Public
Changed in u-boot (Ubuntu):
status: Incomplete → Confirmed
assignee: Muhammad ariesta (anezdoank84) → nobody
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers