Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
My broken ThinkPad plays music upon booting (nerology.substack.com)
214 points by NeroVanbierv on July 17, 2023 | hide | past | favorite | 61 comments


The "BIOS setup" of some ancient IBM ThinkPads wasn't the ordinary PC BIOS blue character-based UI, but actually a pixel-based GUI, including an animated flappy-bird mouse pointer:

https://www.youtube.com/watch?v=AfUkI-n4jpo&t=23s

I'd guess most corporate fleet ThinkPad end users never saw the bird flapping its wings to fly as you moved it around the screen with your Trackpoint, but kudos to IBM (known for wearing suits at the time) for letting this bit of whimsy slip through to customers.

Maybe it was indicative of corporate flexibility that helped the ThinkPad introduce so many innovations and general technical excellence, and made it such a respected and beloved brand.


Ah that Thinkpad 560E reminds me of my first laptop -- the perfectly chunky Thinkpad 380XD.

I adored that laptop. I loved how it felt, how it looked, how it sounded. I loved the beeps, I miss computers beeping and chattering to confirm that they are indeed powering on.

I loved the fan periodically revving every 30 minutes or so, reminding me that it was still alive but also putting into perspective that it had been utterly silent until that moment.

I still remember how the keyboard felt. Granted I wasn't doing much on it besides trawling through newsgroups and homework, but I haven't really come across a keyboard I've enjoyed typing on more.

The Filco keyboard I'm composing this comment on now isn't bad by any means, and I'm fairly happy with my Macbook's keyboard given its other strengths... but if I had the time, I'd find a way to get the 560E's keyboard on a laptop with a Chromebook Pixel's 2560x1600 screen and an M2 under the hood.


I had a 380XD too, wish I never got rid of it based on how much they sell for now I will probably never see one again. Way outdated for the time, but I managed to get XP running on it and also got HL1 running too.


I also regretted giving mine away in favour of something that represented a considerable hardware upgrade, but was nowhere near as pleasant to use.


> You can see a lot of repetition in the vertical direction, but these are probably redundant resonances. They don’t add any more information, so we should only look at the base frequencies.

In the context of audio, these are just called "overtones", and the "base frequency" is the "fundamental".

The amplitudes of the overtones are what give an instrument its characteristic timbre. It's what makes a flute sound different from, say, a sax, when they are both playing the same note.

https://en.wikipedia.org/wiki/Overtone

https://en.wikipedia.org/wiki/Fundamental_frequency


I knew that I had the wrong word, but couldn't think of the correct one. Thanks!


Yeah, these are probably square waves. They sound like it, and square waves are the easiest to generate.


Yes, they are. (A funny side effect of getting into making electronic music is that I have a much better ear for synthesis and timbre now.)

You can actually see this on the spectrograms too. Square waves have only odd-numbered harmonics, so the frequencies should be like:

    fundamental
    fundamental * 3
    fundamental * 5
    fundamental * 7
    etc.
If you look at the first note on the first image, it looks like the fundamental is around 2,200Hz, the first (loud) overtone is around 6,600, next around 11,000, etc. (There are some much quieter overtones at even multiples too, because hardware isn't perfect.)


My fully functional ThinkPad plays a tune on every boot. The tune means "BIOS Password Required". Then, two tones rising mean, "Password Accepted".

I had to explain it to my mother the other week over the phone.

A few weeks ago, I was boarding a bus with a brand-new mobile fare; I scanned the QR and it turned green and beeped, I guess twice or something, and the operator summons me back and he goes, "it has to beep once", so I shrugged, scanned again, got 3 beeps and a green light, message says, "already scanned" and I asked the operator "what does that mean?" and he didn't know.

Come in, C-3PO, where could he be?


Where I am, two beeps means concession fare, so the driver/whoever can notice and ask to verify your concession entitlement. Might that have been it?


Yep, I think you're on to something!



This is fun although you'd think it would have just been easier on everyone to just have a number of beeps and the count equals the error code. Requiring a second device on hand just to decode the error beeps sounds more complex than necessary.

I guess the author now has the responsibility of writing a new app to decode the beeps that hopefully can last longer in the app store before it gets too old.


It could be a web app that captures mic input


Okay, this is a rather cool diagnostic feature by Lenovo. One thing though, the Lenovo diagnostic app APK can be found and sideloaded rather easily as I did to see if it actually worked - and it did by bringing up the correct error code. Why Lenovo restricted the installation of the app to certain OS versions is rather silly.


My understanding this is more of a Google thing. The play store will no longer offer new installations of software below a certain API level, even though they will work on current versions of Android.

I believe this is an attempt to enforce some of the permissions changes made around Marshmallow, I believe, where apps now request many permissions at time of use, and not at install. The compatibility layers are a bit 'ugly'.

An interesting side effect is that if you sideload an app that is in this state, Google Play will actually offer to keep it updated, even though it wouldn't allow installation initially.


Actually, I did install the APK directly from Apkpure, but it didn't seem to do anything apart from loading the splash screen.


Maybe the reason the app installation is prevented via the store is that whether it works or not is device-dependent, and Google decided that it preferred not letting people install it at all rather than allow people if they couldn't be sure it would work (or try to figure out which devices it would or wouldn't work on beforehand and then have to keep that data around)


