Fixing POST Errors With A Single Key

one_key_keyboard

Instructables user [Mike Craghead] was in the middle of building a very compact public computer kiosk when he ran into a problem with the processor fan. It was too big for the enclosure and had to be swapped out with a fan that did not allow the motherboard to monitor its rotational speed.

Motherboards don’t like this situation very much, and each time the computer was started, it would hang at the BIOS screen waiting for someone to press the F1 key to continue. Knowing that everything was just fine, and that there were no BIOS options which would allow him to ignore the error, he crafted a simple solution to the problem.

Since the computer just needed someone to press the F1 key, he figured he could rig up a small dongle that would always hold down the key for him. After verifying that the OS would ignore the stuck key, he tore apart a keyboard and traced the circuit matrix to identify which pins he had to short in order to represent the F1 key press.

Satisfied with his handiwork, he plugged the board into his computer and found that everything worked just fine. Sure it might not be the most elegant solution to the problem, but it gets the job done at a cost of zero dollars – you can’t beat that!

60 thoughts on “Fixing POST Errors With A Single Key

  1. This is a real hack of a hack, and not in a good way. A much better solution would be to take an attiny13, a low-end MSP430 or a (*shudder*) 555 and rig it to generate faked fan-speed pulses, or even better, simply generate real ones by interrupting a LED/photodetector pair with the fan’s spinning blades.

  2. Uh. Wouldn’t it be _much_ easier to just find a way to simulate a fan at an acceptable RPM? Also, it’d have the extra benefit of not requiring a human to press the button (This is especially important since this is a kiosk).

  3. Terc, they dont have to push any buttons, it’s wired to keep F1 always on.

    I Love the idea of re-using old keyboards, there are waaaaay too many out there and they’re all cheap or free anymore. Why waste money/resources on NEW hardware? this is hack a day, not engineer a day.

  4. a simple bios hack would suffice or even an update to a perhaps newer bios if available or contact vendor and request a revision for said feature{being able to ignore fan speed input}

  5. couldnt you go simpler?

    use a 555 timer to generate the signal to fool the board to work?

    or using some duct tork have the fan somewhere else in the enclosure hp does a plastic 90 elbow duct to pull the heat from the cpu .

  6. Cool! I have a similar problem with my Dell that I use as HTPC: Bios hangs for no reason, waiting for F1 to be pressed. This solution wouldn’t work for me though, as the F1 key would have to be depressed after initial boot has passed… But good starting point maybe?

  7. @Pedro: read the original article before posting dumb things. His BIOS doesn’t have the “ignore” option.
    @Kuy: The same goes to you, although that’s a really good idea, the guys said he doesn’t have the knowledge to do it.
    Nice hack. I had no idea that the OS would ignore stuck keys :|

  8. I don’t see how continually pressing F1 would simply be “ok” to a modern OS? Not only would it attempt to chord the F1 with other keys when you pressed them, there are generally limits on how many keys you can press at a time. Continually pressing a key seems like it could screw up input.

    All simpler solutions aside, an arduino pro mini could have monitored the POST and pressed F1 automatically just a single time, when needed and taken up just as little space.

  9. In addition to ideas by Kuy, I see two other simple solutions-
    1> OBDEV’s USB HID implementation to send F1 3-5 secs after start-up. So other OSes without key ignore have no problems.
    2> Since he’s buying a new heatsink… the cause of the problem…. buy one with feedback! 0$ hack

  10. Guys.. it clearly states that he couldn’t do it in his BIOS options.

    And it says that the OS ignores the stuck F1.

    This is a brilliant work around. It is definitely more simple than pretty much any other of the suggestions in the comments so far.

  11. Just did a little testing. Standard Intel cooler pulls the sense pin to ground at 60Hz @ 12V standard with a 50% duty cycle. My spare Zalman high performance cooler pulls the sense pin to ground at 100Hz @ 12V with a 50% duty cycle.

    So in short a 555 would do just fine.

  12. I think the reason he doesnt care that the key is held down, or mixed with other keys, is he is likely using a touch screen for input with a custom application that uses no keyboard input.

    This is a good hack. Which is what we were looking for when we came here.

  13. I can see a 30mm fan on ebay that includes speed sensor. It costs £1.99 and free postage. How small does it need to be???
    Other options would include just putting the “big” CPU fan somewhere else in the build and using the new fan on the CPU powered by a different supply.

    And for anyone saying “but the original design has a 4 wire fan” a little bit of reading should show you that you can ignore the 4th wire. It is a PWM signal from the m/b to the fan. Without it, the fan just runs at full speed.
    (He isn’t getting this signal being used with the current hack anyway)

  14. That said, I do like the idea of single button keyboards. Mainly to hand out to users, map the button to run a browser with google and mark the button “when wanting answers, press me”.
    Or mark the button “IT Support” and program it to a message popup : “Turn it off and on again” ;-)

  15. I found some 3 wire 25mm fans. They’re going to sound like an idling airliner, but they should be small enough.

    And to whoever was talking about F1 messing with concurrent keypresses: that’s only an issue if the key is on the same matrix.

  16. The most odd solution for the issue indeed.
    I’d also rig a pulse somehow, and preferably one that would actually fail if the fan failed.
    (My initial thought was 555 though like many others here)

  17. A great example of Wallpaper Syndrome.
    Don’t understand the underlyuing technology – so make something irrelevant to bury the problem for the next generation.
    If this was submitted as a key hack – great, but to take up the realestate and cost to do something badly is a poor reflection on hacking as a skill.
    No apologies for this one.

  18. Or he could pull the F1 key off the kiosk keyboard and wedge a piece of paper inside to hold it down.

    Personally, I file this under “kludge”, not “hack”.

  19. This person used the skills they had to work out a solution to a problem with what they had available to them at the time to keep the project moving, and have the final product perform as desired. While others would have done it differently doesn’t invalidate this solution. The only problem I would see is that it may created a fire hazard, but so would some of the alternates. Another comment applied a wall paper idiom. While that comment didn’t elaborate what it was that was being covered up I’d disagree, because it seems that the kiosk will work for the users as intended. Another called this kludge, fair enough, but I’d submit ALL hacks are kludges to some degree.

  20. I think the “hate” stems in part from the overly elaborate workaround that will inevitably produce a host of unintended effects down the line whenever somebody else tries to modify the system and gets completely unexpected results due to their completely understandable lack of expectation that such a work around would have been used.

    This hack may have fixed the problem at hand but it has the potential to introduce other unintended side effects, hence the kludgy moniker.

    As soon as one gets into the habit of implementing these “duct tape” solutions, projects go from well designed to a huge fucking mess (AHFM) rather quickly – and can at times spiral out of control so much as to necessitate scrapping of the entire project and starting over from scratch.

  21. 1) connect the RPM signal pin to ground.
    2) spend like 3 bucks on the right sized fan with a sensor plug
    3) hot glue a freaking opto sensor on the existing fan if all else fails and you really want to keep functionality in the extreme case that #1 and #2 can’t work for some reason.

    this solution is about #8300000012 on the list, if arranged in an order that makes sense.

    as for those saying to get a project published; we do create projects, they just wouldn’t publish them here. either they involve too much actual engineering, they don’t involve an arduino, or both. either will get a big fat story spike.

  22. Am I alone in thinking that this seems like an inelegant solution to a relatively simple issue ? (processor fan has no rpm feed).
    As Max points out, a compliant fan can be bought on ebay for $3 US.
    Analysing the root cause of the problem, one should conclude that the fan should be replaced or otherwise rendered compliant, thus eliminating the trip to the BIOS when booting up.
    Also, I have serious doubts that the shorted key will have no effect on any other keys that do need to be pressed and will cause no issues with the OS.
    I do admit, however, that the tiny circuit board with the one key on it looks pretty cool.

  23. Isn’t hacking to do something the best you can and to have the hack function the way you want it?

    If so, this guy is 2/2.

    I say well done and keep up the good work.

  24. Weigh up the time and effort put into this and offset against a few dollars to do the job properly and it becomes a pointless exercise.

    It’s been posted online, so I assume the guy’s computer literate. How hard would it have been to ask the question elsewhere or at least research a workable alternative?

    I can’t find one positive for this kludge other than a literal definition of ‘going around the sun to get to the moon’.

  25. But now he knows how keyboards work, he knows how to get the key he wants and he got it to work. Knowledge is much more valuable than time, plus he didnt have to spend a penny since he had the donor keyboard.

  26. So now when his replacement fan stops his pc overheats and dies? Great hack!

    Fans with rpm sensors are available at any size, it would have been a much better idea to just get the right sort of replacment.

  27. Don’t people bother to read the post (and the instructable in the link)? He said he had a tiny space to work with and didn’t have the skills to build an emulator for the fan signal. He did have the skill to reverse engineer the keyboard matrix. Add to that a $0 recycle solution.
    I say KUDOS for this one!

  28. Bravo on the fix but next time just go into BIOS and disable the “Halt on All Errors” option. There are even more sub-options available in most BIOSes. Fixed my problem on my P2 15 years ago lol.

  29. @blue carbuncle, ‘halt on all errors’ doesn’t cover fan alarms.

    Still, most BIOSes let you disable those as well, as TFA says his didn’t.

    Sometimes you build silly things to get around other silly things, make even sillier by having limited options & time.

  30. @ Tony I hear ya :) I had to build my own LPT dongle “key” for Cubase on that same p2 lol. Not knocking his build as I have used WOL to power up another computer that was having (in a nutshell) power button fail issues lol. This was in my younger, more industrious days before the wife and her stink eye about random wires running across the floor ;)
    Another option would have been an R/C tweak on the fan speed wire to mimic the tics of the fan and tricking it into thinking the fan was spinning but that would involve breaking out the soldering iron real quick. Thanks for the input :)

Leave a Reply to DrewCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.