[Solved] Equalizer for bluetooth headphones on Windows PC

First: Install Equalizer APO: https://sourceforge.net/projects/equalizerapo/

Restart, and install Peace Equalizer, a user interface for Equalizer APO https://sourceforge.net/projects/peace-equalizer-apo-extension/

This is supposed to be good from Windows Vista to 10, and it definitely worked on my 10 installation. YMMV.

$0 solution, nice!

[SOLVED!] How to Install Windows on Dell Optiplex 7040 (and other Skylake systems)

This should not be so hard. Dell did something with their USB hardware that is not built into USB installation media for Windows. I tried 7 and 10 installation media, USB and optical, with no joy. This literally took me two full man-days (on the clock, thanks) but I got it finally.

The NVME M2 hard drive is a separate ball of worms. Deal with those drivers and cloning disks and whatnot, if you want, after Windows is installed. The procedure described below required the use of a SATA hard drive I was glad to have sitting on the shelf. The new Windows installation may not have the networking drivers so you won’t be able to get online to download the rest of the things you need – get those drivers from Dell Support online, on another computer, and transfer them via USB after you get Windows up and running on your troublesome 7040.

The BIOS was set to UEFI, SATA to AHCI, boot to USB first.

You will need a separate, working computer with internet access. You will need a USB stick big enough, 8GB at least, 16 or 32 would be better. Use Rufus* to prepare your USB drive as an ISO with a GPT file system for UEFI boot. FAT32 is important, UEFI won’t boot from NTFS! Use your favorite Windows installation ISO to make your bootable drive. Boot from it in one of the USB2.0 ports on your 7040 and notice that it calls for drivers during the process of installing Windows – and it won’t find any. From any drive on any port. Suck.

You need to get the driver pack for the chipset from dell directly. In my case it took only this USB3 driver https://www.dell.com/support/home/Drivers/DriversDetails?driverId=CWGRX&fileId=3588430725&osCode=W764&productCode=optiplex-7040-desktop&languageCode=en&categoryId=CS found at this very simple 10-page explanation that has a wrong step and oh by the way I literally wasted an entire day trying to make it work even when i got all the steps right. Various failures including crashes. Very bad.
https://www.dell.com/support/kbdoc/en-us/000179740/how-to-install-windows-7-on-optiplex-7040-and-other-skylake-systems-using-mdt-2013-update-1

Anyway, insert the drivers into the boot.wim on your new USB installation media using DISM. The steps here are pretty clearly spelled out: https://www.msprofessionals.org/cloud/how-to-add-winpe-drivers-to-a-boot-wim-via-dism/

assuming you have installed the latest Windows Assessment and Deployment Kit (ADK)

Assuming a your windows installer file is located in windowsmedia\sources\ (i.e., if your installation files are on a drive called G, then G:\sources will have an install.wim inside; in this case the author used a directory of C:\WindowsMedia for their example location)

Assuming a test/working directory of \mount\boot (make a new directory e.g. C:\Mount\Boot to work in). I was on my last nerve and went ahead and worked with the boot.wim right on the installation disk and it worked.

The elevated command prompt commands you will use, copied here in case the msprofessionals web page disappears:

……

DISM /Mount-Image /ImageFile:”C:\WindowsMedia\sources\boot.wim” /index:1 /MountDir:”C:\Mount\Boot”

DISM /Image:C:\Mount\Boot /Add-Driver /Driver:C:\WindowsSources\10\1909\Drivers\winpe /recurse

N.B.: you may need to additionally use a /forceunsigned option in there, in case you get an error in the WinPE installation environment about unsigned drivers. Probably not. Hopefully not.

DISM /UnMount-Image /MountDir:”C:\Mount\Boot” /Commit

DISM /Mount-Image /ImageFile:”C:\WindowsMedia\sources\boot.wim” /index:2 /MountDir:”C:\Mount\Boot”

