That does seem like a miss for an otherwise decent platform. HDMI out support is fine, but since this setup is quite portable, exposing a headphone jack seems obvious. I suppose bluetooth is the expectation now?
The on-board sound quality on the raspberry pi line has traditionally been quite poor so you probably want a dedicated sound dongle anyway especially if you are using headphones. This is an article about the model b+. It's an older version than the 4 but explains the problem just as well since the 4 still uses PWM instead of a DAC.
The hardware hasn't changed much but the software has tremendously and stuff from 2014 isn't relevant. Do you think the current implementation (sometimes known as audio_pwm_mode=2 but it is the default firmware these days) is still poor? I've found it's fine for everyday use and listening to music. I think a line-out would have been fine for people to use.
Yes, but it's "yet another" dongle for this machine which is meant to be an easy to use all-in-one friendly to beginners. Them using micro HDMI is already bizarre seeing as there's loads of room for a full size port and most people will need a dongle/adapter here, but not including an audio jack is crazy, seeing as the proper Rpi4 does have one!
> meant to be an easy to use all-in-one friendly to beginners
Unlike the "normal" Raspberry Pi this device has a fairly focused use case that you have summarised well here. It is designed to be plugged into an HDMI TV and used as a PC, with the great bonus of a cool GPIO connector. You make some choices and you make some sacrifices to meet cost and space targets. This also isn't an iPhone that costs $800.
As for fitting the HDMI on, there isn't loads of space for a full size port. I'm not saying it would be completely impossible but it would be challenging. Have a look at the photo of the board in this post:
The non obvious thing looking at that photo is that the keyboard slopes back so you only have height at the front. Non-micro HDMI are surprisingly deep, without CAD looking up parts and looking up parts I can't tell if just wouldn't fit at all, but you certainly wouldn't be able to get much behind it. Note also that they couldn't work out a way to sensibly route the USB to the other side - it's clearly a busy board.
You would also want a dongle that has a driver already bundled with the OS. Not sure if that's typical or not. Probably unlikely that the dongle itself comes with a suitable ARM/Linux driver.
USB audio devices are standardized (just like flash drives, as USB mass storage, and keyboard/mouse, as HID respectively), so you don't need device-specific drivers for most of them.
Oh. Either that post was edited or I misunderstood - I thought they were talking about an HDMI dongle with 3.5mm audio jack for audio extracted from the hdmi. But yes, indeed, a USB audio dongle should "just work".
I don't think HDMI audio extractors need a driver, either. The first one I could find claims compatibility with all kinds of source devices. It's probably entirely invisible to the source. I don't how know about HDMI DRM, but that's not a problem for the RPi.
They don't, but they can be finicky. Most can only extract audio if it's specifically sent as stereo, if the source sends audio as encoded 5.1 stream then most don't know how to decode that. So you will need support for being able to chose the output format over hdmi, which is where I imagine the difficulty in the RPi will start.
That makes a lot of sense, I guess it's either that or the adapter would have to somehow modify the EDID display capabilities to get the HDMI source to output PCM audio (or whatever the splitter accepts) only.
I wonder if it doesn't already need to do that for non-audio-capable HDMI sinks. (My first HDMI monitor didn't have speakers or even a headphone jack, and as far as I recall, the source computer could tell this somehow and wouldn't offer to send sound to the monitor.)
I add my voice to the chorus of complaints about dongles, but for the record you could also use an inline HDMI audio extractor which is invisible to the OS and requires no drivers for sure. They are also very cheap.
I personally suspect that removing composite output was the real reason for removing the headphone jack. From what I've read, to enable composite output on the Raspberry Pi 4 you have to enable a special setting on config.txt, which when enabled slows down some of the clocks so that it can produce the correct frequencies for the composite output to work. Not having composite output removes the need for that wart.
I just don't think a headphone jack justifies the BOM cost, given that most HDMI displays have a headphone output and Bluetooth headphones and speakers are commonplace.
Apple, Samsung and others have eliminated the audio jack (for different reasons) and there was a lot of outrage but the bottom line is: acceptable Bluetooth headphones can be bought for about $10-$25 now, and are widely available.
Between Bluetooth headphones, HDMI out to the screen, HDMI audio splitters and $5 USB audio dongles, it really is a fine design choice - especially given that the RasPI’s analog audio out circuitry is low quality to begin with.
Yes, Bluetooth introduces a tiny bit of audio latency, which is perfectly acceptable for 98% of all use, and 99.9% of RasPI 400 uses. For the rest of the cases, use one of the other RasPI400 options, a RasPi 4 or a Razer laptop.
In my experience, bluetooth audio latency has made watching videos completely impossible, extremely annoying to be hearing something and not seeing the lips of the person moving the right way.
One of the elements in your system is either very old or borked.
I have an AppleTV4K, and everything is perfectly synced with at least 3 brands of Bluetooth headphones - an 3-year-old eKids one, a 1-year old TaoTronics one, and a 2-year old nameless one.
In the early PlayStation 2 days, many flatscreen TVs (both Plasma and LCD) had delays that made games like Guitar Hero unplayable, so the games added a latency estimation/calibration setting you could use; My 12 year old Onkyo HDMI receiver has a special "eliminate latency in game mode" setting which disables some processing features and reduces sound latency by 50ms or so.
It's not that there were never problems; But anything made in the last 5 years or so, especially using BT4/BT5, should not have these issues.
Edit: just tried with an 8 year old or so JBL Clip I found lying around, and it does have ~100ms latency (estimated, not measured). But the newer ones don’t have it.
IIRC both VLC Player and mpv allow you to set a keyboard shortcut for increasing/decreasing audio-video delay and are capable of streaming directly from YouTube (and I believe any website supported by youtube-dl).
I use mpv and whenever I get audio latency from my headphones* I just adjust in the player.
* - It seems like there's some adaptive algorithm where they start off at 0ms latency but if they experience one hiccup they increase to 250ms-300ms and then another hiccup causes them to jump to 500ms. This is also why a keyboard shortcut that let's you adjust the exact a-v delay value is useful beyond just setting the value once.
That does seem like a miss for an otherwise decent platform. HDMI out support is fine, but since this setup is quite portable, exposing a headphone jack seems obvious. I suppose bluetooth is the expectation now?