Posts Tagged ‘capacitors’

Fixing an Acer AL2216W LCD Monitor (Delta DAC-19M010 power supply, bad caps)

There are several dozen of this model of monitor at my work since last year or so; the other day I found one on top of the dead electronics plunder pile recycling bin, looking brand new. Googling the model # and terms such as “problems” or “repair” or “won’t turn on” revealed pages of discussion on the badcaps.net forums: it seems this model of monitor is yet another victim of the bad capacitor plague that somehow continues to sweep the electronics world. Upon opening the monitor, this suspicion was confirmed by several visibly bulging capacitors in the low-voltage section of the power supply.

Probable Symptoms:

  • Monitor won’t turn on, no apparent power, black screen
  • Blinking power LED
  • Turns on but shuts itself off without warning*

Note: This power supply board (or very similar model) appears to be used in a variety of monitors from different manufacturers. Depending on which one you have, your symptoms may differ to what I have observed on the AL2216W. In particular, the monitor may simply not turn on (too-low logic voltage or software-controlled shutdown), may blink its power LED to indicate a fault, or may turn on for a few seconds and switch off again. In my case, the monitor showed absolutely no external signs of life (power LED dark and no response to the power switch), but a very brief flash of the backlight could be seen just as the unit was unplugged, confirming it did indeed have power but “chose” not to switch on (likely as a safety feature).

Obligatory Butt Covering Warnings

This is a wall-powered electronic gadget. Opening it and poking around inside carries a small, but non-zero, risk of electric shock even when unplugged. (There is a 100K bleeder resistor across the mains filter cap, but this could fail.) For your safety, wait at least one full minute after unplug to go near the supply board, and use a screwdriver with an insulated handle to short across the leads of the filter cap to be sure it is discharged. If you see a fat spark and blinding flash of light, the safety bleeder resistor has probably failed, and you might want to reconsider poking around in here.

(Opening it and poking around inside while it’s plugged in carries a guarantee of electric shock, just FYI.)

Disassembly

This is fairly straightforward. Pop off the plastic cover hiding the screws that attach the base. Unscrew them and any other visible screws, then carefully pry at the seam where the two halves of the monitor “shell” come together. Once inside, more screws. Note that to get the final metal shields off, the backlight connectors and the ribbon cable to the button panel must be disconnected, then the scew-in posts for the video connectors and two screws concealed in the mains cord socket must be removed.

What’s inside?

Surprisingly little, it turns out. There is one large power supply board (made by Delta Electronics, Inc.) and a much smaller display controller board (marked A220Z1-Z01-H-S6) with only two highly-integrated Realtek ICs and some discrete components. My educated guess is that the controller boards are very unlikely to fail, so start by looking at the Delta board.

Fault Finding

By all accounts, bad capacitors are usually the underlying cause of these problems. Due either to being under-rated or a sordid tale of corporate espionage (see Wikipedia link above), the capacitors will gradually vaporize their electrolyte (and sometimes not so gradually, with a bang) until they can no longer perform their capacitorly duties, causing the monitor to go haywire.

First, inspect all the electrolytic (“tin-can”) capacitors for visible problems. Their tops normally have a score pattern on them, but should otherwise be flat. They should not bulge upward, even a little. Visible bulging, ruptured tops or signs of leakage (e.g. brown goo around the top or seams) are sure signs they need replacing. Note that failed or failing caps will not always show visible signs.

On the Delta DAC-19M010 board, things are divided up into 3 logical sections: the bottom half is a switching power supply that steps your 120/240V wall power down to a 13.8V and 5V rail. Roughly speaking, everything to the left of the large center transformer is its primary (high-voltage) side, and everything to the right is the low-voltage secondary side (the high side may also be marked off by cutouts and/or a line on the underside of the board). The upper half of the board (more or less) is the backlight inverter, with another large transformer to step this low voltage up to the 1kV or so needed to feed the CCFL backlights.

I’m sure you noticed the large, high voltage cap on the high side, right near where the power cord plugs in. You did short it, right? This is the one that can make your skeleton glow even if the monitor is unplugged. Luckily, consensus from the internet is that this filter cap on the primary side rarely fails, so unless it is showing visible signs you can probably leave it alone.

There are seven electrolytic caps on the low-voltage side, all of which should be replaced if you even slightly suspect a capacitor problem. (Technically, the topmost one connects to the backlight inverter, but you should change it anyway.) On my monitor, the 13.8V rail read a tad high (14.x) and the 5V rail showed only 4.1V. There is likely an undervoltage lockout circuit on the controller that prevents operation at this voltage, although there may have been significant voltage ripple due to the bad caps that was resetting or otherwise fouling up the logic directly.

Collateral Damage

With the caps replaced, it’s a good idea to check for any obvious collateral damage. There are several surface-mount fuses (denoted Fxxx) on the bottom of the board which might have been affected (zero-ohm resistors may have been stuffed in place of some fuses; check these too). After you triple-check that the mains filter cap is discharged, also check the through-hole fusible resistor to the immediate left (high voltage side) of the switching transformer. There is also a surface-mount fuse on the controller board near the power entry connector.

Cap List

Here are suitable replacement parts currently available on Digikey. Be careful when removing the old ones, as some of them are near very brittle powdered-core inductors and tacked down with some kind of glue. Note, one of the parts below has a higher voltage rating than the original (this is OK).

Quantity Part# Value Lead Spacing Height
2x 565-1546-ND (220u/25V) 3.50mm 11.5mm
1x 338-2342-ND (2200u/10V) 5.00mm 21.00mm
3x 493-1065-ND (1000uF/25V) 5.00mm 20.00mm
1x 565-1550-ND (470uF / 25V) 3.50mm 20.00mm

