Archive for September, 2008

Fixing Dell Precision T3400 USB not working

This is an update to a previous rant about the mysterious Windows XP “Dee-Dunk” error (and the novel concept of presenting an “error message” when an error condition exists), possibly in conjunction with broken or intermittent USB functionality. This post is mainly for Googlers – my friends are more than welcome to skip it.

I haz solved the mystery! It turns out that some Dell Precision T3400 machines (my work machine was one of them) ship with buggy/broken BIOSes and/or chipset support. Anyway, to fix:

Worm your way onto Dell’s support site for updates, enter your model number; download and run the following three patches:

  • BIOS Update (T3400A08.EXE, or whatever is newest)
  • Chipset Software update (R174616.exe)
  • Desktop System Software update (R160758.exe)

The above are intentionally not linked; the filenames and/or URLS may shift around as newer versions of this crap come out. Also, exact support packages may be different for other Dell products exhibiting the same malfunctions.

Symptoms include:

  • USB devices do not work, or only work intermittently (every Nth reboot); behavior may change slightly by enabling/disabling different combinations of USB ports in the BIOS (or this may be a placebo effect on my part, who knows)
  • Dreaded “Dee-Dunk” noise shortly after Windows desktop appears
  • USB devices such as keyboards, mouse, etc. work for a while, then mysteriously stop working until machine is rebooted
  • “USB Device Not Recognized”…
  • “There was a problem installing this hardware: <blah> The device cannot start. (Code 10)”
  • After installing a certain USB driver, machine crashes/hangs with a black screen for several minutes before the Windows desktop appears (may depend whether the corresponding device is plugged in)
  • Machine hangs when trying to install USB device driver
  • Software hangs trying to scan the bus or access a USB device

Fun with High Voltage & Plasma

The other night I picked back up playing with insulated gas discharge tubes (IGDT), better known as plasma globes. The basic idea is to pump a sealed chamber filled with a noble gas (or air, in a pinch) down to low pressure (1s to 10s of Torr), and apply electricity at high voltage (a few kV) and frequency (a few kHz) to ionize the gas. Depending on the gas(es), pressure, voltage, and frequency, the results should range from a diffuse eerie glow to a bunch of lightning-like plasma streamers dancing around inside the chamber. The most well-known example are the Eye of the Storm novelty globes and their knockoffs.


[Photo Album]

Here are some pictures from tonight’s initial playing, using a scavenged fridge compressor as a vacuum pump and a cleaned-out glass pasta sauce jar as the globe. The effect inside the jar was generally unimpressive over a wide range of pressures, but the effect on the clear PVC tubing and the white plastic hose barb I used to attach it was certainly interesting! The hose barb connector glowed brightly and the plastic tubing lit up like a flexible neon sign, with a glow that crawled through the hose several feet toward the compressor as the pressure dropped. Nice poor-man’s neon effect, but I suspect air will outgas and/or leak through the walls of the PVC tubing rapidly (days?), ruining the vacuum and the effect. This calls for further study :-)

I didn’t play too much with additives except to revisit the combination of plasma globe and discrete mini Neon lamps. This looks much cooler with the neon lamps actually inside the evacuated chamber with the glowing plasma (and finally with a decent camera!). Everything so far has used plain old air.

Fridge Compressor as Vacuum Pump

The short story is yes, you can use the compressor from a refrigerator or dehumidifier as a quick & dirty vacuum pump (or light duty air compressor), provided the refrigerant has all been vented/leaked before you get to it (unless you have facilities to safely capture and recycle the refrigerant, which few do). The design of these things seems pretty universal, as well as ingenious: the “in” tube leads to a piston, which is driven by a big electric motor in the center of the compressor via a crankshaft. The output of this valved piston vents directly to the inside of the case, which is sealed and in facted welded shut, with the “out” tube being the only escape. The bottom 1/4 inch or so of this mechanism is submerged in a pool of light oil, which is sucked up by a cone on the bottom of the crankshaft mechanism, sucked through the shaft and flung out the top and against the outer walls of the compressor by centri[whatsit] force – providing simultaneous lubrication and transfer of heat from the pump mechanism to the outside case, which acts as a heatsink. This page has a very cool teardown of one of these compressors, complete with videos of the oil-slinging mechanism in operation.

