There was a point in time, excruciatingly brief, in which desktop computers often had a large “TURBO” button on their front panel. Some even featured an LED display that would indicate the current CPU frequency, providing visual conformation that your machine had leaped to a blistering 66 MHz.
The 486 that [someyob] is restoring had the Turbo button, but sadly there was just a simple LED to show whether or not it was engaged. But there was a window in the front panel where it seemed like a numerical display was intended to go, so they decided to wire up their own CPU indicator by sensing the state of the Turbo LED with an Arduino Pro Mini.
Now to modern audiences, this might seem like cheating. After all, the Arduino isn’t actually measuring the CPU speed, nor is it directly controlling it (that’s still done by the original Turbo button wiring). But the truth is, even back in the day, the CPU frequency displays faked it — they just toggled between showing two predefined frequencies depending on the state of the button. The arrangement [someyob] has come up with does the same thing, except now there’s some extra processing power in the mix, so the display can show some slick animations as it switches between 33 and 66 Mhz.
In the GitHub repository, [someyob] has provided the Arduino source code and schematics showing how the microcontroller was shoehorned into the existing front panel wiring without compromising its functionality. There’s even a brief video below that shows the display in operation.
Like the idea but don’t have a 486 laying around? Don’t worry. We’ve seen a similar panel built for modern machines that just doesn’t look the part, it actually manages to be functional.
Pedantic comments regarding LCD vs LED, begin here.
I thought the OLED VFD LMNOP display he included was very tasteful
I had a PC like this with a 2 digit display. LED segments were switched on or off by the Turbo switch and an array of diodes. Some of the segments were permanently wired on, no switching at all.
So, no frequency counter?
The segments were connected with a bunch of jumpers in the back of the PCB and the Turbo button lit one set or the other.
…but it didn’t switch between 33 and 66, did it? Mine switched between 8 and 33, or between 8 and 25, or between 8 and 40, or whatever. Turning off Turbo was about compatibility with old games that used fixed delay loops, which wouldn’t be any more playable at 33 than at 66.
I heard it switched between cache enabled and cache disabled. I never knew anybody to turn turbo OFF, except on the weird rare occasion that some bad game software ran strictly on CPU cycles – need a delay of 20ms? Just loop for a predetermined number of cycles! Of course, the only game that I knew of that had this problem was Q-Basic Gorillas.
I ran into a couple games like that. I cannot remember the titles, of course. Emulation was hilarious—they ran at escape velocity speeds.
I remember a version of Joust like that, it ran so fast on a newer PC that there was no way you could push the flap button fast enough to get airborn but it ran left and right extremely fast!
Q-Basic Gorillas! That brings back some memories. Chuck me a banana and beat your chest while you’re at it, will ya?
It entirely depended on the motherboard design.
There’s a Turbo pin header on the motherboard, to read switch status.
In any design, however, the maximum speed is the normal speed.
There’s no danger of overclocking things.
Some boards used a pressed Turbo button (=pin headers closed) for full speed, some for slow speed.
That’s why some people called it a brake, too.
It really depended on the motherboard design. 🤷♂️
– Turbo XTs could toggle between 4,77 MHz (IBM PC Model 5150/60 clock speed) and two higher speeds. Say ~7MHz and 10MHz.
Some had keyboard combos CTRL ALT and +/CTRL ALT and – or similar to control speed.
Others had a DOS utility to toggle speeds.
And some just used the Turbo pin to switch between low/high.
– 286 motherboards didn’t have caches, but often changed speed by changing the divider factor.
If the crystal oscillator was running at 32 MHz, the 286 CPU and chipset ran at 16 MHz.
By further dividing that frequency, the CPU could be run at 8 MHz.
There also was an emergency/failsafe option. The 14 MHz oscillator (used by CGA cards) needed for ISA bus could be used as reference. Some CMOS Setup Utilities had an option to choose between such things.
– 386/486 motherboards could work same as 286 boards, or enable/disable motherboard caches if needed (aka external caches).
Not all 386 boards had such on-board caches, though. 386SX boards often didn’t, for example.
– 586 motherboards and up did often disable caches to slow things down.
Some also changed FSB speed, I vaguely remember.
With the Pentium generations, there was a shift from using dividers to multiplactors, btw. Just in case some of you wonder.
Speaking under correction, though.
I heard, way, way-back-when, that the Turbo button actually slowed the PC so older games could run properly.
I also remember that “TURBO” was when you put a first-class postage stamp on your batch of punchcards being sent to Cambridge university …
That’s right. Very early PC games and applications did merely know the IBM PC with its 8088 CPU, running at 4,77 MHz.
So they were hard-coded for that speed.
But then other models were released, like the PC/AT with 80286 processor, running at 6 and 8 MHz. So there was a need to slow down for compatibility.
This was easy with Turbo XT PCs, because they used same basic hardware as IBM’s original PC model. They were just running faster (7 or 10 MHz), thanks to higher specced chips. That’s why Turbo XTs can slow down to real IBM PC speeds the best. They have same CPU (808x or V20/V30) and architecture.
With more modern PCs, the slow-down no longer tries to match the original IBM PC with its 8088 at 4,77 MHz.
Their Turbo feature simply tries to make old applications run at a more usable speed. Or simply make them run, at all.
Some DOS applications and games from the mid-80s onwards were already made with faster PCs in mind when they were written, but programmers couldn’t foresee how much the speed would increase.
So some applications couldn’t cope with that. That’s why the Turbo feature does divide speed by half or more, to make sure things are “about right”, while not painfully slow.
Mine originally said “HI” and “LO”. I rejumpered it through trial and error to “10” and “8” for the Turbo-AT clone it came for, and then “40”/”16″ when I put a 386DX board. I recall it sort of got imprecise after that– the 486s tended to produce inconsistent or weird results in “non-turbo” mode, probably because I was using ancient diagnostics that didn’t expect caches and clock doubling
I’d like to confirm, HI and LO were also an alternative back then.
That was a generic setting, so that PC chassis were ready to go right from the start, no matter what motherboard they’d end up with bein paired eventually.
HI and LO also worked with Pentium CPU since some display were 2 digits and couldn’t display 100+ MHz My last computer with LED display were technically 2 and 1/2 digits, it could only do 1 in the leftmost digit so good up to 199 MHz.
I don’t think any computer with 200+ MHz CPU supported turbo switch
I reverse engineered mine, it was pretty neat. Every segment came out to a single pin, it could be jumpered to 3 others (L/R, and either up or down, depending, it was only 2 rows of pins). You got always on, on for turbo, or on for slow. It was a neat design, the chart I drew looked like interlocking T Tetrominos
Right. With turbo off, it ran at slow speed for old program. With turbo on, it ran at CPU’s rated speed. It’s been ages since I’ve looked into this but the display would be switching between 4.7 and (example, 286-10) 10 MHz. I believe with later CPU, it was just simply between full speed and half speed.
I am not sure though and I have no idea what was the slow speed on later CPU. I had a display with Pentium system that did 66 and 133. The switch were eventually retired (probably before Pentium 2 and K6 CPU?) although modern CPU does auto switching depending on the load. My CPU runs single core at 3.2 GHz while idling and up to all 8 cores at 4.5 when doing heavy work.
Strange, all my systems do 800mhz or 1.2ghz idle. Unless my ASUS bios sets itself to the ridiculous 4,000+ watt/amp setting. Then windows won’t let it idle until its doing less than 5% of that, and you guessed it, it will never idle. Such a dumb problem, the whole thing at 5ghz only draws 187w
Apparently, nowadays any stupidity is a hack.
this is better than the “I took the guts out of something, put an arudino in it, with a mess of wires, and called it a day”.
there is also the “I 3d printed a case, put an arduino in it, with a mess of wires, and called it a day”.
You’re a hack
Hm. I get your point, but I wouldn’t call it a stupidity.
This is more like a homage to the 486 era. Someone put some love and care into making this cute animations, while simultaneously trying to keep it authentic.
I mean, the original 7 segment LEDs can be kept in place, it’s no random OLED screen that’s being stuffed into the case.
Looking at it that way, we maybe can call it a hack. This hack kind of teaches them new tricks, after all. 🙂
Stupid comments are acceptable so …
Missed an oportunity to use for eg. DFPlayer module connected to the PC speaker to play Manuel – Gas Gas Gas when the turbo button was pressed…
I actually set one pentium up and overclocked it for “turbo” mode when clock multipliers were jumpers.