Archive for May, 2006

‘Cause waking up is hard to do…

We’re doing this “10-4” thing at work for one week out of every month; this week is the first one (i.e. 10-hr days for 4 days, and friday off*); that’s probably it. And one single specific timecritical project** that I need to have results for by the end of tomorrow (while constantly being interrupted with everyone else’s whiny-ass hardware/software problems) – I have a very short attention span, which I typically deal with by having 3-5 concurrent projects that I can switch between as neurons reach burnout for one or the next. Anyway, this week I’ve been way more tired and burned out than usual, and barely able to wake up in the morning, even though I’m only getting up an hour earlier than usual.

Upon coming home, I think to myself that I could use my limited remaining uptime to finish up one of many unfinished projects, etc… until realizing that I really, really don’t want to. I’m burnt out on computers, on logic, burnt out on electronics. I was going to spend tonight tracking down the elusive secret handshake that unlocks the E815‘s diagnostic interfaces***, but the mere thought of opening C++ Builder and writing out some test code made me cringe.

But beyond that, I’m burnt out on making myself lunches, and dinners; the process of coming home. I’m burnt out on noisy mental process: that “song semi-permanently stuck in my head (where ‘song’ = ‘everything’)” state, unresolvable indeterminates, and I’m burnt out on thinking about things I can’t change.

I’ll probably be feeling substantially better in a week or so, but meh, I felt like ranting.

* no idea what I’m actually going to do with a 4-day weekend (besides catch up on all the sleep I missed, and waste life on the computer), but it’s there.

** an R&D project which is, at least in theory, way cool – a method of weighing an arbitrarily large something, or determining the force on a beam, etc., just by vibrating it. No more having to lift some heavy thing up and park it on top of a scale; just slap two sensors on at any arbitrary positions and measure it. It would be kind of like being able to walk out to any spot on a bridge, press your hands against the asphalt and immediately know how many pounds of cars are on it. Actually doing all this turns out to be harder than it sounds, however: our running pet name for it, while it was still in the “idle BS talk” phase (as opposed to where it is now, the Real Project phase), was Hardware for Ascertaining Load Force by Applying Sinusoidal Sweep in Every Direction ;-)

*** kind of sad to realize that I’m more interested in talking to the phone than using the phone to talk to people. This realization changes nothing, but it’s still kinda sad.

Nine times out of ten it’s an electric razor…

After much slacking around and procrastinating, we now have Rez Vibes! Lots and lots of them, if I feel like making more and selling them on ebay. The nitty gritty details are written up here.

_seq[6502696450795598]

A friend (who, ahem, should be studying now! ;-) sent this the other night: The Autism Quotient test. (A real test by actual researchers, not that OKCupid crap.) If you take it, post your results here – I’m kind of curious what everyone else got; e.g. what’s the spread, whether the test seems skewed one way or the other (or maybe my friend base is skewed ;-), etc. I’ll reveal my own in a few days, so as not to affect anyone’s else results.

QOTDs (a couple days ago) :

[23:54] ******: i wouldnt run for president if i wanted the job
[23:54] ******: id invade and become president

(during a discussion about basements flooding and raw sewage geysers from lower-level toilets/drains) “…we had a good three inches down there, probably just enough to go fishing! Luckily no brown trout though!” -FfS

Fun with PCB Fab Express

Over the last couple years, we’ve sent probably over a dozen printed circuit board designs to PCBFabExpress for fabrication. These guys are fast and cheap. They’re also board nazis, and will find pretty much any little thing to bitch about, but we still use ’em anyway, because they’re still fast and cheap. The limitations on what is or is not an acceptable board are somewhat less than well-defined.

Just for fun, we have been using non-time-critical projects to sort of test those limits.

Board art

After boards with a smiley or two on them* failed to raise any eyebrows, my first big “art project” converted a monochrome bitmap and placed it on the silkscreen. Completely gratuitous and nonfunctional, but they didn’t whinge about it, so I assume silkscreen ink doesn’t really cost. The quality of the silkscreening on these boards wasn’t that great, though (possibly on purpose ;-) – it was smudgy and scratched/rubbed off easily. So the next superfluous board art was placed right on the copper layer, where they couldn’t crap it up. This required more care to avoid triggering design-rule violations, but also came back with no complaints. (This board also violates the “no multiple layouts” rule explained below; a small accelerometer board is laid out inside the unused space.) Between JR and myself a few other “I’d love to know what happens if…” shits-n-giggles suggestions were made, such as inverting the silkscreen layer so that the board is entirely coated in white, or adding text like “PCBFABEXPRESS can lick my hairy beanbag”, or covering every mm of the board with “active” circuitry (or a crosshatch pattern, etc.) so that there’s no place to stick the little logo they put on every board by default. We haven’t tried them (yet).