* Note, if the screen’s backlight cuts out (often after a couple seconds) but the monitor appears to remain powered, the fault is most likely in the backlights or backlight inverter section of the power supply board, not the low-voltage section. You can confirm whether the entire system or only the backlight has shut off by holding a strong flashlight directly against the screen while a valid video signal is present – if you can see the image around the edges of the flashlight, the low-voltage supply and controller board are probably OK. Replacing C204 MAY solve it, but otherwise, fixing backlight issues is a whole different animal, which I don’t cover here. You MAY be able to identify a single dud tube by unplugging one at a time (WITH THE MONITOR UNPLUGGED!!!) and testing the monitor, but this is not 100% reliable (some inverter circuits will detect a single “open” (e.g. unplugged) tube and shut down anyway).

Pics of previous entry

Me just a-standing in the stuff
200 Boston ‘avin a slash…oh, that knobbly bit in the wall that the water is streaming out of is a structural support beam.
Lake Medford’s boat ramp…no, wait, that’s our loading dock.
Sewer vortex in the parking lot
Sewer vortex in video form

Oil & water

First a plug to the folks at Lyons Fuel. This morning I get a knock on my bedroom door that the boiler quit working (no heat / cold showers); the gauge on the tank read almost empty (I don’t really trust the gauge), so I assumed the tank ran all the way empty and the oil pump sucked some air and quit. Some frobbing of the reset button wasn’t getting us anywhere. I called the oil company to refill the tank (which should be automatic); they said they’d send someone out that afternoon to bleed the line. I sent out an email and ducked out of work, expecting to appear at the house for 5min. to unlock the door, get the serviceman in and out, and scurry back to the office. Turns out it wasn’t air at all; when the level got low it sucked all the years of accumulated sludge from the bottom of the tank into the filter and pipe; it was pretty much completely clogged. Anyway, this guy put in a Herculean effort of changing the filters (no improvement), back-blowing the oil pipe with paintball-style CO2 cartridges and even replacing the nozzle inside the burner. Then he pulled the top off (“whoa, the top comes off?!” -me) and scraped/scrubbed down the manifold with a crowbar-like metal rod followed by a large bottle brush. In other words, a full-on inspection / maintenance service. Long story short, it now works beautifully! Apparently this (annual inspection/cleaning) is included with the oil service at no additional charge, which is sweet.

While down there, I noticed the sump pump wsa working overtime and there was the sound of a steady tricke of water streaming into the sump pump hole from the great outdoors. I was told to expect this, particularly in this neck of Medford (due to various factors, including a collapsed storm pipe under the street and one or more storm drains simply paved over during street repairs, the water doesn’t have much of anywhere to go except peoples’ basements). Anyway, it rained like a bitch all day and snowed like a bitch all the night before, so I didn’t think too much of this.

Sometime after I got back to work, I went down to the production lab to snatch the hardware I left in the thermal chamber. When I got there water was creeping across the floor and the two production folks were scouring around for some buckets. It turns out our building’s parking lot on the south side is pretty much the lowest point in town. The parking lot by the loading docks was well over a foot or two deep with water (rain + snowmelt) flooding in from the nearby railroad tracks and created this huge vortex at the nearest sewer hole. (At least I think it’s a sewer hole, we’ll find out tomorrow if the parking lot just collapsed into a sinkhole or whatever.) So the production lab ended up flooded by about 4-6 inches; water was pouring in right from the walls, we found one sump pump and set it up, but it wasn’t enough to cope with what was flooding in. We’ve most likely lost a few expensive pieces of equipment to water damage, as well as a whole lot of documents stored in file cabinets. I have some shoes and pants sitting on a radiator right now since they’re now soaked. In the stairwell, there was a small hole in the wall where a nice stream of water was shooting out about 4ft., as if an invisible man was standing with his back against the wall taking the most forceful piss ever. I got some nice pictures of the “event”, which I will download tomorrow when my work machine stops acting lame :-)

Trap?

So my girlfriend, who is awesome btw, has indicated that she’s not into the whole Valentine’s day thing (as in it kind of disgusts her a bit), and I shouldn’t do anything out of the ordinary on this day. She doesn’t like pink, excess sap, bad poetry, heart-shaped boxes full of chocolate (except to the extent that they contain chocolate; she is a girl after all)… so, am I just an exceptionally lucky man*, or am I actually walking into a bear trap?

* Not to crap at all on the idea of expressing my affection. But the whole socially pressured, Hallmark holiday thing just really skeeves me. Sometimes our hands are forced a bit, into going along with things we don’t really agree with–be it dealing with peoples’ whackass beliefs, working on gadgets uncomfortably close to weapons systems, killing some innocent Brown People or whatever. I see the pressure to honor Valentine’s Day as one of these cases. (Not to mention, I kind of suck at that whole romance thing. The only two times I was non-single on this date I either fully capitulated to the whole expectation (poorly), or spent it at the Chicago Public Library (though I’m marginally excused for this; it was her idea!).

And as I’ve previously mentioned, I think peppering my sweetheart with killed cut flowers is about the worst possible message to send).

Take my money, please!

I mean it, guys, want money from me in exchange for services I’ve agreed to? All you have to do is ask.

So apparently, if you ever dare to log into GMAC Mortgage’s web site and pay a bill “on-line” (using teh interwebs), even just once, they stop billing you. Neat, huh? Subprime house in the hamptons, here I come! Hmm. Well actually, they keep billing as usual, they just stop sending the bills to you. See, since you’ve demonstrated that you by some means have access to the “on-line”, you are fully capable of logging into their web site everyday to check if they’ve posted a new bill today. Or if you’re really lucky, a link to the bill may have even floated its way to your spamtrap e-mail account*, where it distances itself from the numerous p3n1s p1llz and Honeyjen18 wants to be your Myspace friend! spams** by sporting an eye-grabbing subject line such as “Account Update“***. Because as you know, e-mail is a reliable communication medium.

Luckily, late Friday night I thought to myself, as so many do on a friday night, “hmm, it feels like I haven’t gotten any mortgage bills in a while”, and logged in there (with help from the smiling gods of “15-day grace period” and our internet working again today) just in time to avoid some unknown and no doubt unspeakable late fee nastiness. (Or a becigared, bemonacled Foreclosure Guy showing up randomly at my door with a briefcase and chloroform.)

On a related note, State Farm Insurance stops talking to you if you move about 2.5 blocks. So, they send to your new address (which they have) a note that says, “you moved, so we can’t talk to you anymore, call your agentFULL STOP NO CARRIER”, and to your old address (which, judging from the you-moved note, they understand that you have moved from), your bill, policy and renewal forms (which are apparently immune to mail forwarding service, although stampless paper postcards from the Awards Verification Center still are not). I found all this out after Googling for their phone number today, as it was not on the letter that told me to call it (nor, for that matter, any information concerning the identity of my mysterious Agent). I actually got this letter sometime the week before, but wanted to schedule this hold-music hell for a time when I would be chained to my desk like a good code monkey anyway, with only the occasional frequent pee break (Decaf? My world knows no such thing :P) to influence my odds of having to restart the whole phone tree from the beginning, and be able to set the phone on handsfree and get something half productive done while sitting on hold.

I have to ring them up again tomorrow and doublecheck whether this thing still automatically renews, like a gym membership, or if I’ve been driving around uninsured for the last couple weeks baiting every cop in town.

* I have exactly one remaining spam-free email account. For this reason, it is strictly reserved for friends and personal acquaintances. Ist nicht fuer gewerken bei das banks, mortgage servicers, webforums, order confirmations, shareware trials, shopping sites, travel agencies, etc. End discussion.

** where “Myspace friend” == “Webcam whore” and “Webcam whore” == “$18.99 a month Webcam whore”

*** actually, I don’t know what they use for a subject, because I’ve never received one. At least, not containing the text string “gmac” anywhere in the body, subject or sending address, according to a grep of my spamcexxyinbox.

Salesdouche game for a bored day

Today was one of those little icky days where, after the fun and mildly arty process of designing a set of boards, the next step was to spend all day in Excel sourcing parts and getting all their prices filled in (and ripping up parts of the design where the part had gone non-stock, etc.). As a fitting punctuation to this experience, I had a meeting with a Toshiba(?) sales rep today hyping a line of 16-bit microcontrollers. (How did I get involved in such a meeting? Note to self, stop agreeing to offers for free devkits :P)

Anyway, one of those better-known salesdouche academy tricks is to match the mark’s body language–it’s supposed to instill comfort and trust or some such, or more to the point, increase the odds someone will buy your stuff: if the mark leans in, the salesdouche leans in; if the mark crosses his legs a certain direction, the salesdouche should follow suit within a minute or two. What I like to do is exhibit increasingly bizarre body language and see how far I can get the salesdouche to track it.

For example, I like to start small, with an “interested” forward lean to get him hooked. Once he’s tracking, I may segue into the Thinker pose or an ever-pensive elbow rub. Once the spiel is well underway and the SD is douching it up at full lather, when he mentions something I don’t like, I recoil a bit and hit him up with the jazz hands to see if he jazzes back.

me: “Ooh. So you mainly work with __JAZZ HANDS__ high-volume customers?”
SD: “Oh _JAZZ HANDS_ nono! We’re totally receptive to smaller orders…” (score!)

I like to follow up with some twitchy elbow and a little feet-on-table action. By the end of the meeting, I might well be in full stripper-table-lay, knees on chair, belly and elbows on table, under the auspices of interestedly poring over a brochure they carelessly left of Their Side of the table. I’m small, so I can get away with this. So far, I haven’t succeeded in getting a salesdouche into full sprawl on our conference table, but that day will come.

Unique and beautiful snowflakes

According to The Great Google, I’m one of only three people on the planet who uses the term “backward-endian” to refer to computing platforms who store their bits and/or bytes in “little end first” order (aka. little-endian, where all the bits are stored least-significant-digit first and most-significant last, kind of like storing a million as 000,000,1. Ten million might be stored in an order such as 000,000,01 or 000,000,10 or 01,000,000, depending on exactly what level of backwardness is being referred to [bit-, byte-, or both]). Apparently “wrong-endian” is even a bit more common.

Also, apparently nobody besides Kr* uses the term “seed holes” in the context of pants. (I have 2 pairs of pants that came pre-nicked from the factory so they’d grow “hey, I play rough and/or do a lot of physical labor” fashion-holes after a few washings. I didn’t notice this fact until after a few washings.)

What are your own unique term-isms?

(To those who may accuse me of being a compulsive Googler and/or bored at work, let me assure you that I…er…I…am ending this post now.)

Woo Vista

I just had my first taste of Windows Vista, uninstalling the mountains of craplets pre-installed on a co-worker’s new HP laptop. Renaming a shortcut on the desktop required clicking “ok” to two authorization dialogs.

‘Nuff said.

Less-than-three

Last Friday night, Kr* is acting unusual and then confides in me that she’s having “irrational girl thoughts”. Digging for the bottom of them, I hear…”What are your thoughts…about us?”

Oh shit, I thought, here it comes. That talk that tells a guy, as politely as possible, that it’s time to start updating that dating resume. I braced for the worst.

Okay, turns out I was completely wrong about that :-) She was gathering up the nerve to say that she liked “us” and go further, and wasn’t sure of how I would react. Anyway, upshot is that the dangerous 4-letter word has been unleashed, with no ill effects ;-)