As a side effect to this design, small amounts of oil are sometimes ejected from the outlet along with the air, necessitating some kind of primitive oil recovery/trap mechanism. For mine I attached a small length of vinyl tubing to the outlet, made a sort of drip loop in it, and attached the other end to a piece of plastic pipet taped vertically to the side of the compressor. The width of the pipet prevents oil from being blown out all the way to the top, while the drip loop in the tubing (intentionally seeded with a couple drops of oil) provides a simple but highly effective visual flowmeter, good for indicating the end of effective pumping (or a leaky system). A loosely fitting cap taped over the pipet helps reject dust.

It’s probably a good idea to eyedropper out occasional oil from this catcher and feed it back into the inlet to keep the piston lubed up. (I had to drain all the oil out of mine to transport it, then refilled it with an equal volume of some SAE 30 motor oil I had on hand. No ill effects thus far, but I’m pretty sure the original oil was a lot lighter.)

But how good is it? I have no actual meter that will deal in these pressures, so it’s hard to say. On this pump a jar of water would–just barely–start to boil at room temperature. According to this calculator, that approximates to roughly 20 Torr (.026 atmospheres). Not bad for free!

Possible sealing approach (haven’t gotten around to trying it yet)

Professional globes are all-glass affairs of a complex shape, with the glass fill tube(s) heated and melted shut while under vacuum to seal the globe. This is not really an option for hobbyists, since it must be connected to a live vacuum during sealing and a typical “globe” has a nonglass base (plastic or Plexiglas) where an equally nonglass fill tube emerges, since glassmelting is not compatible with the typical vinyl tubing connecting it to the live vacuum system in the process. Some just leave a small length of tubing and a closed valve permanently affixed. But good valves aren’t cheap, and cheap valves aren’t good. The approach I’d like to try is to epoxy a hose barb into the base with a very thin piece of hollow metal tubing (needle) epoxied inside of it, making the tube the only gas path into or out of the globe. This is connected via a short piece of vinyl tubing to one of two matching hose barbs on a small lidded jar (e.g. baby food – something with a “magic button” style rubberized lid), such that the needle snakes through the center of the tubing and just reaches the bottom of the jar. A small discardable “bucket” (e.g. soda cap) of 5-minute epoxy would be mixed up and placed inside the jar, the lid screwed on, and the needle sunk into the epoxy. The jar, and thus globe, are then evacuated via the 2nd barb in the babyfood jar lid. When the pump is switched off, the normal small leakage (maybe introduced via valve, if the pump setup is just that good) will allow the vacuum to relax slightly, forcing liquid epoxy up the metal needle, where it is allowed to cure and permanently seal the globe. The excess epoxy-filled metal needle and hose barb can then be cut off. Extending this setup to multiple flush/fill hoses on the globe would be easy enough, other than trying to hand-align these multiple needles at once.

Railway Supply Institute expo 2008, Chicago

I was there to demo my self-powered wireless brake health monitoring system at the FRA’s Advanced Concept Train booth. Despite the final assembly of this and the other 29 units occurring only a couple days before (and passing through the TSA’s loving hands), everything went perfectly! (Murrphy’s Law might have a surprise or two for me on back-order.)

The train show wasn’t all that exciting to me (not a train nut), but the food was good, and I got to visit the fam back home for a bit. :-)

[Pictures from the trip]

Worst User Agreement, Evar

And the winner goes to… The Terms & Conditions for use of the Hampton Inn’s complimentary WiFi. Weighing in at 47.4KBytes* and a whopping 90 screens (scrunching it all into a tiny browser text box did not help in this regard), this is quite possibly the longest, and most unilaterally evil, user agreement I have ever read.

(I would start here with a list of definitions of usage information (‘hereinafter … referred to collectively as the “Information”‘) gathered by the service, but man is it lengthy. Basically, your IP, lists of websites visited, transactions and purchases on 3rd-party websites, you name it.)


You agree that HHC shall own all Information.

By using the Service, you voluntarily, expressly and knowingly acknowledge and agree with all of the foregoing and further agree to each and all of the following: (I) such Information belongs to HHC and is not personal or private proprietary information; (ii) such Information, wherever collected, may be processed, used, reproduced, modified, adapted, translated, used to create derivative works, shared, published and distributed by HHC in its sole and absolute discretion in any media and manner irrevocably in perpetuity in any location throughout the universe without royalty or payment of any kind, without, however, any obligation by HHC to do so