Holes per square inch

They’ll complain and charge extra if the board averages more than 25 holes / in^2. This actually does make some sense; the holes are drilled by machine, so more holes mean more wear & tear on the machine / drill bits. The cost for the boards themselves is based on a size range: e.g. there’s a fixed price for any layout 10in^2 and under, and another fixed price for anything between 10 and 20in^2, etc. When calculating “holes average”, though, it appears they base it on the actual board dimensions, not the size range your order falls into. In other words, the situation can easily arise where increasing the board dimension (e.g. leaving wasted space) reduces your cost for the order, even though this reduces the number of customers’ layouts they can fit onto the panel. (This did happen to me once; since I was running against a deadline I just let them charge rather than waste time trying to dick around with ’em. But I’m curious to see what happens if I say to just grow the board dimensions to reduce the average.)

Any attempt whatsoever to stick multiple circuits on one board

Is heavily frowned upon, although the reasoning doesn’t really make sense. The rationale is described here. They believe a panelized layout represents getting free stuff; I say it represents getting 10in^2 for the price of 10in^2. (Other than the “holes” issue described above, the manufacturing cost is a function of square inches, not what you do with them. Imagine if Kinko’s claimed you were getting an undeserved freebie and charged you extra for photocopying documents with small fonts…)

Long story short, we’ll agree to disagree. It can definitely be argued both ways – looking at the extremes, if I can just barely squeeze a 2nd circuit into the allocated space, they get a screwing since I don’t have to do 2 separate orders anymore; conversely, in the case of small boards, if I get charged for 10in^2 on my 1in^2 layout, I get a screwing as do the 9 other customers whose 1″ boards were made on “my” panel.

Rather than get into a long philosophical discussion / MATLAB plot of screwing ratio vs. board size, corner cases, etc. (is that one 8-channel filter or eight 1-channel filters?), let’s attempt to discover what they consider to be multiple projects.

Short answer: Pretty much anything can be argued as “same project” as long as there are at least two traces in/out of any area and all the part numbers are unique. The silk seems otherwise ignored (although I wouldn’t recommend placing a big dotted line and “cut here” scissors on it anywhere). This is only my own not-so-scientific (small sample size) observation; whether any given board is accepted probably depends mostly on who reviews it.

What’s worthy of note is that the design files are essentially raster graphics files; no text is stored in the files. This means no dupe-finding by script; a live human is paid to sit and scrutinize board layouts for these types of things. I kind of wonder whether or not they make out on separated orders vs. the overhead of the partnumber-checker guy and rejected/cancelled orders.

Board: WBSFMSv1r0 (before I started giving boards human-friendly names for reference) – strain gauge measurer and more

This one was manufactured with the $50 “too many holes” charge (hey, I was on a deadline), but without any complaint about separable sections. The board includes an FPGA evaluation unit and a small LCD “surfboard”; the rest is officially part of the same design, although the radio module (far right) and CPU / CPU+FLASH (center) can be cut loose along the white lines and used separately.

Board: Suncloud – LCD, tamper detection, and something else

This board features an LCD driver board on one side, a big tamper detection dealie in the middle, and a tiny circuit tagged onto the far right side… quite obviously route-and-retain’ed, but no complaints here either. Sending it as a separate project, we would have paid at least $80 for 5 miniscule boards that may or may not have worked (it uses a part not solderable by mere mortals; we tried the ol’ heatgun-until-something-melts method with > 20% success rate); here we got 4*5=20 of them “for free” in the unused space of another layout. (This is why board houses should just charge by square inches + setup fee, not this cracked-out system of size ranges and extra charges and board scrutinizers.) Since the side circuit was so small and simple, we left their partnumbers off and replaced them with a single identifier per board. The boards are small enough they can easily pass as the footprint of a single part!

Board: Pandora – Battery-powered tamper detection and blinky lites

Same story – only 3 token traces connect these clearly route-and-retain blinkenlight boards to the main layout, an anti-tamper circuit for shipping boxes. AC says to me “…and it goes with this box, so we could call it Pandora, as in Pandora’s Box, heh, get it?” I’d just named it exactly that. Eerie.