Bulk update December 07

Wow, I really have to keep this thing updated. So now that it’s past mid-January, I should document December, right? ;)

Anyway, December:

The older I get, the more I notice my capacity for putting up with bullshit decreasing at an alarming rate. Latest bullshit from GMAC: Not three weeks after filing a complaint re: the Payoff Statement scam, GMAC conveniently loses all my insurance paperwork and sends a nastygram demanding copies of my insurance info ASAP before they go buy their own policy from Their Guys and charge it to my bill. Punted the letter off to the insurance company, who straightened everything out.

My folks came up for a visit around the 8-10, I think mostly as an excuse to see the new bachelor pad. This time my brother was along too; he’s usually not been able to come out here. He and I went out to the Joshua Tree* to enjoy some Guinness and the joy that is unshoveled sidewalks; the next day we all went to JR’s dirty cookie party :P Nobody seemed to be starting the dirtiness (there were a lot of lab folks there, etc.), so my folks did, and (some of) the rest of the group follwed suit. Pics of this year’s aren’t posted yet, but here are the results of last year’s :P

Somewhere along this weekend, the whole issue of us all eating together came up while Kr* was over. (For OCD-ish reasons I won’t bother to detail here, my brother and I do not eat together. Due to this, as a family eating out together, we would typically get two tables spaced some distance apart from one another.) Anyway, Kr* took notice of this and wanted to know what it was about, and since I don’t like lying to people (especially a girlfriend), I told her a bit about it. Yeah, good call Batman. She was pretty weirded out to say the least… in the car later, the words “I might have to do some thinking about us” (or something to that effect) were said, probably not at all seriously, but it still about made my heart drop into my intestines since I’m never really able to tell. I forgot (or maybe am trying to forget) how refreshing it was to be with someone who was not only unweirded by that sort of thing, but explicitly *got it*, by virtue of having having the same stuff themselves. No* explicitly got it. Kr* seemed to get over it by the next day, but it kind of made me wonder in the back of my mind, what I can really share with her, and at what level of detail.

I’m sure that feeling will pass in time.

Meanwhile, parts are in and work on my super secret home CNC has begun. So far I have all 3 motor drivers built, and the Z axis holding a Dremel (-alike) as a spindle. Now I just have to find time (and sudden mechanical engineering prowess) to build the rest of the machine! I also put together the first V2 Rezu prototype.

Had Xmas in the Great White North; 4 days in Massena with Kr* and her family. Seemed to get along with her folks pretty well; I didn’t get kicked out of the house or anything! So, her mom is into Christmas. Like, really into Christmas. They had two fullsize trees, one small tree, and so many gifts under them you could hardly walk across the room (“under” in this case being a loose term). I’ve never seen anything like it. Kr* introduced me to her extended family and hometown; apparently one of their big attractions is watching ships raise and lower in the river locks, but they were closed the day a big icebreaker came through. So instead we found this little nature center and hung out there. All sorts of live critters, including free-range ferrets just kind of roaming around in the building. We also assembled a rather sizeable bowling posse, I learned to play euchre, and discovered the joy of poutine, eh?

Shortly after returning from this, it was time to head to Chicago for New year’s, but that’s for the next lazy man bulkupdate :P

* Sometime not that long after I moved to Boston, my folks came out to visit… I was still single and my dad was getting nervous… while we were having lunch at a local place, he randomly leans over and grabs the attention of an attractive young lady sitting alone at the table next to us and says, “So, my son here is single… where would be a good place for him to go and meet a nice young lady?” (as I sink ever lower in my chair with embarrassment). The girl, visibly taken by surprise and bewilderment, replies, “Um… he might try a bar…like, maybe the Joshua Tree…” (one of several local Davis Square bars). So for at least the next two years, pretty much every conversation with him either contained or started with, “So, have you been to the Joshua Tree yet?” So, now I have finally been to the Joshua Tree. Go me.

Spirit of X-Mas in America

True story. The following overheard on my way into the Shaw’s on Locust St., where a cop (or rent-a-cop, they all look alike) was hassling what I could only guess was a suspected shoplifter (or generally suspicious mixed-ethnicity youth, etc.): “You walk into the store, you walk out of the store, you don’t buy anything… what is wrong with you?”

Clean Pile / Dirty Pile – laundry management system and method rev2

As mentioned in a recent post, I own a dresser, which has been stocked with clothing* approximately twice in the last 3.5 years. (Eek, Boston, has it really been that long?) I don’t know who came up with dressers, but they probably didn’t have a day job. “So wait, I’m supposed to take all the clothes, sort them, fold them up, put them into the dresser arranged into rows, close the drawer, open the drawer, unrow, unsort, and unfold just to put them back on again?” As I mentioned, the dresser seems to me like a pessimal clothing management system. In my extended bachelory singleness my clothing management strategy underwent gradual stages of simplification, to the Closet/Floor system, the Basket/Floor system, and ultimately the almost-pinnacle-of-perfection, the Clean Pile / Dirty Pile system.

This system operates on the principle of minimum change in entropy, or delta-S, resulting from the removal of mutually inverse intermediate states. Operations that require energy to transition the articles of clothing from a high-entropy state to a lower entropy state knowing that they will soon be returned to the exact same high-entropy state by an inverse operation are reduced out, with the realization that the energy expended to produce the low-entropy state is not recovered in the act of returning to the high entropy state**. Upon shedding clothing flagged as ‘dirty’ due to being worn a full day, said clothing is flung onto a designated Dirty Pile at a known location on the floor. Since the clothing will be loaded into the washer in this state, there’s no reason it should transition to any intermediate state before this time. After being run through the washer and dryer cycle, the clothing emerges in a substantially similar pile form, although now flagged ‘clean’ due to the wash cycle. The pile is transferred in its native, unmodified form to a Clean Pile in a separate known location on the floor. Again, since the next state of interest is “on the body”, superfluous intermediate states (i.e. “in the dresser”) are omitted.

Application of this system results in substantial savings over the Dresser system. Over time, however, several inefficiencies in this new system have become evident. To better explain these inefficiencies, a brief recap of the generalized solution is in order. The complete laundry cycle consists of three required tasks in a specified sequence: Wash, Dry, Wear. The Wash cycle adds complexity since the mixing of certain articles of clothing is discouraged (e.g. whites vs. colors) and a complete Dirty Pile rotation may require multiple non-parallelizable cycle permutations ((machine sturdy | machine delicate | hand) wash (warm | cold) (separately | with like colors)), dictated mainly by the number of clothing articles bought for you by other people, who don’t have to wash them and therefore need not pay attention to cycle compatibility with your existing articles ;-) . The Wear cycle has special requirements too. To complete successfully, this cycle requires nominally at least 5 elements to be simultaneously present (nominally 2x socks, 1x underpants, 1x pants and 1x shirt). Therefore, the total Wear task overhead is dominated by the time required to locate all (ahem, clean) of the required articles.

The noted inefficiencies of the basic Clean Pile / Dirty Pile system can thus be summarized as follows:

  • Application of heterogeneous clothing (light, dark) to a common Dirty Pile necessitates an additional sorting step before the pile contents can be applied to the washer
  • As the number of articles of a given type (as a percentage of the total Clean Pile) decreases, the time required to fetch the next article of that type from the pile increases according to O(N/n), where n is the number of remaining articles of the required type and N is the total number of articles in the pile.
  • A priori knowledge of the number of remaining articles of a given type (socks, pants, etc.) is not available. Since the search for an article terminates as soon as one of the article has been found (regardless of the percentage of the pile actually searched), the situation where n approaches zero can be reached without warning.

A few simple modifications to the system provide substantial improvement: Since the clothes destined for the dirty pile are already semi-sorted (white socks on feet, probably colored everything else except maybe shirt), and they have to be taken off and thrown in some direction anyway, expand the Dirty Pile to three separate piles: White, Colored and Weird. (The Weird pile encompasses the typical minority of hand wash, dryclean, flat dry and similar special-needs garments. It’s estimated that at typical acquisition volumes of Weird clothing by bachelors [i.e. gifts], this pile will take up to a month to fill and require rotation, producing a further optimization by reducing the total number of Weird cycles versus a unified 1-week pile containing one or more Weird articles.) The aim is to reduce the run-time of the sorting task by exploiting naturally-occurring states of partial sortedness in the clothing’s usage cycle, preserving such sortedness as it occurs and preventing the clothing from unnecessarily transitioning to a less-sorted state upon application to the Dirty Pile. Likewise, since the white and color piles are already homogeneous upon completion of a (wash/dry) laundry cycle, there’s no sense lumping them into a single Clean Pile and losing that hard-earned sortedness, so we create two Clean Piles, one for whites and one for colors. This subdivision of piles has most likely reduced the maximum size of a single pile to the level where it can be accommodated by an average bin or laundry basket, so we may now speak of clean/dirty “buckets” instead of piles. This prevents nearby amorphous piles from merging during an extended search as mentioned above, and most importantly, reduces the runtime of all O(n/N) cases by constraining N. The total number of pre-sorted piles/buckets may be dictated by the available space, but any nPiles>1 will yield improvement over the prior system. Finally, a small “reserve” pile, containing one pair of socks, one pair of pants, one pair of boxers, and one shirt, is defined. This pile is small enough to be kept in any convenient location, e.g. under the bed. Upon removal of a white or colored pile from the dryer, the contents of the Reserve pile are polled, and for each component not present, the first of that item dequeued from the dryer is added to the reserve. This is a very efficient process which avoids non-termination of the O(n/N) case where (n/N) is infinity.

* Clothing, n.: Something to satisfy my legal obligation to not be naked in pubic. :-(

** yeah, and parental units never took my argument for not making the bed because it will be unmade within 24 hours as a “clever optimization” rather than “willful act of defiance”, either.

Why Windows asks you for drivers again whenever you plug a USB device into a new port!

I found this today while searching on another USB-developer-related problem: "Why does Windows not recognize my USB device as the same device if I plug it into a different port?"

For those who can’t be bothered to click the link, this occurs if the device doesn’t specify a serial number in its USB descriptors. They decided in this case to treat each (device@port) pairing as a new device rather than the same device in case you had more than one of them; otherwise they would enumerate in a seemingly random order at each boot, and whatever software that interfaced with the devices would have them swapped half the time. Unfortunately, in solving this problem they created some new ones, namely the ol’ “hunt for the driver disk” everytime the device gets unplugged and you don’t remember which physical port it was plugged into before (or something else got plugged in there in the meantime), and the semi-common case where a vendor tries to avoid the driver hunt by every device the same/dummy serial number (e.g. 000000000) causing bizarre behavior (or bluescreens under Windows).

Which brings up the question of which path to choose for the V2 trance vibe… do I…

  • leave off the serial number field, forcing five-knuckle driver shuffle for every port the device is plugged into?
  • fill in the field with the same dummy value for each device? Thinking not an option since certain crappy OSes can’t handle this if more than one is ever plugged in.
  • create a unique serial number for every unit made? Would require some exhaustive/ugly scripting to rewrite the serial number in the .hex file before programming each device myself… the more likely approach would be Serialized Quick Turn Programming (chips pre-programmed from the factory), but this involves extra work, set-up fees and volume purchase requirements. Either way would require keeping track of used/unused numbers. Not to mention the privacy implications of any given “adult” application being able to uniquely identify a user by their vibrator’s serial number…
  • Create a ‘semi-unique’ serial number for each unit? Same hassles and expense as the previous, but not caring if a number is duplicated eliminates keeping track of the last used number in subsequent SQTP orders / etc., as well as most of the privacy concern. One approach would be to just increment the last byte of the SN on each programming, reducing the odds of n devices on the same machine causing a crash.

The good, the bad, and the ugly!

OK, I kind of forgot I have a blog here. Anyway, here’s a bulk update of the last few weeks.

Good:

Thanksgiving: HAL, LE and I went over to TvS’ place two doors down for a most excellent Thanksgiving dinner with their whole family and MP. They had turkey and all the trimmings; we (mainly meaning HAL) made a delicious garlic-roasted leg of lamb and brought it over. Later, fell into a wine-and-food coma for several hours (as expected!).

Narrowly escaped Jury Duty for the time being.

The upstairs bedroom floors are finished…I had no idea wood can be sexy! Check it out:

Only now do I find out I don’t have “before” pictures like I thought I did. Anyway, beneath the carpet we ripped up was a rough, ratty-looking layer of hardwood covered in scratches/gouges that appeared to be from someone dragging heavy furniture all over it (or possibly a large hammer and chisel ;-), and a healthy layer of white paint splotches from whenever the walls were painted. A Craigslist find by the name of M&T Floor Sanders transformed it with a good sand-down, seal and a few coats of polyurethane. Any traces of carpet staples, paint/crap, and most of the scratches are gone without a trace (although a couple really deep gouges are there for the duration). So as of a couple days ago HAL and I are officially moved in.

DTV: My shipment of Trance Vibe circuit boards came in the mail; I populated 2 units for testing. Nearly everything is going smoothly with it so far: they fired up and ran with only minimal code changes (mainly relating to I/O pins being moved around and a couple inputs added). In addition, the boards fit *perfectly* in the enclosures. One minor problem discovered is that if I want to add Blinkenlichten chips to any, I’ll have to buy a shitload of them and have them factory pre-programmed. I thought pressing the chips against an unpopulated footprint and hitting ‘program’ would work, but keeping all legs aligned and touching at once for this process is turning out to be non-trivial.

Xmas party:
Dragged Kr* along to the company ChristmasHoliday party; we had a great time. As is par for my company events :P we both got rather well lubricated (although no more than anyone else there, for sure!), did some dancing, and I came home with my tie around my forehead, ninja-style. My officemate won Bush Job of the Year for the pest-control system he rigged up in our office (to stop ants trying to nibble on our ficus, alternating strips of copper are wrapped around the trunk and wired up to a bench power supply. When the ants climb to the spot where they have to step on both at once, they drop…) The Xmas video somehow ended up on youtube :P

Bad:

*bump* *block* "Excuse me, would you like to take a minute to do something for the environment?"
"No thanks, I already polluted at work."

Crazy guys and rude panhandlers around Davis are multiplying, if the hivemind of Livejournal is to be believed. A thread HAL linked me to today discusses, and reveals some facts about, the one I’m most familiar with near Powderhouse.

My family (folks and brother) will be coming to Boston this weekend. This is a good thing :P But, it means I have to find ways to keep them entertained for the whole weekend, and also felt it necessary to make some token effort at straightening up the place before they show up, particularly my bedroom. I went so far as to put my clothes…in the dresser! (Now that it no longer lives in the kitchen of course.) After this took bloody ages, I quickly realized why Bachelor Tim stopped doing that, and instead adopted the highly efficient clean pile / dirty pile system. If anything, the dresser is a pessimal clothes management system. (I’ve made further optimizations to clean pile / dirty pile and will post the results soon! :P)

Ugly:

I got a response from GMAC about my complaint from that double-billing scam they’re running. “As a courtesy”, they agreed to refund me $20 of the $60 they stole (which comes out to $15 after registered mail). There’s probably a statistical model that calculates the minimum partial refund to make the average angry customer go away, but I’m at a loss as to who I would bother whining to next.

I’m tempted to print out my own little stuffer and enclose it with all future payments: “As a courtesy, I’ve decided to pay my bill this month.”

| grep snow

Datestamp entry and obligatory ‘snow’ entry (along with half of livejournal) :-P This Tues. morning was our first unambiguous snowfall for the year.

But while I’m here: HAL’s big-screen LCDTV came in the mail today. By “came in the mail” I mean we trucked our asses through the Nostril Bridge (I guess it only looks sinister and nostril-y at night) and down to the UPS plant where we picked it up, because UPS doesn’t believe in the concept of people being at work (not home) during the daytime, but the screen is pretty damn sweet. With packaging it turned out to be the exact optimal size; the absolute largest that could conceivably fit in my car (another half inch and it wouldn’t have made it!). For other house stuff, I got around to connecting up the basement sink*, replaced the front door can-spring after last week’s strong winds decided our storm door was a pull toy, found the wobbly toilet’s bolts are plenty snug on the toilet side (meaning the loose end is what the toilet connects to, i.e. the bathroom floor, which is never good), and got an estimate from the hardwood refinishing guys who should be going to town soon. Apparently the Big Machine they use for sanding draws so much power that their common powering method is to unscrew the front panel of the breaker box, remove one or more of the large breakers and jack directly in! HAL mounted a formidable (but compact) dual-LNB “IndirecTV” dish (arr, matey) to the back porch and pointed it in the direction of the ballfield, a patch of sky where I’m told French Canadian porn Red Green lives.

Last week, dug up the sweet potatoes. I’m surprised we got so many; not just have to figure out what to do with them. Kr* passed on some recipes, but they involve baking and exotic baking ingredients, such as “flour”. :-P Incidentally, potatoes make a great tool for removing old rotted light bulbs after the glass breaks off and leaves the base in the fixture**.

* Secret to success using an army of Home Depot-grade size couplers and gender benders: plenty of thread tape and a VERY BIG WRENCH.

** provided you remembered to turn the power off first; otherwise it becomes a great way to test the tensile strength of your underpants.

Takin’ Care of Bullshit, everyday

This week was the week of dealing with billing-related BS – namely, clearing up why the city is still sending tax bills to GJM (in Texas), a discrepancy between the written and printed oil bills we got, and suspicious charges on my last mortgage statement. The first two were quickly and easily resolved. As for the last…

I rang up GMAC Mortgage this Friday, after finding they’d double triple quadruple-billed me for a Payoff Statement, a routine piece of refinancing paperwork. (A refinance is basically taking out a new loan and using it to pay off your old one, usually on finding that you can get one at a lower rate than your current one. The payoff statement tells you–or your closing guy–given a near future date, the exact amount to pay on that loan on that date to pay it off. In other words, an interest calculation that’s done by the computer at the click of a button. How mortgage companies can justify charging $20-$100 for one of these is anyone’s guess**, but that’s a whole different rant entirely.)

I’ll spare re-recounting the details, you can read all about it in my demand letter to GMAC (after repeated calling to customer service reps got me nothing but elevated blood pressure and a contact Indian accent).

If ever you’re planning to contact GMAC about an error they’ve made, do yourself a favor and don’t bother. Type out your complaint on its own sheet of paper with your full name and account number, jam it into an envelope with any evidence, and send it certified mail in accordance with RESPA Section 6 (12 U.S.C. Section 2605). (It may help to include text such as “Qualified Written Request under RESPA Section 6” at the beginning of the letter, but this isn’t necessary for your letter to be a qualified written request they are required by law to respond to.) My experience thus far is that the reps are generally pleasant and inoffensive (though maybe worthless*) until you suggest the possibility that GMAC has made a mistake; then they start stonewalling. After the first rep refused to hear it I wrote him off as the occasional bad apple (curry), but after the same from a completely different rep I pretty much have to conclude that it’s policy.

* I had to contact them once before to make sure a tax payment they were supposed to send actually got sent. They were polite and quick to verify it, although I never did receive the proof of payment they promised to fax “within 24 hours”.

** one could also wonder why I’m making a stink about a whole $60 in spurious charges when compared to the loan amount, but I’m not one for swallowing bullshit, whether it comes by the bucketload or the spoonful.

Nintendo DS Lite power (current) consumption, part 2 (and other stuff!)

This is a continuation of this post, where I hooked up an ammeter as an afterthought while changing the fuse I blew in my DSLite. I didn’t have any games with me and hadn’t fixed it up to sleep with a SuperCard, so these additional numbers are below. Check the prior post for stuff about battery life impact of different brightness levels, DS vs. GBA mode, WiFi, etc.

All the numbers below were taken with the DSLite backlight set to the lowest brightness setting.

Sleep Mode current (DS lite “on” and flipped closed)
This was measured at 1.77mA and 2.31mA, depending whether the blinking green LED is on at the moment. There is no measurable difference between when sleep is entered at the boot screen with no cartridge, or with a cartridge in the middle of a game.

SuperCard SD users will be mildly upset to know, however, that this device is drawing a constant 35mA at minimum at all times, even when the DS is in sleep. Hardware mods, or a dummy cartridge in Slot 1 (to pull the INTerrupt line low) will prevent annoying sleep/wakeup loops, but it won’t allow your system to take long naps.

Cartridge contribution:
Basically none while the cart is not actively being accessed; e.g. sitting at the boot screen, cartridge inserted / not inserted has no measurable effect (<<1mA).
Conspumption of 54.6mA at boot screen raised to average of only 60-63mA at Super Monkey Ball title screen (2 screens + sound), with very occasional highs of about 74mA during vigorous play with both screens active, 3D, sound, touching, basically everything except wifi. Touched / not touched makes no measurable difference, in case anyone is wondering. Cartridge access is certainly a lot less power-hungry than continuous Flash/SD reads.

NDS Lite with external antenna
I got a broken “parts” DSLite cheaply on eBay for any ‘dangerous’ hardware experiments / mods (I didn’t want to risk my good one again with homebrew hardware in the cartridge slot), and the replacement screen it needed. So while it was open, I figured I’d try plugging in an external antenna. This was a pretty disappointing test.

Antenna used was Unigen partnumber UGADA0B1M1050M-IN or similar (4″ swivel w/ 50mm mini-coax tail, 2.0dBi), which was a spare I scavenged from a helicopter blade testing instrument I designed a couple years ago. Certainly no monster, but I thought it would outperform or at least not suck compared to a copper pattern etched on a 50-cent circuitboard. The DS’ builtin antenna wins by a statistically significant margin. Now a pre-amped Yagi coffeecan will certainly boost your range, but then the DS isn’t exactly such a portable hackytool anymore, and you might as well lug your laptop…

DS wifi module (Mitsumi DWM-W004, DWM-W006 or equivalent) mating connector:
I found and sampled some connectors that will mate with the DS’ mainboard wifi connector and the Mitsumi module, respectively. These part numbers are Molex 53748-0308-C (Digikey p/n WM24014-ND) for the “plug” (mates w/ DS mainboard), and Molex 52991-0308-C (Digikey p/n WM24008-ND) for the “receptacle” (mates with wifi module). I’m not sure how they decide the nomenclature of which is which; both pieces look a little gender-confused if you ask me. These may not be *exact* crosses (indeed, what’s on the official Wifi module doesn’t look like a Molex part at all, while the one on the motherboard most certainly is), but they seem to mate correctly. They are not keyed to prevent backward insertion, so take care.

Order one and you can use spare DSLite wifi transceivers (if you can get them) in your own projects; order both and you can make a daughtercard shim between the DS and the module to tap off signals to a logic analyzer. It would be nice to definitively log the communications required for init, various functions, WPA configuration, etc. The DWM-W006 is (if I remember it right) the same module as in the Wii*, which does support WPA. Wii should give a little more room for a shim board too…

* actually, based on photos of the Wii’s transceiver they’re not pin-compatible and probably use different chipsets, although they have the same FCC ID. Ok, FCC, you’re on crack.

CPA / tax jockey needed

To get my small business (sole proprietorship) off the ground and…er, buzzing. Or just provide good answers to a few home-business tax questions. Anyone? …Bueller?

* * *

I spoke to a lawyer yesterday (relax, not due to an unsolicited FedEx…this time ;) about starting that shindig up using a “least-cost least-risk” approach. (I’m not a gambling man, not even with 96 silver bullets on their way to my doorstep, so I’m not incorporating and all that expensive, complex jazz.) Mostly, I was looking to find out the recommended approach to dealing with a SO/HO in regards to the Tax Man, the Zoning Board and other legal ne’er-do-wells. Unfortunately, he wasn’t really able to tell me much aside from “get thee a CPA and ask them”, so that’s the next step. On the bright side, he was able to tell me that if I’m not running a manufacturing facility or brick-and-mortar shop with foot traffic (only online sales), zoning won’t be an issue in a single family home. (Although the same could apply to an apartment/condo too, many rental agreements forbid use of the space for commercial activities.)

It sounds like the most basic approach is to start as a sole proprietorship, will not need an EIN (no employees*), and might be almost as simple as filing a Schedule C / C-EZ profit/loss form with my tax return. There is also a free (beer) version of QuickBooks suitable for microbiz accounting purposes. Catch: To sell stuff under anything other than my own legal name (without having my name legally changed to “Drmn4ea Tech.”), I’ll have to file a DBA (Doing Business As, or Business Certificate) form with the city, for which they “strongly recommend” having your approval from the Inspector of Buildings handy. (The who now?) Per the advice I received, this (zoning stuff) “shouldn’t” be an issue (although in practice, I don’t know of any municipality that can smell pie without lining up for their own cut).

* as much as any of my friends might like to be a full-time, paid part of this balanced breakfast, having employees opens a big huge can o’ tax ID, federal income withholding, health insurance and potentially even OSHA worms.

Drmn’ Vibe netdemo at Intro.Inter.Tech

First off, there is a [Big Photo Album] with pics and videos of many of the pieces. (Audio-centric ones didn’t document well since my camera seems to assume the microphone(s) are just there for the photographer to talk to it, and any sound that occurs in front of the camera is just noise.) Also, the chat log of random strangers from the demo app is posted in case anyone is interested. Not everyone bothered to change the previous user’s screen name setting before chatting in it (or changed it later), so names may not exactly map to people.

For this piece two laptops were set up on tables facing away from each other, with a USB trance vibrator attached to each. The demo application, shown in ths post, was running on each machine, one as the client and one as the server. (Wireless was non-existent on one machine and hosed on the other, so they were connected with a hub and plenty of Cat 5.) Participants were invited to chat with us or one another and drive the vibrators. The whole setup, complete with stark black and white desktop backgrounds, was meant to be cold and anonymous (although in practice, in a 1-room space the participants can see each other if they turn around).

Results: People had fun with it, and a vibrator bullet ratting around angrily on the table is a neverending source of amusement ;-), but the general consensus was that the whole setup was a little eerie, made moreso by the fact that they were on public display with people walking by (as opposed to typing dirty in private), and that the participants could still turn around and see each other. It seemed a majority would prefer complete anonymity in their play, being able to have fun with a wholly unknown user and then disappear, without learning their partner’s identity or divulging their own.