DISM /Image:C:\Mount\Boot /Add-Driver /Driver:C:\WindowsSources\10\1909\Drivers\winpe /recurse

DISM /UnMount-Image /MountDir:”C:\Mount\Boot” /Commit

Then you can go on and install windows as usual. If you don’t know how to do that, you are probably lost anyway after looking through the foregoing. Sorry.

Cautionary note: I tried to dism install all the drivers from the other two driver links on the dell explanation page and the windows installation errored out pretty hard. So maybe just brooming them all into the boot.wim was a bad idea.

*Rufus can be found here: http://rufus.akeo.ie/

Update: this has now come back and saved my bacon as I had to install Windows on a Dell 3620 tower.  The 10 installation media worked ok on this model, but the 7 installer couldn’t find drivers again. I wanted 7 on this box though, so I had to retrace my own steps.  The text has been updated a bit for clarity.

[SOLVED!] Make Firefox your default browser when Windows won’t let you do it, and it’s not even an option

I had a problem with Firefox and switched to Waterfox. All was well. Then a couple of years later, I wanted to switch back to Firefox because %reasons%. When FF started it asked if I wanted to set it as the default browser. Yes, thanks. Windows opened an applet to let me change the default browser and . . . Firefox was not on the list. I couldn’t select it as it was not there. Waterfox was masquerading as Firefox. This was the case everywhere in the system.

I right-click-> ‘open with’ changed the default program for .html documents, and that worked! But it only worked for that one filetype. There are also .htm, .xht and .xhtml to consider. This is not elegant and there must be an easier way.

Reinstalling wouldn’t help; this was a fresh installation of Firefox.

The Default Apps applet didn’t help, this wasn’t on the list of options.

Default Programs from the Classic Control Panel didn’t help. It was not on the list of options.

Bringing up the Set Defaults app (win+R -> ms-settings:defaultapps) didn’t work. I was able to change .htm but the other two didn’t have Firefox listed as options, I guess because they were listed as protocols instead of filetypes.

The ONLY thing that worked, and it only took a quick moment, was found at appuals.com where there is listed a simple shell command to execute. I didn’t even need an elevated (run as Administrator) command prompt! This was SUPER easy.

Type the following, press the following keys on your keyboard:

  • Press the Start button or your Windows key
  • cmd
  • Enter
  • “C:\Program Files\Mozilla Firefox\uninstall\helper.exe” /SetAsDefaultAppGlobal
  • Enter

Bam. Firefox is your default browser again. Thanks Jesus I finally found it, and thanks Keven Arrows for the writeup!

Wherein I explain how my life was slightly improved

This weekend I made good progress toward eliminating a first world problem that’s bothered me for ages. I have an old variable DC power supply rated for 0-40V 0-3A that’s good enough for most things I typically need a power supply for. It’s a old Lambda, near relative to those seen on the cover of this 1974 catalog:

It had a few niggling complaints. So:

The meters are like 2″ analog things and not ridiculously accurate. This weekend I did range-changes to a pair of nice Newport 4.5-digit digital panel meters. With these installed, I have 4 digit precision on current and voltage, and nice big bright LED displays to boot. The voltage was easy enough, just convert to the proper range and install a potentiometer/voltage divider to get me to 40.00V indications. Good deal. It’s off by a few millivolts at low voltage but that’s ok enough for me. The current meter was a problem. First I had to find a 0.1 ohms resistor with enough power capacity. Running the output from the power supply through this gives me a scaled 0.1V/A voltage output. The problem is that the meters I have are for 0-10V input. So I had to do some reverse-engineering and figure out a 19M ohms string of resistors to increase the sensitivity to 0-2V. This was more work than it sounds, and calibration gave me fits for quite a few hours. I now have a 0 to 3.000A indication.  It’s off by a few milliamps at high current, but that’s ok for me too.