Board: Switch – some little switching stuff, and an image sensor

I’ve been getting steadily lazier at drawing fake traces / etc., and basically just pasted a bunch of layouts together. I did run a batch-renumber script to uniquify the part numbers, but didn’t check its results very carefully – partnumbers of ICs were still duplicated. BZZT! They called me on this one, sticking their paw out for another $150 citing the dupe part numbers on the silkscreen. Oh Noes! Since this time I wasn’t in any hurry, I tried calling their bluff: I wrote back pointing out how much business we’ve thrown their way over the years, the fact that it costs no more to make a dupe-parts board, and that it would take me less time to just send it elsewhere for fabrication than renumber parts / add bogus traces and rebuild the design files. But they stuck to their guns. Enough of this BS; I told them to cancel the order and sent it to Gold Phoenix**.

Holes overlapping pads

One recent layout contained an unavoidable (due to size constraints) mounting hole overlapping a through-hole pad; within a few mils of the other hole itself. I thought for sure they would bitch about this, but they didn’t.

Silk covering pads / silk beyond edge of board dimension

It appears they postprocess the gerber files to remove silkscreening that overlaps a pad. I’ve also had silkscreen that extended about an inch beyond the board dimension (presumably, onto someone else’s layout) with no complaints, so I assume these are also removed during the process.

So there you have it folks – some initial research. There are some things yet to test! If anyone does (or already has), post a comment!

* a common practice (at least in our lab) is to place dummy “parts” on a schematic for components that don’t actually appear in the circuit, but still have to be ordered – like knobs or little sticky feet – so that they show up on the bill of materials. One or more guys were fond of naming the mounting holes with a partnumber for such parts, which occasionally meant adding extra holes when there were more extra parts than holes. But when one of my layouts called for 30 rotary switches(!) with knobs, rather than create swiss cheese, I created a part consisting of a goofy smiley face on the silkscreen. From what I understand, the meme is spreading (*cough* GJM *cough*) :-)

** who did it for much less, gave me more boards than I know what to do with (155in^2 for $119!), and even provided free step-and-repeat and v-scoring.

Life’s a beach, and then…


Einstein’s down on the beach staring into the sand
Cause everything he believes in is shattered
What you fear in the night in the day comes to call anyway-ay
We all get burned as one more sun comes sliding down the sky

My folks came out to Boston-land this weekend; dragged me out to Cape Cod and kind of spoiled me for a while. It was good fun mostly – a bit of sightseeing in this place I live in but never really find the time / inclination to go exploring by myself, and even the simple joy of a small stream so saturated with fish at one spot (trying to make their way up a fast-moving fish ladder) that a person could almost walk across it on their backs.

* * *

Night had fallen, and the folks were cooped up in their room watching TV. I couldn’t be there any longer, I was crawling-out-of-my-skin restless; I went for a long walk on the beach. More specifically, I started walking and wondered what would happen if I didn’t stop. But I did stop, at the occasional breakwater, standing atop a row of rocks extending out into the ocean, not caring if at any moment a wave on the far end of the bell curve would soak my shoes. At the moment there wasn’t much I cared about indeed. Just stood and looked at the half-moon and the ocean fog around me, dense enough that I could almost, but not quite, pretend that the rest of humanity didn’t exist. Eventually I ran into a canal of some sort and had to stop because there was no more beach, and if it went all the way through to the other side, I’d end up walking all the way around the end of the Cape and back to where I started, but not until far later than the next morning.

The beach at night was void of life except for a handful of couples in love, a couple drunken revelers, some kind of little jumping bug, and a pair of crabs. The crabs were both in various states of near-death, missing eyes, missing legs; thoroughly exhausted, possibly as the result of a fight and/or copulation; with some primitive creatures one can sometimes hardly tell the difference. I gave up on the crabs and kept walking… I had a lot to occupy my mind; a lot that I thought I would be over by now – or at least not grinding on so much; a long-term, low-level grind. Sometimes I do wish I could just break down completely, and at least get it over with*.

* * *

