“Open for Business” Is a Bad Tagline

March 21st, 2011

I am sorry I’m not going to tomorrow’s Wisconsin Innovation Network meeting, where the talk will discuss the Wis4Biz initiative and how it will “reinforce Wisconsin’s Open for Business message”.  This slogan is not something we should want to reinforce.  I would like to learn more about how anyone thinks this campaign makes sense.

“Open for business” sounds like something you say when you’re just barely functioning, as in “the building was severely damaged in the storm, but we’re still open for business”.

It also sounds backwater.  (Nothing against West Virginia, but they use the same slogan.)  The dollar-store-style sign furthers the backwater image.

The slogan sounds like something that would appeal to someone who a) is not formally educated, b) worked mostly in government not business, and c) knows business is very important but does not understand how it works.

The bizarre thing is that Wisconsin already had a good brand image of good work ethic, good values, and stoicism.  Wisconsin was specifically mentioned as a good place to locate a shop in the book “Execution: The Discipline of Getting Things Done” for these reasons.  We should be building on this already-existing image instead of something taken from an off-the-shelf sign.

Will Information Technology and Automation Result in a Long-Term Shortage of Jobs?

March 16th, 2011

Dave and Chris of the Amp hour asked on their last show whether technology will eventually cause a shortage of jobs.

If computers could replace almost all human jobs, it would be a good thing because that would mean we could have the same goods and services we have today without human work.  This is something people have dreamed about since time immemorial.

When the industrial revolution started, it meant people theoretically could work much less and have the same lifestyle they would have had in agricultural economy.  They could spend the rest of the time relaxing with their families.  Instead, though, society chose to keep working and produce way more goods and services.

Something similar happened when we went from a hunter-gatherer society to an agricultural society.  We may be seeing something similar today going from an industrial society to an information/automation society.  If it plays out the same way, the amount of goods and services we can produce will continue to increase.  We are right to be asking the big questions of how we want that go forward and what we want to do with our new-found production capabilities.

Buy Your Own Tools

March 14th, 2011

My first job was at a small private company.  They were frugal about spending money on tools.  I recall being frustrated at having to spend time wandering around looking for tools.  I had a notion to bring my own tools, but my colleagues told me it wasn’t a good idea because with tools in short supply they would be easily lost to well-meaning people who would borrow them and forget to return them.  The company eventually bought me new tools, provoking some resentment from other employees who didn’t have new tools.  I had no idea at the time that the on-the-job training I was getting in circuit design and debug was worth way more than the cost of some tools and books.

In retrospect, I can’t imagine why I didn’t use my own tools.  Even at a company that is short on tools, if you keep them in a locked toolbox, they’re not likely to be taken.  A very nice set of electronics tools can be had for under $1,000.  That is a modest amount for an engineer.  Even for people working at full-time jobs that claim to provide everything an engineer needs, engineers are still paid for getting things done.  The employer may not notice time wasted searching for tools, but that time is money/experience lost to the engineer who could be using that time to design new technologies.

All engineers make their money by causing things to be worth more than the sum of their parts.  Tools and books are a cost of being an engineer.

Engineer Barbie

February 8th, 2011

From an IEEE article: Preparing Barbie for a High-Tech Career
[Mattel] let the public vote online in January 2009 on Barbie’s next career in its “I Can Be…” series, which aims to acquaint children with a variety of professions. As more than 600 000 votes poured in, Computer Engineer Barbie took a commanding lead over the other choices, which included environmentalist, architect, and surgeon.

Any publicity is good publicity, so I appreciate the efforts of the IEEE member who promoted this.  If Barbie is getting new professions, engineering should be one of them.

If they were going for realism, they could have given her lighted magnifying goggles and a nice button-down short-sleeve shirt with a caliper and tweaker stuffed in the pocket.  The promotional pictures should have her looking down, not right at the viewers eyes.  I do like the narrow glasses, though, which allow her to look over them for reading markings on parts without removing them.  They could also do a product placement partnership with Pepsi by giving her a Mountain Dew.

My vote for Barbie’s next job would be for her to retire and become an historical relic.  Barbie is a goofy toy to begin with, but juxtaposing her with real professions, esp a male-dominated one, make the dolls seem even goofier.  It seems like a toy that was offensive a generation ago and is now just a joke.

Invalid Altera FPGA MSEL Configuration Causes Big Trouble

February 6th, 2011

A recent board I designed used an Altera Cyclone VI FPGA.  This FPGA’s configuration scheme is set by the value presented to the part’s MSEL lines.

There is a table showing how to strap these lines for each configuration scheme.
Configuration Schemes for Cyclone IV E Devices

When I first tried to bring up my board, I had these lines tied in a way that would have been defined for the GX version of this part, but not the E version that I was using.  When I tried to connect by JTAG, I could observe lots of traffic on the JTAG lines, but the utility gave me the conf_done failed to go high message, which from what I can tell means almost anything that prevents communication with the FPGA.  The FPGA held various I/O lines high or low without apparent order. Within a single bank, some lines would be weakly pulled up, some lines would be high or low, and some would be at intermediate values.  I put resistors on the lines that were high or low and found a 100 ohm resistor would usually pull them most of the way up or down but not all the way.  The way so many lines were pulled up or down made me think that I had a footprint error, major soldering defects, or some kind of fabrication error allowing planes to touch some of the signal vias.

One of the lines being pulled low was my processor’s reset line.  (Maybe it was a bad idea to connect it to the FPGA, but I had spare pins so I went to town connecting nets that I didn’t plan to use on the FPGA.)  I couldn’t cut the line because it ran on an internal layer the whole way.  I ended up removing the processor, thinking some kind of error with the processor was causing its reset line to be held low.  I was disappointed to discover that the line was still being pulled low just as strong.  I was considering removing the FPGA too when I discovered the MSEL error.