I’m guessing the main “[iI]nformation” they’re interested in is clickstream data, but the definition of this [iI]nformation includes any piece of data transmitted through or “relating to” or “describing” the service (even prior to being presented with this contract), presumably including this blog post. (*Starts lawsuit clock*) So you might not want to use this service to email your just-finished Great American Novel manuscript to your publisher. Also, this is the first legal agreement I’ve ever seen explicitly covering the entire Universe.

Also, when you submit information (including the Information) to us in your use of the Service, you thereby (i) represent and warrant that such information is complete, truthful, and accurate, that you own all rights in such information, that the information, if applicable, is entirely your own original, unpublished work, is not based in whole or in part upon any pre-existing work or work of any other person,

Again, ass-uming they’re mostly after clickstream data, this makes it a legally-actionable offense to surf in such a way as to provide non-unique clickstream data, i.e. surfing the same sites you surfed yesterday. And apparently, you are forbidden from transmitting already-public data through the WiFi connection (even if you own it…err, would have owned it until the moment you sent a copy through Hampton Inn’s WiFi connection)…maybe they are fishing your packets for saleable manuscripts, leakable memos and not-yet-submitted patents after all.

Because we are not involved in the actual transaction between buyers and suppliers, if applicable, in the event that you have a dispute with one or more users, you also on behalf of yourself, your predecessors, if applicable, and each of their present and former officers, employees, directors, shareholders, parents, subsidiaries, alter egos, affiliates, partners, agents, attorneys, accountants, heirs, executors, administrators, conservators, successors and assigns, as applicable, hereby fully and forever releases and discharges the Indemnified Parties, from any and all claims, demands, liens, actions, agreements, suits, causes of action, obligations, controversies, debts, costs, attorneys’ fees, expenses, damages, judgments, orders and liabilities of whatever kind or nature in law, equity or otherwise, whether now known or suspected which have existed or may have existed, or which do exist or which hereafter can, shall or may exist, based on any facts, events or omissions occurring from any time on or prior to the execution of this Agreement which arise out of, concern, pertain or relate in any way to this Agreement or the Service.

Synonymania! Oh yeah, that is ONE SENTENCE.


Notwithstanding such provisions, this release shall constitute a full release in accordance with its terms. You knowingly and voluntarily waive the provisions of Section 1542, as well as any other statute, law or rule of similar effect. In connection with such waiver and relinquishment, You acknowledges that you are aware that you may hereafter discover claims presently unknown or unsuspected, or facts in addition to or different from those which you now know or believe to be true, with respect to the matters released herein. Nevertheless, it is your intention, through this Agreement, and with the advice of counsel, fully and finally settle and release all such matters, and all claims relative thereto, which do now exist, may exist, or have existed between and among the parties hereto, including the Indemnified Parties. You hereby acknowledge that you have been advised by your legal counsel, understand and acknowledge the significance and consequence of this release and of this specific waiver of Section 1542 and other such laws.1

Hereby, the party of the first part registers a parse error on Line 1. The remainder of this section has you agree to an end-run around a California law protecting you from getting screwed over by an omission from the contract or other omitted facts which, if known, would have materially affected your decision to enter the contract.

If there is any place that runs a “Worst User Agreements” contest, I saved a copy…

* This is about 15% of Pride and Prejudice by weight, according to Project Gutenberg, and >100% as dull, according to the party of the first part myself.

Beer! (pt. 2)

So, a week-and-change ago Kr* and I picked up some basic homebrewing stuff and started a batch of English brown ale. Since this is our first ever beermaking attempt, we purchased a ready-made ingredient kit with all the stuff pre-selected and measured into labeled baggies, idiot-proofing the process as much as possible. This Sunday we cracked the fermenter open and bottled the (almost) finished product. It has to sit in the bottles a few more weeks to carbonate and condition, and then we can drink it! Naturally, we documented the entire process ;-)

[Beermaking photo album with descriptions]

Clear your calendars for about a month from now; our yield was about 45 bottles and we’re going to need help consuming it…