Just recently I was talking to an older woman who confided in me “I need a man.” Her specifications were, basically, someone to massage sore shoulders, fix things around the house, handle the financial fiddlybits, take the car in when it needed service, check tire pressure, etc. (“Hell, I could do that“, I almost said, but didn’t want to get five across the face.) Due to the non-in-depth nature of this talk I must assume these were not the only specifications; there are usually all those unspoken tall-dark-handsome-brilliant-but-not-crazy-fascinating-talkative-romantic-funny-knight-in-shining-armor qualifications that conspire to keep guys like me single. But it did get me thinking, as things always do. (Oh, to have a brain with an off switch**.) For my biggest worry to be caring for an internal combustion engine would be a refreshing change.

* but I kind of believe nothing is ever really “over with”; it may roll off, e^(-t), until it sinks beneath the noise floor of consciousness, lying effectively out-of-mind until randomly retriggered by a particular unique smell, or a song on the radio, or some obscure association. But that’s not exactly the same as nonexistence.

** looking around, most people seem to have this, with the switch permanently stuck at “off”. I don’t envy that. But to stop thinking once in a while would be nice.

And echoes with the sound of salesmen…

Yeah yeah… I probably sound like I’m on some kind of guy-rag lately. But I feel like ranting, so ranting is what I will do ;-)

At work some of us got into a random product-ideas-sales-suggestions discussion over email, passing around the @everyone list. I started writing a quick reply with a few ideas, and somehow it ended up turning into a fullpage rant on salesmen.

I think it had something to do with all the sales douches that kept calling and pestering me all day.

One of them, who I’d met at the RTECC last week*, rang me to talk about an FPGA project I mentioned that “may” be in the pipeline, depending whether or not we get awarded the contract. He tried to cajole a contact email address out of me, which I rather firmly declined, reiterating that “dude, I don’t even know if this project exists or not yet. How about, give me your phone number, and I’ll call you up when or if we have anything to do along those lines.” Sure enough, not 5 minutes later, I get an email (presumably, having no luck coaxing one out of me directly, hunted around on our website) from this same tool wanting to set up a meeting to discuss our “application requirements” for the aforementioned non-existent project. I briefly considered melting his socks with a reply of the type likely to melt socks, but I had shit to do, and had enough of my time wasted already.

On our own side we (meaning not me – DM and a few other guys) just got this whole online-ordering thing set up, which will be great. I don’t know about the average joe, but when I see a product listed somewhere with “$Call” after it, that says to me either

  • it’s so new that they don’t even know what to charge for it yet (meaning both “sales price has no correlation whatsoever to what it actually costs to make” and “bleeding-edge, expect bugs”)
  • it’s a not-yet-existing product, which means either in-development, or “there’s no such product, we just stuck a feeler out to estimate the market for this”
  • “if they make you ask, you don’t wanna know” – pricing may be determined in part by how interested I sound on the phone.

At any rate, what it means is I’m going to waste the next 20min. haggling with the slimy sales douche on the other end of the line trying to justify the price and/or upsell me to the Super Duper version and 3e+08 accessories. I’d go out on a limb and say that most technical folk, when they commit to ordering something, already have a pretty good idea of what they want, and want to get it done with and get back to what they were doing. For me, that’s why I dread that call to the Sales Douche. I’m busy. I want to order it and get back to getting my shit done. Meanwhile, the Sales Douche starts out by trying to wheedle out the sensitive details of my intended application (hey dude, sign an NDA and we’ll talk), how many of my end product I intend to sell** and when (I don’t know, it doesn’t exist yet), blah blah blah. He wants to “talk about it” exhaustively first, like some kind of pre-purchase marriage counselor: “Do you, design engineer, take this ADC, to sample and hold, in sickness and in health, ’til the Nyquist frequency do you part?” He wants to be my buddy, he wants to add me to his mailing list, he wants to know if there are any other engineers in the building he can call and harass, and what are their phone numbers?

After enough lying about the application, quantities, etc. and all that runaround, I finally get some parts ordered. But I know it doesn’t end there, oh no. Now begins the year+ of callbacks, that same horny sales douche wanting to know if this week is the week I’m going to be ready to order those 10,000 units.

On the bright side, I’m getting my very own intern next week. OK, so that means taking a bunch of time off my own projects to babysit mentor the new guy, but maybe I can also task him with answering my phone and telling sales douches to piss off. (Only kidding folks. We’re also going to have him stripping wires.)

* I went for the educational stuff – e.g. there was a great talk on CAN-bus/CANopen by esd electronics (these guys were purely informational, not trying to hawk something – my hat’s off) – but killed time in between by wandering around the exhibitors’ booths. Man, you wouldn’t believe these guys, jumping down your throat before you’d even had time to scan enough of the poster behind them to figure out what their company does. I think now I know the feeling a lone Hot Chick gets in a roomful of horny adolescent males.