These meters were not installed from the factory. There is not room inside the power supply for these, and if there were it would require cutting a bit of steel which I didn’t feel like doing, and then they would have still protruded. I could have run the wires out the side or through a ventilation hole (the case is 100% ventilated panels) but that would be inelegant. I could have run the wires from the front panel binding posts but that’s a horrible bodge (!) So I ran the wires to the screw terminal strip on the rear panel.

There is a strip of rear panel screw terminals for various connections including remote voltage sensing, which is where the voltage control section gets its reference. I moved the remote sense wires internally from the rear to the front panel where I take all my volts from anyway. So there were two unused terminals on the back, which I used as a proportional current monitoring output. Nice. At work, I have a digital panel meter for my main bench supply that just stays on, burning 3W of power whether I’m using the power supply or not. At home, I want it done better, so I did more reverse engineering and figured out where the internal power connections are to be found. I added a wire to a “spare” rear panel screw terminal so now there is a rear panel output with a switched mains supply from the power supply – connected after the power switch and fuse in the power supply! The neutral and ground for the meters both connect at the main inputs, and then my panel meters now run off a *switched* main supply. The turn on and off with the power supply they monitor. Very trick.

I had my choice of several meters. I tried and failed to figure out a range change on a 3.5 digit meter of a different model for the current readout but in the end I’m glad to have 4 digits and both meters are the same model so that’s also nice. These have screw terminals also so the mains connection is daisy-chained between the power supply and meters.

The power supply had a broken V- Out front panel binding post since forever, and at one point I bodged the V- on to the ground binding post, so the output was ground-referenced but at least usable. This weekend I employed a bandsaw (thanks JB!)  and hacksaw to do the fitting/bodging, and I now have a set of larger/easier to use front panel binding posts which are also separated again so the Vout is no longer permanently grounded. Nice.

The voltage wouldn’t reach all the way to 40. I tweaked that so now I can get just over 40V output. I tried to adjust the calibration of the voltage meter on the supply itself and fried a nice Bourns 10 turn pot in the process of failing.

The current limit adjustment on the power supply was flaky. Difficult to turn at best and it would sometimes cut out so I had to jiggle the handle (like an old toilet) to get the power supply to give voltage out. I replaced that bad stiff old 3/4 turn potentiometer with a 10-turn pot for current limiting. Nice.

The voltage had a coarse and fine coaxial pair of 3/4 turn knobs. The fine adjustment knob had a bent shaft and wasn’t great to operate. I pulled that out and installed a separate 3/4 turn fine voltage adjustment. This required drilling a fresh hole in the faceplate, but that was easy enough. I accidentally drilled a pilot hole in the wrong side of the faceplate but I ended up needing to relocate a cable clamp and this made a handy mounting hole, so no worries. I used the power supply a bit for calibrating the panel meters and didn’t like the ability to only adjust in 0.006v or so increments with the 3/4 turn potentiometer, so I installed a 10-turn fine voltage control pot instead. Very nice.

The final step was to install a mounting bracket for the new panel meters. This was fabricated from brace lifted from a vintage piece of test equipment from an old job that closed down around my ears and gave me a bunch of stuff as I was on my way out the door. That holds the top of the meters’ cases, near the front. The rear of the meters was spaced away from the power supply bottom panel with the use of the aforementioned fried potentiometer and a twin that was previously broken, safety-wired in position. The panel meters now are securely mounted under the power supply AND come alive only when the supply is switched on. Nice.

 

The bodge-grade mounting solution, seen from the side (hidden well under my bench):

All of this reads as much more simple than it was in person to do. Taking the supply down means crawling under the workbench and fighting the heavy thing off of 5 screws that hold it to the underside of my work bench. Then the cover had terrible little screws (which I replaced) and the faceplate also had horrible little screws (which I replaced also). Now the exterior hardware mostly matches. It is a hassle to get this faceplate off but I had to to it several times this weekend. I had the output/heatsink module out a couple of times. I had the cover off many times and the faceplate off many, many times. And then I installed it and . . . the voltage was backwards. My panel meter sensing wires were accidentally connected in reverse polarity and it gave negative voltage readings on the meter. In the end, I decided to not dismount everything once more and just crawled under the bench waist-deep with my arms poked out in front of me like I used to do, back when I was working on airplanes, to switch the wires ’round.