Notes: There was a bit of a scare when we added the yeast, sealed up the fermenter and watched as nothing happened for a good few days. We thought we royally screwed something up. While I was down there checking on it at about the 3rd day, I noticed a faint beery smell on one side of the bucket. When I ran a wet finger around the airlock seal (it easily passed visual inspection) to check for bubbles/leaks, this completed the seal and the airlock suddenly started bubbling furiously (“furiously” being one big bubble every 2-3 seconds). Everything was fine, we just couldn’t see it.

Another bit of weirdness is that we got a very low initial specific gravity reading. This is an important measurement to determine when fermentation has stopped and how much alcohol is in your brew. According to the kit we used, the starting gravity should have been within the range 1.040 ~ 1.048; our initial reading was a lowly 1.034. Final gravity was measured at 1.012, the top end of the recipe’s specified range. If taken as accurate, this would mean our beer has 2.9 ~ 3.1% alcohol, which is far lower than expected (according to the recipe it should be 4.0 ~ 5.0% ABV). It’s likely that the initial measurement is way off due to not stirring up the mixture after adding cold water to the hot, slightly viscous wort before the measurement, so the top layer we measured may have been uncharacteristically watery. (This internets sez: In a malt extract beer when less than 5 gallons is boiled , the problem usually stems from not adequately mixing the top-up cold water with the wort. Typical results will be very low (or very high) hydrometer readings. Cold water and hot wort are a little like oil and water, and must be vigorously mixed for at least a minute to blend the hot sugars into the cold water.) We’d heard somewhere that agitation/aeration = bad, so we held off any mixing until it was absolutely necessary – a slow gentle stir when adding the yeast, which was after the IG measurement.

Daily Windows Rant

Error messages, people. Error messages. When an “error” occurs, it should be accompanied by an “error message”, which informs the user a) that an error did occur; b) what that error was. It does not even necessarily have to be understandable to mere mortals (although this would be really nice), because understanding it is the job of your IT Guy and/or someone before you who got that error, posted it on a help forum somewhere and got an answer. Thus, mere mortals will Google the error message, and if results == 0, post it to a help forum somewhere.

Now, a “Dee-Dunk” error (available only at your local PC speakers, assuming you have any and they are turned on at the moment, and the volume is turned up, and the error being reported isn’t a soundcard error*) is really hard to Google. Besides that, consider the conversation between the user and the IT guy:

IT Guy: What was the error message?
User: Well, it was kind of like um… a low rumbling, kind of like somebody dragging a department-store mannequin across a warehouse floor strewn with marbles, followed by an orchestra hit.
IT Guy: Was it a high orchestra hit or a low orchestra hit?**
User: Umm…

So for anyone who is dying to know: Under Windows XP, a “doodoodoo” error*** (sounds like the first half of a doo-dink notification repeated three times really fast) when attaching a hardware device means that the device is successfully identified, but its drivers are kinda-sorta-semi-quasi-blacklisted because somebody at one time clicked “STOP Installation” at one of those “This driver has not undergone Windows Logo Extortion Certification and will probably do really terrible things [Continue anyway] [STOP Installation]” screens. From that point forward, the user will never again be prompted to install the driver or change his mind, regardless of how many times the device is subsequently unplugged and plugged back in. To fix: Find the brokenly-installed device in Device Manager, dig down to driver details and ‘Reinstall Driver’; this will allow you to manually force a driver despite any previous accidental blacklistings.

*As with many work PCs, we did not bother hunting down a set of speakers to attach to, for example, our EE lab workstation. This is not unreasonable considering that it is a workstation, not a watch-youtube-station.

**The next version of Windows will communicate with the user entirely by winks, nudges and significant glances. (IT guy: “Are you sure it wasn’t a drum solo? ‘Cuz a drum solo error is really bad.”)

*** or doo-doo-doo or DoDoDo or doodoodoot or boobooboop, or however you would enter it in Google if you thought that might actually work

And these points of data make a beautiful line…

(and we’re out of beta, we’re releasing on time… Err… deliverable code freeze will happen monday morning, or wednesday afternoon (due date), or before 50% of the devices are sealed up for delivery with the code already on them, whichever comes before the last bug is found. [Especially if the bugs are discovered in hardware, third-party hardware or attached wetware.]) As of tonight, all outstanding issues that I know of have been resolved and the hardware is performing beautifully… now we just have to build 30 more of them :-p

So, guess who has been and will continue to be semi-insanely busy for the next couple weeks or so?

My schedule for the forseeable future (i.e. as far as I’ve been forced to p-l-a-n):

Monday: Meatz, 7:30pm @ Midwest Grill, for mah birfday.

Tue-Fri.: Playing Metroid Set up a cot in the lab(?), get deliverable shizzle together, start(!) coding the (sender,receiver) sides of a completely secondary gadget our TPOC (not an embedded engineer) added to a very short contract extension at the very end, because “it’s the exact same thing, just operating 1,000x faster, right?” :-p Officially due Wed. as well, but that’s not going to happen, so I’m not going to spend the next two days sweating about it. (The actual delivery date is still up in the air, since we AFAIK haven’t been provided one, nor a destination address. Wed. is just the contract end date, i.e. last day we can book hours to it vs. stuffing engineering hours under “office supplies” or some such nonsense.)

Friday night ~ Wed. the 24th: Demoing my sssexy, self-powering gadget at the RSI conference in Chicago (train stuff, not excessive 2- or 1-handed typing injuries*) (environmental energy harvesting, not over-unity quantum-foam perpetual motion BS :-))

Wed ~ ???: Catching up; putting out whatever fires were started in my absence.

Real entries to come soon(ish)!

Deep Session Control – proposed browser feature to increase privacy

As you probably know, a Web cookie is a small bit of information (typically a server-generated ID number) a Web site can store on your computer to read back on any subsequent visits, even years later. Currently, the major browsers support making all cookies “session-only” (even if the site sends them with an expiration date 200 years into the future), where a session is defined as the time from when you open your first browser window to when you close the last one (i.e. terminate the browser completely). In my book, this is the best thing to happen to browser privacy settings in years. With this setting, when you close the browser at the end of the day, all the tracking cookies used by marketing sites, etc., go away. Every logon is a fresh start.

Google Chrome and IE add a tab-grouping feature, in which the browser maintains awareness of the path you took to get to a particular page (shown in a tab) – if you click a link from one page to another and open it into a new tab, the tabs are grouped next to each other. If you created a new tab from scratch for some unrelated surfing, it’s not grouped with any existing tabs. This makes sense.

It also begs a logical extension. If the browser can now differentiate between related and unrelated “threads” of surfing, it could also allow enhanced privacy by preventing sites from sharing information between threads. (By “thread”, I mean an uninterrupted stream of link clicks in a single browser window/tab or its parent tabs.) Typing a new URL into the address bar, being diverted to a different site via non-click means (e.g. Javascript tricks), or closing the window/tab, ends the current thread and begins a fresh new thread. In this proposed feature, ending a thread destroys any information (cookies, etc.) it contains, at least from the Web site’s point of view. (This is the exact opposite of Chrome’s current “incognito mode” behavior, which prevents history and other data from being saved on your machine, but doesn’t do anything to limit 3rd-party sites from cross-service and cross-domain sharing.)

Currently, any Web site can store and retrieve any cookie data (as long as it originated from its own domain), at any time. A common scenario: The first thing you do in the morning is open a browser and log into your GMail account. Throughout the day, you’re performing various unrelated Google searches, all in different windows/tabs. You could have even read 1 email and then closed the mail window/tab early in the day. All of your search history is now permanently tied to you via your GMail account (if you have a login for GMail or other Google services, have a look at http://www.google.com/history/?hl=en). Persistent user data is tied to the browser as a whole, not the browser window. In other words, the page loaded in window #2 can see what you’re doing in window #1, so long as the domain-access rules are met. Remember, any *.example.com page/site/service can retrieve data (e.g. a uniquely identifying cookie) set by any other *.example.com page/site/service – and if it can tie any one of these bits to a more stable form of identification (in this example, your email login), all of it now can be tied there. It’s entirely possible that you don’t want all these unrelated bits of information collected permanently, in a trivially subpoena-able form, securely notarized (via your login/password and most likely SSL) as uniquely and provably your own. Anymore, many sites absolutely require cookies to function, so blocking them outright is not a solution.

2nd example: You’re reading an article on some medical site about some arbitrarily embarrassing personal malady. The site has ads, which are embedded into the page from a large 3rd-party ad conglomerate (say “evilclick.net”). You close this window and go about your daily surfing. Three hours later, you’re showing a cluster of co-workers something you found on Spamazon.com and still all the ads being served up are for embarrassing personal cremes and lotions. Spamazon.com, like 90% of web sites, uses evilclick.net as its ad provider. Since the ads themselves all come from the same place (regardless of all the different sites they actually appear on), evilclick.net has permissions to read/write cookies and track the user’s movement across all these sites. The proposed approach would help curtail such cross-site sharing.

This concept, although not foolproof, would provide enhanced privacy and deniability for Web usage data. A service would then be limited to trying to correlate data to a user’s IP address, which is harder to hide, but also is much less reliable at identifying a specific user. Currently, via proxy servers and proxy-based anonymizers (such as Tor) a user’s IP could change on every request, and thousands of users could share the same IP (e.g. through an ISP’s caching proxy, or any NAT such as a home wireless router, etc.). A service could at best “guess” an x% probability that various requests might come from the same user, but could not verify it.

NorrisolideFacts.com

Ok, so apparently this is pants-pissingly funny to chemists* :-)