After fixing MSEL everything amazingly worked.  The MSEL line is the only jumper wire on the whole board now.

The FPGA datasheet says the MSEL lines must be tied directly (not through resistors or driven by another device) to V[CCA] (not to the I/O voltage).  After this, I will always follow any rules related to MSEL lines to the letter.

The Meaning of IPC Cleanliness Designators

January 28th, 2011

An IPC cleanliness designator (defined in IPC J-STD-001) is sometimes called out on assembly drawings.  A common designator is C-22.

The first number indicates the number of board sides that must be cleaned
0 – No cleaning required
1 – Solder side only must be cleaned
2 – Both sides of the board must be cleaned.

The second and following numbers define the types of cleanliness tests to be performed:
0 – No test for cleanliness required
1 – Test for rosin residues – Used when high solids rosin fluxes are used in assembly.
2 – Test for ionic residues – This is a basic inexpensive test to detect insufficient cleaning.
3 – Test surface insulation resistance (SIR) – This test exposes the assembly to high temperature and humidity to accelerate failure mechanism that lead to shorts.
4 – Test for other organic contaminants – Type and amount of residue is measured, usually using a spectrometer.  This is an expensive test.
5 – Other tests requested by client – Any other testing beyond tests #1 – #4.

It is permitted to call out any combination of test types.  If both sides are to be clean and all tests to be performed, the cleanliness code would be C-212345.

Engineering Mindset Affects View of Precision

January 19th, 2011

Part of learning engineering is learning what requires precision and learning to let go and be imprecise when necessary.

I recall being in Dr. O’Malley’s circuits class at the University of Florida in the mid 90s. He drew an op-amp on the board and said it’s a very high-gain differential voltage amplifier. Someone asked what gain we should use. He said, “You can use whatever big number you want. For this example let’s use, I don’t know, say a million.” Several people laughed thinking it was a joke. O’Malley didn’t appear to understand the laughter. He continued, “You could use a similar number like two hundred thousand or five million. Anyway, that’s not the point. I hope it’s obvious that…”

I was amazed that 200,000 and 5,000,000 were very similar for the purposes of understanding an op-amp, so amazed that I remember it 15 years later. The statement seems perfectly natural now. Engineering has changed my mindset on precision.

This mindset affects aspects of life completely outside of engineering. The other night my wife, who is an attorney, said our baby was 10 minutes away from needing another dose of Tylenol for teething. “10 minutes?” I asked, “The tolerances can’t be that tight. That’s only a few percent of the dose duration.”

“It says 80mg every four hours” she said matter-of-factly, as if quoting the Uniform Commercial Code.

“But it doesn’t give a tolerance. I bet if you plotted the half-life of Tylenol in population of healthy babies, you’d find a distribution with half-lives varying by more than an hour. Even accounting for that, different babies will experience a therapeutic response at different blood concentrations.”

She said she felt more comfortable with a very clearly defined rule. Those tolerances made her uneasy. I felt more comfortable with a system that does not depend on any element having very tight tolerances. I wonder to what extent similar professional mindsets affect the daily lives of people in other fields such as accounting, medicine, science, teaching, and so on.

Quasi-Bidirectional Ports Can Cause Confusion

January 10th, 2011

I had another run-in with “quasi-bidirectional” ports today.  As on the last project where I encountered them, they caused confusion.  Today’s encounter was with the PCA9501 I/O port chip.

They should be called “open-drain outputs with moderate pulls connected to an input”.


They are open-drain outputs and can only be used as input ports by writing a logic high and then reading.

The thing that makes them tricky is the built-in pullup in moderately strong.  In the circuit I encountered today uses a quasi-bidirectional port as an output to drive the base of a ‘3904.  The moderately 100uA pullup is enough to drive the transistor, but I would have to crunch some numbers to know if will work in this circuit over the entire range (the low end) of beta values for a ‘3904.


Adding exteranl pullup is an easy solution in this case because this board’s power budget is not tight.

The tricky part is that quasi-directional ports have a read/write bit, giving the user the impression that it functions as either a push-pull output or a standard input.  The port’s ability to source some current furthers this misconception.

Getting More Power from Power-over-Ethernet (PoE)

January 9th, 2011

A project involving high-power radios powered by PoE prompted me to look into the maximum power you can get from PoE.

IEEE 802.3af PoE – 15.4W max power
IEEE 802.3at PoE+ – 25.5W max power

Both types of PoE can be Mode A or Mode B.

Mode A – Power delivered on TX/RX pairs
Mode B – Power delivered on spare pairs

TI has a circuit to run Mode A and B simultaneously, resulting in a maximum power of 51W. The implementation is tricky because it must balance the current so that neither Mode A or B lines exceed the maximum current.

I would love to hear from someone who has implemented 51W PoE or used other cheats to get > 25.5W over Ethernt.

Low-Value High-Frequency Decoupling Caps Are a Myth

January 4th, 2011

In the past, I used three value-ranges of decoupling on high-speed designs:

  • Bulk: A 10uF or two caps located anywhere
  • Intermediate: Some 0.1uF caps located near the part
  • High-frequency: Some 1000pF located right under the BGA or connected to the power pins directly

You could not get high-value ceramics in small packages, so you had to use low-value capacitors to get the low inductance associated with a small package.

Now 0.1uF ceramics in an 0402 package are a standard low-cost part. I recently had a notion to check the curves to see at which frequencies a 1,000pF 0402 had a lower impedance than a 01.uF 0402:

There is only a tiny frequency range where the impedance of a 1,000pF is better. I would be interested to hear from anyone who knows a good reason to use them low-value decoupling caps today.