** 10,000. Always 10,000. If s/he ever finds out the 5 samples I’m buying are really all I need, since we’re only building 3 prototypes for in-lab use or a one-off experiment, I’m probably not even going to finish the sentence before the phone clicks in my ear. All right, exaggerating…but only slightly ;-)

Compress track by external program

You’ve cared for it, you’ve babied it, you’ve glued it back together a few times, you’ve limped it along, blown the dust out, wiggled and jiggled it back to workingness, and as it went south, prodded ever more carelessly hoping to get back any response, any sign of life, and ultimately, watched it go up in a little puff of dark smoke. Now you’re coming to terms with the fact that your favorite piece of kit is no more. Now it’s an organ donor; maybe you’ll just leave it on the curbside, or maybe you’ll try to salvage what you can.

I guess the same could be said sometimes for interpersonal relationships, fragile little things that they are. When one fails, as they sometimes do, I have this bad habit of looking at it in terms of preconditions/postconditions: the net result of this association having existed. It’s a hard thing to define: it often leaves knowledge, and an unquantifiable set of memories. But knowledge is all too often meaningless without an application, and memories are just whisper dolls floating on an acid canvas, falling away at the speed of forget. Ten years out, 90% of anything not logged is lost. Is it wrong to think of a former friendship or et cetera, when it’s unrecoverably gone and it just doesn’t matter anymore, in terms of what you’re able to salvage from it, what good, if any, came of it, and/or what tangible evidence of its existence is left over at the end?

Maybe I should try not to think that way, because it’s a real kick in the nuts to realize that after so much time and effort expended, when all is said and done, you have not much to show for it after all.

Motorola E815 hacking

Yay, it is done. This phone kicks ass! I ran into some weird problems at first, not mentioned by any advice forum / tutorial / etc., so I wrote this up to hopefully save people with the same issues a lot of debug work.

This entry is here for Google (and ultimately, fellow E815 owners) to find. This document is written for “clueful n00bs”. If you’re modding your phone, it stands to reason that you just got it; otherwise it would be modded already, probably by you, and you wouldn’t be bothering reading guides like this. Everybody is a n00b once, this isn’t something to be ashamed about (despite what 99% of other guides / forums will insinuate). “Clueful”, though, means you know how to read (and re-read if necessary), use Google, follow links to other guides, and find a forum to ask a clear, concise question if you need to. (Don’t ask me! I don’t have time to answer 1000 emails a day.) Not everything is listed here!

Enabling all the stuff VZW crippled:

This is done by flipping bits in the phone’s seem files, most easily by using someone’s already-written seem editor (I used p2kseem.exe). Tutorials for this exist all over the place, so I’m not going to try and reproduce them. What I can do is document the peculiarities I encountered, so that those experiencing the same issues can Google, find this, and save themselves a bunch of time. Keep reading if…

You can’t connect to your phone;

Can’t put the phone in suspend mode using ‘HUBME’ menu code (only needed if you’re not using PST);

Hacky tools (e.g. seem editors, P2KCommander, etc.) report ‘Connected’ but lock up /quietly fail / do nothing / spit weird errors / show a blank screen when you attempt to access the seems (or whatever else you’re doing);

There is no “Accessories Interface” ever installed under Motorola USB Device.

Hacking flow:

To do anything to a shiny new E815 phone, the general flow of operations is as follows:

  1. Obtain a USB cable for the phone
  2. Install the E815 and P2K drivers, using whatever method you prefer
  3. Verify that “Motorola USB Modem” appears in Device Manager when you plug in the handset
  4. Get phone to switch modes from “USB Modem” to “Motorola USB Device” with a list of USB interfaces
  5. Verify that the “Accessories Interface” enables and gets installed by Windows
  6. Fire up your hacky tools and have fun!

The USB Cable:
Google for it, search Ebay, etc. Ideally, you want the Motorola OEM cable WITH charging port (it allows you to plug your phone’s charger into the cable and access the phone while it’s “off” and batteryless, very useful if careless hacking around has bricked your phone!) NOTE: Not all “OEM” cables are created equal! Not all Motorola OEM cables have a charge port; unless your vendor specifically says that it does, you can’t assume anything. My pig-in-a-poke Ebay cable turned out to be one of those without a charge port; part# SKN6311-AAKN4011A. This usually comes with the Motorola Phone Tools CD, but again, check with your vendor and make sure, if you want that software, whether it is included.