After a day-and-a-half of work my work area looks like a tornado hit, and the power supply has one extra knob and a fresh set of jacks on the front. It sports a pair of big beautiful panel meters and is back under the bench, a bodged-up-laboratory-grade instrument after all the upgrades!

and: the way this power supply is mounted, I had to figure out how to remove my soldering iron (which is also screwed to the bottom of the bench) and remove the iron, TWICE, during all this.  I had mounted it myself but over the last decade or so forgot how I did it.  I was impressed with my own handiwork, so that was neat. Having permanently-mounted stuff under the bench is sure convenient in use but for maintenance it kinda stinks!

If you scrolled all the way down, I congratulate you and present a reward: A shot of the bottom of my bench! You see here: a soldering iron, a power supply with new meters and an extra knob, and a multimeter measuring the output of the supply for comparison. All of this, thanks God, cost me $0 plus some time. 😀

DIY: Add a USB cable to Broadcom BCM92045NMD Bluetooth module

DIY: Add a USB cable to Broadcom BCM92045NMD Bluetooth module

This can be done to add bluetooth devices to a PC that doesn’t have bluetooth capability. For this adapter, I could only found a clear pinout in Chinese (I think), here: https://home.gamer.com.tw/creationDetail.php?sn=3443336 So here is an english version, in case anyone needs it.

The main picture you need, in case that site goes down:

I used 3 diodes (that I had previously measured at about 1/2V drop each) in series, to burn a volt and a half-ish, instead of using a proper voltage regulator. I only wired up the first four pins (8, 7, 6, and 5) instead of joining all the ground pins (3, 2, 1) as shown in the diagram. I used a pretty janky method of soldering too:

so do better if you can. I’m going to drown this in RTV silicone to keep the wires from touching, so it’s going to look even worse in a few hours(!). This prject would have been easier if I had the proper cable to connect the Bluetooth module to a laptop, but I didn’t. I gently broke off the top of the connector and tinned the pins right on the board. Soldering to those pins was *tricky* as they are tiny and very close to each other. After the all-important “nothin’ touchin’ nothin'” inspection, I plugged this mess into a handy open USB port on my PC and Windows automagically showed bluetooth capability. It connected to my BT device with zero difficulty.

N.B.: without the cable I had to make several tries at this. I destroyed 3 connectors (wasting three adapters) before figuring out how to chip off the plastic. Use a small awl or flat-head screwdriver and pry the top of the connector shell directly away from the PCB, between the pins:

Drop a comment if you got this to work for you!

My Ugly New Desktop Headphone Amplifier (Current Buffer)

This (debatably) monstrous-looking thing is now doing duty as my new desktop headphone amplifier at work. And by amplifier, I mean current buffer with slightly negative voltage gain. My computer’s baby little USB audio dongle didn’t have the guts to push serious bass to my headphones. On an oscilloscope, I was getting a booming 3+ volts output, until I put a 32 ohms load on the output. Then it collapses to a level in the millivolts that I didn’t measure because it was ridiculous how badly it collapsed. This is a simple current buffering stage, to provide a low-impedance output for my ‘phones and high impedance for my computer’s output.

The important part: How does it sound? Like nothing. With the volume turned all the way down, there is no hiss/hum/whine or any noise from my headphones. With the volume up, I hear my music. I’m not the kind of person who swears a mains power cable makes his equipment sound better, I just wanted some more power. This gives me that. It doesn’t sound horrible. This was built entirely with parts I had laying around, so I am into it for $0 plus a few hours of time.

How does it look? Here we find the ugly buffer in its native habitat:

I forget it’s even there.  I colored it black and it lives in the shadows between a black monitor, a black drawign tablet and a black monitor.  The plant is pothos, Devil’s Ivy.

The schematic:

The basic design is the output section from Elliott Sound Products’ P113 http://sound.whsites.net/project113.htm, modified to suit what I had on hand. The R5/R6 bias resistors were lowered to (If I recall correctly) about 4.9k ohms, to increase bias current to just over 2mA as Elliott advises.

My first choice of output devices was a set of SK1388A/SK1389A PNP/NPN complementary transistors I had matched, but I broke one of them (in half!) when disassembling the amplifier to fix a humming problem. I had the main board from an old receiver fitted with 7 channels of 2SD2390/2SB1560 complementary darlington pairs. http://www.semicon.sanken-ele.co.jp/sk_content/2sd2390_ds_en.pdf http://www.semicon.sanken-ele.co.jp/sk_content/2sb1560_ds_en.pdf so I matched a couple of the pairs and ran with them. I had to install an additional bias diode (again, matched, natch) but these are inexpensive (free, I have a roll of them). The choice of transistors is almost unimportant, as long as they can slew fast enough for audio. You could use almost anything. For this design you want about 350mA maximum current capacity, so a TO-92 chip is going to be too small, but otherwise you’re gonna be good with almost anything.

The bias diodes are 1N4003, nothing special. The capacitors across them are random electrolytics I had laying about. The input and output capacitors are also electrolytics I had laying about, with very-large values because I’m not worried about a specific low-end rolloff frequency, I just wanted to block DC.

Power supply: I wanted about +/-12VDC but I didn’t want something too complicated. I went with a 7812/7912 three-terminal regulator pair. The maximum expected current from this at full-tilt-boogie is <0.5A per channel, so a single set of 1A regulators should be fine for the two channels. There is a 1000uF/0.01uF pair of capacitors on the input and output of each regulator. The giant 6800uF capacitor on one side was installed to troubleshoot a whine, and left because it doesn’t hurt anything.  The power supply for the power supply is a pair of 16V laptop power adapters that I had laying around.  These hide under my desk.

The design part of this project was pretty straightforward. The hardest part was figuring how to mount it all. Dead-bug style worked. In the end, I got a funky whine noise when one particular wire was too close to another, so I zip-tied them both out of the way (on the giant capacitor because why not). The heatsinks are hot-glued to a piece of very-heavy card stock. Good enough for desktop use, but don’t knock it around too much. It turns out that the way these are glued in place, I am able to stand the whole thing up on one end.  I did that and colored black the bottom of the mounting plate and the sides of a couple of heatsinks.

This was going to be prettier when I started, honestly. Aesthetic inspiration was provided by this “Crystal” CMoy Free Form Headphone Amplifier by koogar on instructables.com: https://www.instructables.com/id/Crystal-cMoy-Free-Form-Headphone-Amplifier/ That one looks better than mine by a lot(!) but the use of bare wire as bus stock in addition to dead-bug style mounting of everything was the thing. This wire was the individual strands from a 6AWG power cable, stripped out and straightened.

I learned a lot when making this, and definitely had fun.

[SOLVED!] Hisense 70-pint Dehumidifier Won’t Stop Running when Full or when Bucket is Removed DH-70KP1SLE (easy fix)

Recently our Hisense DH-70 dehumidifier spilled water all over the kitchen floor.  It had run all night, become full, failed to switch itself off, and overflowed.  The temporary solution to this was to dump the bucket more often, but that is a hassle.  Fortunately the permanent fix is free and fairly simple.

There is a microswitch inside the dehumidifier.  It was stuck.  It just needed to be poked from the back side.  Remove the back cover (a few screws on the back, a couple of screws on the bottom sides corners, pivot the bottom open first, there are clips on top that will break if you just pull!)