(These sentiments were echoed by some participants in Rebecca’s piece, which was set in the “virtual sex” scenario of many future movies past. The setup was a pair of cameras mounted in acrylic cubes, sitting on adjacent mats representing individual pods that could be physically in the same room or a world apart. After applying a Saran Wrap condom (remember kids, safe cybersex!) to their cube, the users would each use the cube in place of their partner, with the video feeds superimposed on a single projection screen. For example, by each making out with the cube surface the two would appear to make out with one another onscreen. Participants revealed how hesitant they felt engaging in this ‘intimate contact’ with a stranger sitting next to them, even if all they were really having contact with was a plastic cube.)

As a complete afterthought, the built-in Webcam on one of the laptops was enabled, with the video showing in a window on its own screen. It seemed to me to mesh well with the overall theme of anonymous cybersex with a partner you will most likely not meet up with again, since there one is probably in it mainly for oneself (as opposed to, say, pleasuring random strangers without reciprocation)… looking into the on-screen window to see the object of your pleasure, and finding your own face staring back at you.

A stitch in the time domain saves nine

So, there I was contemplating the easiest way to decode (as a non-keyer) the single-frequency pattern, reminiscent of Morse Code, hiding from time to time in the background noise of the Evanescence song My Immortal. (Yeah yeah, formally admitting that I listen to that stuff.) As an afterthought while thinking of the changes I’d need to make to my already-existing Matlab Fourier Slicer (R)(tm)(c) for semi-automated decoding, I Googled to see if maybe some equally obsessive sap had already done the work for me. Aww, le disappoint.

When/if the GAS tank* refills, I might apply the slicer to looking for patterns in the noise of some industrial stuff. (Although in all reality, this easily exceeds the tank’s maximum capacity.)

* the notional tank that buffers my Give-A-Shit reserve for a rainy day.