Don’t plug in your phone yet! (If you did, impatient bastard, probably nothing bad will happen, but we don’t want to unnecessarily confuse poor old Windows with devices it doesn’t recognize yet. Let’s get those drivers installed.)

Installing the drivers:
UPDATE 2006/10/09: Dan points out a Motorola developer tool that comes with (and may install for you!) the necessary drivers; it also fixes the “p2k-based hacky tools can’t connect to phone” problems.

You can do this one of a few ways. Probably the overall best way is to download a free program called UID Extraction Tool from developer.motorola.com. It was at this url last I checked (8/1/2007). It’s large (a 5MB download or so, but still less than Motorola Mobile Phone Tools (MPT)), but includes all the drivers.

The easy-but-bloated way is to install Motorola’s Mobile Phone Tools (MPT) (if you’re lucky, it came along with your USB cable); it will install all the drivers for you.

The more involved way is to download a “driver pack” someone’s already ripped & zipped; you’ll have to point Windows to .inf files yourself, but less wear & tear on your CD-ROM drive, if you care. You can get a driver pack from the downloads section of motomodders.net (registration required to download), or Google for “E815 drivers” or “E815 driver pack”, etc. If you go the MPT route, make sure to run its LiveUpdate until you’re patched up to the latest version.

Whichever way you go, plug the cable into your computer, THEN plug the cable into your phone. The phone should beep-beeeep; Windows detects a new device(s). If you went the MPT route, you probably go make yourself some tea right now while Windows grinds for a few minutes and auto-installs the device(s). If DriverPack, same thing, except you might have to point windows to one of more *.inf files when it asks for drivers (follow the DriverPack instructions, if any).

Verify “Modem” installation:
In any event, when all the grinding stops you should get a “Motorola USB Modem” under Modems in Device Manager when you plug in the handset. Now, “modem” is kind of a misnomer here, since it’s actually going through this whole USB -> emulated serial port -> emulated AT modem interface clusterf*ck (if you’re a USB developer, you’re probably with me on this one! ;-), but that’s what they give you, so that’s what you’ll be using. If you’re not getting this, or worse, you’re getting a generic “USB Device” with a yellow exclamation mark after 5-10 seconds, something is wrong. Make sure nothing else phone-related is running when you plug in the handset. In particular, on my machine MPT has this nasty habit of not exiting when it’s been closed, deciding instead to stay around as an unkillable (as Administrator! How’s that?) zombie process until the computer is rebooted. Try rebooting (or failing that, careful application of Reset switch) and plugging in the handset again when Windows returns to life. Leave Device Manager open for the next step.

Switch over from “USB Modem” to “Motorola USB Device” and all its interfaces:

If you already have a “Motorola USB Device” showing in Device Manager with about 3-5 drivers listed under it, and one of them is “Accessories Interface”, congratulations! You can skip this section. If not, keep reading. Is is these interfaces, not the “modem”, that your favorite tools will use to communicate with your phone and work their magic.