Looking at the rear of the machine, on the right side, about where the top of the bucket goes, corresponding to the other side of the wall where the “full” float in the bucket lives, is this switch:

 

The little metal arm on ours was pushed in (slanted red line).  Just touching it with a fingertip was enough to reset the mechanism (straight line).

It looks like this inside, if you have the same problem:  A white cylinder poking out into the bucket area, with a black dot in the middle.

This black dot is a plunger, and you should see this when you do not have this problem any more:

The air filters on the side are nice, but they are hardly HEPA filters.  Since I pulled both the covers off my unit because nobody has previously posted a guide for this repair that I could find and I needed to see what was happening in there, I took the opportunity to remove the accumulated hair and miscellaneous filth that got past the air filters over the past couple of years:

I recommend you do the same, if you are a handy sort of person.  I followed that wiping with a gentle blowing-out using compressed air because some smutz was between the hot and cold coils as well.  Gross.

You will know your fix was successful because the bucket will trip its sensor like it used to do, if you did this right.  Good luck, and remember that the Jesus loves you

[SOLVED] DIY Proper Plumbing for TMC Micro-G Table Height Regulation Valves

This post is my notes to myself, because whenever I get an air table in with the valves plumbed wrong I have to figure it out each time. I decided to share with the world because this is a needless source of frustration…and so I could access this page from somewhere besides my normal workshop.

Symptom: Your air-isolated vibration reduction table has a section that will only inflate, won’t deflate, and the height can’t be adjusted

Cause: The Height Control Valve is installed incorrectly

These valves have one fitting that is supposed to be the air supply inlet, and three fittings for height-regulating air pressure outlets (or isolator pressure gauges, if they are installed).  I just had a Micro-g vibration isolation table  come through with the pressure inlet plumbed to the isolator piston instead of the air inlet.  As you will see, this was the cause of my frustration.  First, let’s get the terminology straight:

Without the lever arm or table blocking your view, they look like this:

The insides of these are pretty straight-forward. They are a machined brass block with a valve to open or close the air supply to the isolator pistons.  With the top off, you can see the plumbing:

The air supply is fed to the inlet of the valve, then the outlet of the valve (the hole in the center of the part) feeds a cavity with holes drilled, which connect to threaded fittings to be plumbed into isolators.  The stem poking up out of the middle is the valve actuator.  Press down on that, and the air (or nitrogen) pressure from the supply fitting is released to the (holes for the) isolator pistons.  Most tables will have 3 “master” isolators and there will usually be at least one “slave” isolator that amounts to one corner of the table not having an adjustment valve. Three zones of control.  Slave isolators are plumbed to one of the three outlets of the valve, so:

It is critical to note that there is ONLY one air supply port on these valves.  It is marked with an arrow pointing away from it.   For whatever reason, someone decided to install this pressure port pointed to an isolator on my table.  That is wrong.

The top of the valve has a big rubber disc inside,. which has a brass part in the middle. The central brass part of the rubber disc bears has a hole in it.  The brass part is what pushes directly on the valve actuator.  The top “half” of the valve is the large (nameless in the first diagram) section with knurling. This holds the disc inside, and the Knurled Nut is the mounting hardware that holds the valve in place.  The brass spacer floats loose in a hole in the top of the regulator and sits on top of the brass central part of the rubber disc.  Hopefully your regulators are not too old and the discs are not too hard, so you don’t have to open them up for service.  These should basically never have to be opened in normal service.  If you do open a valve, make sure it gets reassembled with the disc in there or it will not work at all.  Check out the Lever Arm:

There are bumps on the end.  These push up to the Pivot Bracket.  When the Table Top is too low, the Lever Arm will be pressed down, and the Lever will pivot down.  The Arm Screw will then push on the Spacer. The Spacer pushes down on the diaphragm inside the valve. The diaphragm pushes down on the valve stem, opening the valve. Air will flow until the table rises enough to release pressure from the valve, and then the table will be at whatever height was set by the Isolator Height Adjust screw.  If the table is too high, the pressure on the Lever Arm Screw is reduced, and the air pressure in the isolators will flow through a the hole in the brass part of the rubber disc inside the valve, up and out around the Brass Spacer.  Air pressure is released until the table falls enough to press on the Spacer, cutting off the air supply.

This sounds maybe a little complicated but it works great, with an error band of about 0.050″ . . . the table height is controlled to a set level automatically.  To adjust the table height, adjust the Isolator Height Adjust screw.

IF you followed all that, you will perhaps already know that it has to be plumbed correctly.  If your air pressure supply is to one of the isolator piston outlets, when pressure is applied the valve will bleed pressure out the hole in the top (leaking by the Brass Spacer) as well as out the inlet of the valve.  This means your isolator piston will always be pressurized to the same level as your air supply, and always sit at maximum height with no adjustment.  Then it’s just an air spring, not an automatically-regulated adjustable height vibration isolator. I guess this is also an article to inform you how to convert your adjustable-height table into an air spring, but that would be silly for most cases.

A couple more pictures because i took them:

When the system is set up properly, the Arm is about horizontal, held in place and held at the proper angle by the Horizontal Arm Screw.  Basically no air should be leaking out at this point.  If the isolator lifts in this condition, your valve may have an old (hard) rubber disk inside.  A temporary fix *might* be to unscrew the larger knurled section from the bottom of the valve body juuuust a little bit.  This will mean a constant slow air leak, but it can be the difference between a table working and not working. It is also kinda fiddly to adjust, so make small adjustments, and be sure to wait a minute or two to allow the air to stop flowing between adjustments.

The slightest downward pressure on the end of the Horizontal Lever arm should cause the associated Isolator to immediately start filling with air and it should lift in a few seconds if there is no table holding it down.

It’s Official:

I now officially have an old house.  I went up to check and see if there were a dead animal on the chimney because there’s an odor by the fireplace, and I saw a handful of shingles were blown off the roof.  So now that I’ve patched my roof with some new, almost-matching-color shingles, my house is officially old.  It’s not as old as I am, but hey we’re not talking about me.

P.S. it would have been good to know in advance that I should wear gloves carrying the old shingle to BigBoxStore to compare to the new shingles…turns out, fiberglass-reinforced shingles leave glass fibers in your skin just like fiberglass attic insulation.  Oh well.

Solved: Photoshop Image Disappears After Crop!

This has plagued me for ages and I FINALLY figured out why it happens.  I have not seen this explained anywhere online.  It has affected me since CS2, and I’m using CS5 now.  Other versions are probably also affected.

You may have already found that you can fix this problem by pressing the button to Clear the Crop tool preferences.  But it doesn’t always stay fixed.  Somehow it keeps putting a 1 in one of the Crop Tool dimension preferences.  You go to make your crop and. . . the image is gone, reduced to 1 invisible pixel onscreen.

WHY!??!!?  Adobe why u do dis?

You’re doing it to yourself.  I just got a new keyboard and it has an enter key where I sometimes hit it by accident.  Not a Return key like you normally have over the Shift key.  An ENTER key, like you find on the tenkey area on your keyboard.  These are not the same.  Striking the Enter key puts a zero in the Crop Tool preferences, which is an invalid entry.  It doesn’t do whatever you were wanting to do when you hit Enter by accident.  The usual action to take when Photoshop messes up somehow is to hit Escape to make it exit whatever it was doing.  Hitting escape after putting a zero in the crop tool dimensions tells photoshop “whatever dude, just figure out what size I wanted to crop my image”.

Hitting escape changes the zero to the next-valid number: 1

Then you hit your image with a crop, and Photoshop faithfully crops to one pixel, just like you told it to do.  Instead of a ragequit, hit Clear again, and try to avoid striking the Enter key, or any keystroke combination that adds up to Enter on your keyboard.