TV Hat problem - not showing properly

Creating a bug report/issue

Required Information

  • DietPi version | G_DIETPI_VERSION_CORE=8 G_DIETPI_VERSION_SUB=10 G_DIETPI_VERSION_RC=2 G_GITBRANCH='master' G_GITOWNER='MichaIng'
  • Distro version | bullseye 0
  • Kernel version | Linux hostname 5.15.76-v8+ #1597 SMP PREEMPT Fri Nov 4 12:16:41 GMT 2022 aarch64 GNU/Linux
  • SBC model | RPi 4 Model B (aarch64) (8GB version)
  • Power supply used | Raspberry Pi 15.3W USB-C Power Supply
  • SD card used | idk exactly, box says “official 32 GB sd card”

Additional Information (if applicable)

I am talking about this tv hat: Buy a Raspberry Pi TV HAT – Raspberry Pi

Steps to reproduce

  1. Mount/connect the tv hat
  2. Install dietpi
  3. boot
  4. Check /dev for dvb antenna
  5. find that it is not there

Expected behaviour

  • dvb antenna should be mounted as /dev/dvb

Actual behaviour

  • nothing, dmesg shows nothing relevant

Extra details

  • Before enabling SPI it was saying this in dmesg: cdx2880_attach: chip id invalid.
  • The antenna is not visible in tvheadend too.

@MichaIng maybe something you could have a look into.

Hm maybe the hat is not recognized automatically and you need to add the overlay in boot/config.txt? Is the green LED lid up?

You could give it a try and add dtoverlay=rpi-tv in boot/config.txt.
You also need to adress some GPU memory for this hat. 128mb are recommended. This can be changed with dietpi-config > 2 : GPU/RAM Memory Split

Somehow am back to this now. cdx2880_attach: chip id invalid.
I2C is on.
SPI is on.
Got this dtoverlay=rpi-tv in boot config and 128mb gpu on.

Also the green light is on.

I guess you need to disable I2C and SPI, isn’t it? 128 MiB GPU memory shouldn’t be required, but the 76 MiB default is sufficient for nearly all cases nowadays.

It’s interesting that the docs do not contain any config step, as if it wouldn’t depend on any dtoverlay, interface or specific pin.

Did you test it on official RPi OS 64-bit, just to rule out a kernel or hardware issue?

Ah, just found the preceding question on reddit: https://www.reddit.com/r/dietpi/comments/yxzdwj/tv_hat_problem_chip_id_is_invalid/

According to this post it should be recognized automatically

The biggest change with HAT add-on boards versus older boards designed for models A and B is that the 40W header has 2 special pins (ID_SC and ID_SD) that are reserved exclusively for attaching an ‘ID EEPROM’. The ID EEPROM contains data that identifies the board, tells the Pi how the GPIOs need to be set up and what hardware is on the board. This allows the add-on board to be automatically identified and set up by the Pi software at boot time including loading all the necessary drivers.

But maybe this works only on RPi OS?

And here is written that it communicates via SPI, so it needs to be enabled?! Also 2 I2C pins are in use (I think these are the pins ID_SC and ID_SD for the automatic detection)

1 Like

Did not try on official yet. Might do it eventually since reinstalling would be a bit annoying.

Ah nice, thanks for the link and quote.

We use the same bootloader, kernel and firmware, so whatever works on RPi OS on this level, should work on DietPi the same way.

Since it is not mentioned anywhere that SPI or I2C needs to be enabled (and by default it isn’t either on RPi OS), I guess the EEPROM is read from those two pins before/regardless whether I2C0 is enabled or not (which uses these two pins by default, if enabled), and the auto-configuration implies setting up all GPIO as required. I2C pins can be changed via dtoverlay parameters and the SPI “chip select pins” can be freely set as well, so it makes sense that the HAT configures this to work on the pins required by the HAT, otherwise it would be part of the docs. However, if unsure and as attempt to solve, I’d disable both, I2C and SPI, to match RPi OS defaults.

No spare USB stick/drive or SD card to flash and boot it from? Booting from USB stick/drive is btw recommended anyway, since they survive much longer the constant I/O on the root filesystem.

You do not have force_eeprom_read=0 in your /boot/config.txt, do you?
@Jappe
See, this is indeed expected to read HAT’s EEPROM by default from the I2C0 pins, most likely regardless whether I2C0 is enabled on these pins or not: Raspberry Pi Documentation - The config.txt file

1 Like

Disabled SPi and I2C. Still this cdx2880_attach: chip id invalid..

Also I do not have force_eeprom_read=0.

https://forums.raspberrypi.com/viewtopic.php?t=232037

https://forums.raspberrypi.com/viewtopic.php?t=319700

So I think it makes sense to test with RPi OS, before we’re further guessing around here :wink:.

1 Like

Seems like something is broken completely. :disappointed:
Even on rpi os I get the same thing no matter what.

SPI ON
I2C ON
------> chip id invalid
SPI OFF
I2C OFF
-------> chip id invalid
SPI OFF
I2C ON
-------> chip id invalid
SPI ON
I2C OFF
-------> chip id invalid

Thanks for help either way.

Maybe you can ask on RPI forum? Could it be a brocken part?

Hopefully not, got the pi a week ago. :expressionless:
Will ask I guess.

I am having the same problem, it could be the card … they are only 6 quid on Amazon.

How can I revert to a previous kernel version and try that? I have installed rpi-update but I am not sure which branch to use.

you could follow official instructions to change/switch RPi kernel version GitHub - raspberrypi/rpi-update: An easier way to update the firmware of your Raspberry Pi

Did you happen to see this post?
getting-started-with-tv-hat.pdf (raspberrypi.com)

I wonder if tvheadend might have some sort of kernel package that might make things work over stock?

1 Like

Yes, it did not help much.

Did anyone test on RPi OS already?

Same thing so something might just be broken. Dunno. Kinda gave up on it honestly.