Once your phone successfully shows up as a “modem” in Device Manager, there are several approaches to trying to bring up all the necessary USB / diagnostic interfaces; hopefully one of them will work for you. Different strokes for different folks, it seems — what works for one may not work for another depending on software versions, cell carrier, firmware revision, etc. Indeed, the reason I’m bothering writing this is that all the other tutorials out there didn’t work for me. (If you just want one “guaranteed method”, drop down to the Motorola UID Tool method below. One of these other methods is probably faster, but they don’t work on 100% of phones.)

  1. Magic Hacky Tools method: Fire up your hacky tools (p2kseem or whatever), and carefully watch Device Manager. Some such tools should cause the phone to switch over. Again, if Windows hounds you for drivers (DriverPack people), point it to the .inf files that come along with p2k.sys.

  2. Hypterterminal Method: Note, this may only work for older / non-Verizon phones (my VZW 815 doesn’t bring up the Accessories Interface with this method). Once you have the “modem” appearing, connect to using Hyperterminal or similar. At the terminal window, type AT+MODE=8 and press Enter. The phone should switch to USB mode. (This is probably the method most hackytools use; it’s also what PST, described below in case nothing else works, does to switch modes initially.)

  3. Handset Suspend method: With your phone at the home screen, press the Menu button and then QUICKLY key in 048263* (that’s Menu + 0 + HUBME + *) as soon as the menu appears. If it’s working right, you should hear beeps (or DTMF tones) as you key them in, and the menu screen should not change. If punching buttons causes you to select through the menus, or they appear on-screen as a dialed number, back out to the Home screen and try again. (You have to punch all the keys relatively quickly for the phone to recognize them as a special code.) When successful the phone should ask for an Opcode; enter 54* when prompted. The screen should immediately go dark. Your phone is now in Suspend mode, and will stay in this mode as long as you leave it flipped open. Close the flip to exit Suspend mode.

    For the insatiably curious, you can explicitly verify Suspend mode after the screen goes dark by pressing the camera button on the side of the phone; this will turn on the backlight so that you can see the “Success!” message on-screen, indicating successful placement into Suspend mode. Be warned though, once the backlight is on it will stay stuck on for as long as you are in Suspend, so I don’t recommend doing this before a long night of hacking (it will drain your battery).

    Check Device Manager for the necessary interfaces; if they do not appear, continue to…

  4. Motorola UID Tool: Thanks Dan for this information (see comments below). You can download a free program called UID Extraction Tool from developer.motorola.com. It was at this url last I checked (8/1/2007). Upon starting, it switches the phone over to USB/p2k mode AND enables Accessories Interface. It probably does this the exact same way as “PST” below; so no need to scrounge for pirated software :-) As a bonus, it comes with all the necessary drivers (so no more scrounging for DriverPack, either).

  5. Tool of last resort – PST: If none of the above will bring up the necessary USB interfaces, you need to somehow acquire a program called Motorola PST. Current versions are at least 7.xx. (There are other programs called *PST; for example, Qualcomm’s QPST will also recognize your phone, but not enable any special interfaces – you need the Motorola PST program.) PST is copyrighted commercial software; I can’t give any advice on how to obtain such a thing, I can only say that there are a lot of cracked copies floating around Google and the phone-modding boards. Anyway, if this mystical PST software were to be installed, and you were to run “Phone Programmer” from its menu group with your handset plugged in, it would enable three diagnostic interfaces, including the necessary “Accessores Interface”.

    Note for developers: If some wonderful person were able to fire up a USB sniffer (e.g. USBSnoopy or SnoopyPro) before running PST and enabling these interfaces, and save the log, I or another USB guy could probably throw together a program to replicate that “magic” communication and eliminate the need for PST and all the associated Googling, broken RAR files, spyware concerns and/or Russian crack sites entirely. The modding world needs this! Unfortunately, I’ve installed and uninstalled so many random/questionable/homebrew USB devices on my machine, these tools won’t even work correctly on it anymore. Thanks to UID Tool, we don’t really need this anymore :-)

Run the hacky tools:
What you do from here depends on the specific hacky tool(s) you are using. I’m not going to try to keep up with them all; they are numerous.

Problems In Brief:

1) Seem Editor (etc.) doesn’t do anything / freezes up / just sits there: If you (like me) have “tried everything” and every seem editor known to mankind just sits there with a blank screen, and you’re sure you installed the drivers and all that basic stuff, go into device manager and make sure the following interfaces have been enabled (by programs talking to the phone, or Suspend mode) and appear under Motorola USB Device:

Data Logging MCU Interface
Test Command Interface
Accessories Interface

You may see additional interfaces listed, depending on your configuration, but make sure the Accessories Interface at least is present. This was my problem, none of the methods except PST (even suspending the phone) enabled this particular interface, even though the rest (USB control, data, test…) were enabled.

2) Generic “USB Device at USB Device” (yellow exclamation marks) in Stop Devices menu or Device Manager: This appears to be a Windows problem, not a phone problem (powercycling the phone won’t help). Reboot, wait a while and try again. Make sure no phone-related tools (e.g. MPT, including stuck zombie processes) are running. Also, sounds stupid, but never hurts to mention: make sure the data cable is completely and straightly connected to the phone. Both sides may not always “click” into place reliably, resulting in Windows detecting “something” but not being able to talk to it.

3) P2KMan – “failed changing volume” with E815: Don’t use P2KMan to read the filesystem; it won’t work. BitPim will though.

Interfaces I got with…
P2Kseem:
Communications Class – Control Interface
Communications Class – Data Interface
Data Logging MCU Interface
Test Command Interface

PST:
Data Logging MCU Interface
Test Command Interface
Accessories Interface

UID Tool:
Data Logging MCU Interface
Test Command Interface
Accessories Interface