NORRISOLIDE FACTS

Norrisolide does not dissolve in water. It pounds the water into a pulp and bathes in where its blood would be if water had blood.

Norrisolide does not get metabolized. It gets even.

Norrisolide consists of x carbon, x hydrogen, x oxygen and 300 fists. The fists cannot be represented in ChemDraw and thus are typically omitted from depictions of the molecule.

Mike Tyson eats Wheaties for breakfast, and swallows because he needs the energy. Norrisolide chews up Golgi bodies for breakfast and spits them out, just because it can.

A sea slug has no eyes, no bones, no limbs, no claws, no teeth and cannot move fast enough to escape predators. But nobody messes with the sea slug, because everyone knows Norrisolide’s got its back.

Norrisolide destroyed the periodic table, because it only recognizes the element of surprise.

If you have $5, and Norrisolide has $5, Norrisolide has $10.

Norrisolide is not the solute, it is the solution.

Air is terrified of Norrisolide and leaves the scene. The Rotovap is just for show.

Movie theaters now serve popcorn in small, medium, large and Norrisolide.

Norrisolide’s components do not have isomers. They have a left-fisted version and a right-fisted version.

Norrisolide is so awesome, only one person in the world has synthesized it in less than 16[?] steps. [insert resume here]

* This is the chemical my gf is synthesizing for her PhD thesis; in the wild it comes from sea slugs. I suggested norrisolidefacts.com viral-chemist-meme as a job-hunting scheme (1. Get shit linked to your resume posted someplace geeky and popular (Slashdot/Digg/etc. or equivalent) 2. ??? 3. Profit! Hey, worked for me ;-)

Comcastic!

So, Friday morning I’m doing some prep for our Cape Cod camping trip online, and I notice a Comcast truck parked in front of the neighbor’s house, and the Comcast guy putting a ladder up against the telephone pole. I go to take a leak, and when I get back, the truck is gone, and hmm, the Intarweb (and TV, for that matter) don’t work no more. This kind of screws my plans for researching stuff to do and directions, but I have to leave in an hour and do so. My housemate comes back later that day and discovers the same thing, and spends 45 min. on the phone with Comcast convincing them that the problem is not that our “modem needs to be reset”, and that they actually need to send a guy out to fix something. Monday, we wait around the house for the cable guy, who must come inside to look at the snow on the TV and the blinking “Connect” light on the modem to decide that there is indeed something wrong with the cable, and climb up the telephone pole to check it out. He comes back 30 seconds later.

“Should be good now.” – Cable guy
“Great. What was it?” – me
“Discon Error.” – cable guy

So… they went out to disconnect some neighbor’s cable Friday, and pulled the wrong one. Given a workorder of “Pull wire #3″… “hey, this says pull #3, but I think I’ll pull #6 instead.” Apparently, this is a common enough occurrence that they have an abbreviation for it…

I’m going to helpfully prorate my bill and payment to reflect the 4-day service interruption, and see what they have to say about it. (Come on, FIOS…)

Beer!

I’m contemplating picking up some homebrewing equipment this week. Anyone else interested in making (+ drinking) some homebrew beer?