> I believe this is an attempt to enforce some of the permissions changes made around Marshmallow

That was a relatively major change, but there have been enough other changes since then, too, that they're trying to force developers to adopt – some of them "just" cause the hassle of adapting to the new APIs, some of them unfortunately definitively break some power user use cases without a suitable replacement.


This is cool but why is the human in the loop? If the only possible action is for the human to close a switch, why doesn't the platform diagnostic just close the circuit instead of playing the song?


I believe the code is for diagnostics done before the laptop is assembled, so there is no monitor.


> But it doesn’t run on recent android devices…

> > This app isn't available for your device because it was made for an older version of Android.

I wonder if it really "doesn’t run on recent android devices", or if it's just that Google doesn't want you to install it (because it was made for an older version of Android and Google doesn't like that), and if you somehow downloaded the APK and manually installed it, it would run just fine. I suspect it's the later case... In my experience, other than the missing software version of the legacy hardware menu key, Android's compatibility with software made for older versions of Android is quite good.


Yeah, does anyone know what causes this to happen and if it can be worked around? I was under the (possibly mistaken) impression that Android backwards compatibility was actually decent (in contrast to iOS).


It's been quite a while since I dipped my hand in Android development, but from what I recall when you made an Android project, you had to set the API "Level" - which changes every new version of Android.

I assume Google is looking at that value, comparing it to the current running API and blocking installation because the API the app is using is too old, with new permissions conventions that are built into the newer API versions running on more modern phones.

I believe they also limit(ed) installation of apps made for tablets on phone screen devices (and vice versa) through the devices' DPI settings.

I believe you can easily sideload these apps into Android and have them run mostly flawlessly, but Google Play Services blocks install probably to prevent people from installing old/possibly incompatible apps on their platform.


My X270 motherboard conked out a few months ago and I had the same app issue as OP. Sideloading the APK did let the app install, but it's non functional.


I love when people decode data like this.

I am curious about the postage codes used in Sweden since 2021. Instead of buying physical postage stamps, you can buy a code online. It is meant to be written on the envelope in the place where you'd normally place a stamp. It has 4 x 3 symbols all are numbers or upper case letters.

Looks like this:

    A X X 2
    T T 2 Y
    3 M 3 5
I assume some letters are omitted for clarity, like I vs 1. And presumably, there is error correction built in. I imagine the error rate from writing by hand and OCR-ing them is quite high.

I wonder if there is anything interesting in there like a time stamp, or if it is just a serial number.


I’ve been a Thinkpad user for probably 20 years or more, never heard of this (though not entirely surprised this level of attention was developed). Also, just yesterday this happened to me (T470s). Now I know to make a note of the tune if it happens again.


The minor second in there is a little menacing


This is also a little menacing: https://youtu.be/9bHV4KIIDtE?t=9

(I would freak out if the intro of Forbidden Forest started blaring from the speakers on startup)


Much more pleasant sounding compared to the screeching modem built into appliances.

https://www.youtube.com/watch?v=DADcChMJqBY

https://www.goodhousekeeping.com/institute/a24653/how-to-dia...


Probably quicker to just bluestack to emulate the app. (If you can get an apk from somewhere)

But I love this very clever solution.


In my experience the app doesn't run well even on the correct android version and was almost impossible to use on bluestack.

Had to use it a couple times when I worked at a repair shop.


In my experience, the app worked perfectly and diagnosed the error via their video instantly.


This is dope, great post --- just a bit of script / spectogrammin' and no one needs no APK


Serious question:

The bios is a few megs large. Why not store sound clips and play them in case of an error?


I actually had a desktop motherboard, purchased about 2003-2004, that did this.

Mind you, as it slowly succumbed to age (capacitor plague, most likely), it would start repeating "No CPU Installed, No CPU Installed..." as I watched it boot without issue. Once the sound driver was configured, it would stop.


"ASUS POST Reporter" was one incarnation: http://web.archive.org/web/20081121022828/http://www.asus.co...


"System completed power on self test, computer now booting operating system" is forever burned into my mind.


Maybe modulation limitations? A square wave can often be output quite easily without the use of a DAC.

Also the tiny piezo speakers frequently used on motherboards are often pretty bad at functioning as general purpose speakers. Something like voice might not be clearly audible through one of them. (And also, localization would be an issue.)


The most amusing thing here is what those OTS speakers, being perfectly fine on the desktop mobos are... too large to be incorporated in any modern notebook.


Apple PowerPC Macs definitely did this - the car crash would play if POST failed.

YT collection of Mac chimes (~48s): https://www.youtube.com/watch?v=zkBcpXL94rA&t=48s


You'd need sound drivers to operate the sound chip. The small PC speaker that's easy to access is also very bad at rendering speech. Playing some music seems like an excellent solution.

With this reverse engineering done already, someone should be able to write a decoder app for looking up the error codes.


Have laptops had a separate pc speaker in recent memory?


No, but they seem to have some kind of compatibility wrapper to emulate the PC speaker in firmware. The early boot process on my laptop has plenty of beeps and boops I can enable but nothing more advanced than that until the operating system loads a real driver. If the UEFI firmware could play sound files, the laptop would come with much friendlier sounding (less shrill) noises.


It's not a technical limitation, PC manufacturers just don't care about doing anything above the bare minimum to ship a cheap box.

Sony used to put in the effort in their VAIO machines like 24 years ago and gave them high quality boot sounds https://youtu.be/wPVIubVtdRY?t=907


The Vaio chime was my favorite


A barebones single-channel sound driver shouldn't be complicated. It should also be simpler than "some kind of compatibility wrapper to emulate the PC speaker in firmware".


Like a voice saying "error 47"? A good question. If I had to guess I'd say probably either localization concerns or that it was just a continuation of a pattern that began well before BIOSs were large enough to store audio.


BIOS flash is a few megs larg., I think a few hundred kilobytes would be sufficient for either something generic (error 47, please consult user manual) or something more detailed (internal error, reset from back).

Doesn't need to be 44.1K stereo and localised voice


> and localised voice

Do you expect everyone to speak English? Localization would be critically important, and with a global supply chain, having one SKU for each language would cause you to get laughed out of a room if proposed.


> localised voice

> 44.1K stereo

Guess you never worked as L1 tech.

Obligatory 'Reebok or Nike': https://www.youtube.com/watch?v=uctpC2HnBfk


You could even jam a Klatt synth in there and some text strings to say in a Stephen Hawking voice upon boot, e.g., "memory error".


even simpler, they could have used morse code ...


My old (2000) Nissan Micra does this.

A few months ago it developed engine trouble where the RPMs randomly increased and decreased – so much so that the engine would often just stop when the car slowed down. Not fun on a roundabout or making a right-hand turn – across a lane (driving on the left in Ireland).

The Haynes manual detailed a procedure where I could turn on the engine and connect two terminals of the diagnostic connector (OBD-I) with a thin wire. The engine light would then flash morse code patterns corresponding to various faults that (as listed in the Haynes manual). From this, I was able to tell that the problem was the “airflow meter circuit” and the issue was resolved by replacing the throttle body with that of a similar vintage.


or phone dial tones?


I was instantly transported back to playing Kings Quest!


Has anyone tried hacking Lenovo BIOS to make more interesting sounding tunes?


A) Cool.

B) Glad to see I'm not the only one using ThinkPads and MacBooks.


My not broken P16s needs 1.50 Minutes to get out of firmware boot. And this is after the firmware update that shaved of 1 minute.

This will be my last Lenovo...


My P1 Gen 5 needs to be reset - being the power button pressed until the notebook turns off - at least once and sometimes multiple times after I switch from working from home (multiple USB-C connections, HDMI) to Office (nothing connected) or vice versa. It hangs in firmware and doesn't boot the OS (Windows).

Just the other day I had a few days when it even boot looped and I had to disconnect it, boot it to Windows, and only then connect it.


My X201, T430 and T530 all work fine and are at least a decade old. I think they too will be my last Lenovos.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: