Every year in the month of June, someone by the unlikely name of [R.F. Burns] posts a question to the Linux Kernel Mailing List asking whether a Linux kernel module is possible that would blow the PC speaker. It’s fairly obviously a joke, which is why the UK-based anti-virus company Sophos have devoted a light-hearted blog post to it.
The post is an interesting diversion into early PC sounds, when the only hardware guaranteed to be present was a small speaker hooked up to a bit on an output port. The bit could be cycled for square wave beeps, or with a lot of clever manipulation could put out a low-bitrate PWM that delivered almost intelligible sounds including music and voice. They conclude that since the speaker would have been designed to be at the full amplitude of the 5-volt output bit all the time it should be impossible to blow it from software, and we’d be inclined to agree. There’s a remote possibility that some speakers might have a resonant frequency that could be found in software, but we’re not entirely convinced.
Your Hackaday scribe might have spent a while in a university computer lab back in the day trying and failing to write C code that would produce a usable PWM on an XT speaker, but those with long memories might recall the PC speaker driver for Windows 3.1. If you’re a fan of chiptune music there are even entire albums written for this most basic of instruments.
Header image: MKFI, Public domain.
I once blew a speaker literally using a MiniCrescendo (elektor reading folks know what that was – Japanese Mosfets hardly to be obtained) with 40 Vpp and a looot of Amps floating on a 50Hz hum (fuses are for the cowards). I doubt that the same is possible on an I/O pin hardly providing 20mA (even with some BC547/557 amplifier or LM386 attached) also on resonance…
For a moment I thought I have played Prince of Persia with PC speaker audio, but then remembered it was COVOX after all…
I wrote a software that could play music scripts on the pc speaker back in 2008. Had a blast playing all sorts of stuff on the pc speaker in school. With hits such as, The Mexican Hat Dance, MGMT Kids, and others. If you want to check it out, the website that has the download is still up http://froat.yolasite.com/software.php Note that the ability to play beeps on the PC speaker went away with Windows 7, Now it just routes it to your default sound device. Gone are glorious XP days of playing directly on the beeper in the middle of class.
I guess only two theoretically possible ways:
* Try to have it shake apart by making it beep at its resonant frequency and shakes itself apart.
* Keep DC voltage on it until the coil overheats.
Both are possible with speakers. But with such a tiny speaker as a PC speaker? And how much DC is actually put over the speaker? 5V?
I’d say: not a chance.
The best way is probably this one:
* Write a virus that starts beeping the speaker as soon as the computer boots up.
* Wait until the kid’s patience run out, they search for something to destroy the speaker with, and destroy the speaker through the ventilation slots. :)
There is no coil in this speaker. Last time I saw membrane one was on 286 (a.k.a speed devil) in museum.
If they are piezo beepers, that kills your DC strategy.
And “shake apart” assumes a level of crappiness that’s unlikely, even here.
Almost intelligible? Fast Tracker played MODs perfectly over PC speaker and there were even MP3 players. It was monophonic, but otherwise sounded almost like a worse clone of Soundblaster.
Blow speaker? Easy. Just play Maynard Ferguson at full volume.
please!!
any David Gilmore riff on any Marantz speaker will trash it
The Windows PC Speaker driver would completely halt Windows 3.1 while sound was playing. That same driver worked in Windows 95 and sound could play through the PC speaker while everything else carried on normally.
A few short decades ago, a few months before Windows 3.1 came out, I had the dubious pleasure of debugging the video BIOS for a Pen Windows display tablet. Since BIOS code executed well before the system really came up, there was no debugger, no print statements, no logging to the file system. But there was that speaker bit on the keyboard controller. By arranging various beeps, boops, and peeps within the code, I could progressively monitor how far my latest fix got before it crashed again. Yes, our product did eventually ship, although the company never thrived.
Linux grew an alsa driver called “snd-pcsp” to play audio in 2.6.26. You can configure it at run time to either 19kHz at 6bit/sample or 37kHz at 5bit/sample.
I worked on a CD copy protection system, which provided full-quality audio on the original disc, but through clever magic, produced a degraded copy when burnt to a CD-R. (I’m not saying who I worked for, but I will say that we never rootkitted users’ PCs. This stuff was all entirely passive. And for anyone under 20 reading, this was targeting copying an audio CD – which is an old digital format for music – to a CD-R – which is a recordable version of it, but with a slightly different spec which we could exploit. This is back before smartphones, when people copied an audio CD to an audio CD instead of ripping it to mp3/ogg)
We designed it such that copied discs would include horrible transients, which sounded like clicks several times louder than the music itself- no mean feat when the music is already compressed and amplified to sound as loud as it can.
Anyway, we dedicated a lot of work to ensuring that the original disc played at full quality, but a copied disc was degraded as badly and was a unlistenable as possible – beyond the first few minutes which users might check after duplicating a disc. We had lots of high-end audio analysis equipment to check the quality, but we also did lots of manual tests.
We quickly learned to leave our headphones on our desks when testing it manually, as the clicks could be very loud. Someone blew a set of amplified pc speakers (not the on-board piezo, but the externally powered speakers that were popular in the 90s-00s). I think we also destroyed a pair of headphones. In both cases they were set to a comfortable listening level.
This is why we did QA! We changed the transient to have less impulse before release, as we wanted folks who copied discs to have a degraded listening experience, not degraded audio equipment!
So yeah, it’s possible to damage some audio equipment with a well designed bit of audio. But probably not a piezo, nor a well designed bit of audio gear (though we didn’t take the risk, and made sure it was well within safe limits before release).
Pretty sure you weren’t allowed to call them CD’s anymore afterwards, since they probably weren’t compliant :) Also, i’m not sure which system you were working on, but for some of the system there were massive complaints as some copyright protection systems worked by simply increasing the error rate right up to the limit of what most players could comfortably handle. That meant a simple scratch on an original ‘CD’ could introduce the same kind of pops and decreased audio quality a copy would exhibit. That’s the thing about copy protection, eventually you’ll just end up annoying honest buyers/users instead of just hurting the pirates.
Other systems worked as you describe, particularly CD-ROM based software protection, but this was CD audio.
Ours didn’t increase errors, it relied on some magic of the difference between CD and CD-R encodings. The CDs remained CDs.
I’m probably still officially NDA’d on it, unfortunately, otherwise it’d be a very interesting write up for HAD.
It’s possible to damage some audio equipment with audio that’s playing at a comfortable level, well below max volume. The key is transients designed to have as much impulse as possible.
Source: was involved in a project which inadvertently did this.
I wonder if that could be exploited to fight back against telemarketers.
I managed to trash the SYM 1 onboard “speaker”
it had 3 cracks radiating out from the centre to the support posts
I’m not sure whether it was “random” noise, playing Pink Floyd or sound experiments in general, it did not take long for the speaker to completely fail
I replaced it with one I bought from Tandy, it had a plastic enclosure that I used some double side tape to mount it
> those with long memories might recall the PC speaker driver for Windows 3.1
That same driver used to work just fine in Windows 95.
I have a Dell Optiplex 3010 with Debian Linux Buster and it plays the audio through it’s little piezo speaker like the old win3.1 driver.
Might be able to produce an annoying high pitch sound with one to annoy a user but not enough to blow the speaker up.
As an aside, well before Windows 3.1 there were several programs running on the Apple ][ which achieved limited timbral variation with PWM, and up to four-note polyphony by toggling the one-bit speaker driver at a high frequency. Yes, it sounded fairly awful, but it was impressive at the time.
Speakers can handle pretty much anything you might throw at them. But early multi-mode capable CRTs were a different story altogether. There was a time when switching video modes fast enough and in the right sequence would drive some (cheaper) displays to commit suicide.
Funnily enough, I had a mid-90s CRT screen that used a transistorized mode-switcher, but then a c.2000 one that used a relay! Eventually the relay started getting flakey, and you had to thump it to get it to re-engage, and then eventually that finally stopped working
If you play doom for 300 hours using only the pc speaker, it will never work again. This isn’t a specific unit of time, as it depends how many winds and the gauge of copper wire are in the speaker itself, presumably it’s all those attempted noises being blasted via the tiny speaker,
I remember Dell 90s desktops being particularly susceptible to this.