Resistor & Capacitor Values; Engineering Notation

I can remember searching the component database at my employer in 1980. A 1 uF capacitor could be called:
1 uF, 1uF, 1.0 uF,1.0uF, 1MFD, 1 MFD, 1.0MFD or 1.0 MFD (for example) and trying to search the database for parts would drive me nuts. I think that some smaller capacitor values were worse because people might use uuF instead of pF. Please do not give me grief about the Greek letter “mu” for “micro” as I don’t think the 1980 database could handle that at all. I do not know if this forum can handle it, and I don’t feel like trying to dig up the special character.

On a consulting job within the last year, the problem was less severe only because the inventory was much smaller in a much smaller company. But sorting with Excel was still an exercise in frustration. So the problem had not really been solved in 39 years.

In my own schematics I try to use engineering notation to indicate values for resistors and capacitors. For example 1e-6 for a capacitor or 20e+3 for a resistor. Spreadsheets readily accept scientific or engineering notation as a number, so the result is a BOM which is easily sorted. Of course the value of a resistor or capacitor does not fully describe it, but if your sorting can easily group all of the 1 uF capacitors together (for example) it is much better than if it cannot.

I stock a fair number of parts in my own lab. I keep them in plastic bags according to value. For example ceramic chips in bags by value. (Except that I think Y5V ceramic capacitors belong in the garbage.) :-):grinning: When I build a board, I sort the BOM according to value. So when I assemble a board, I (theoretically at least) should not need to go back and forth between bags of components.

Now, many people (including non-technical and some engineers) don’t like to use or cannot understand this notation, so the value in K ohms or M ohms or pF could be included in an additional field. It seems to me that BOMs these days typically have plenty of columns (fields.)

FYI, engineering notation is basically scientific notation in which the exponent is a multiple of +3 or -3. That aligns with the usual prefixes of Meg, Kilo, milli, micro, nano, etc.

Does anyone think this is a good idea, or a bad idea?

You will find acceptance limited. Scientific notation, of which, engineering notation is a subset, is not commonly used for components.

However why not use a variant of scientific notation, where capacitors are expressed as pF and resistors as Ω by giving the first two digits of the value followed by the number of zeros following. This is of course the familiar resistor (and sometimes capacitor) band code. So 0.1μF is 104, and 22kΩ is 223. The advantage of this is it is already used either in colour band form or letter form on components. Even SMDs. So already accepted.

I’m sure you can program a BoM sort routine that decodes the value.

Incidentally with the advent of tighter tolerances, I’ve seen 3 digits plus number of zeros. Some SM resistors I received the other day were 1002 = 10kΩ.

Not me! I gave up on programming :expressionless:

I think that micro and kilo really ARE engineering notation.

I think that your idea indeed sounds better than the “status quo”. But you have these different ways to read a few digits, according to how many digits you have (4 total digits for 1% versus 3 digits for 5%) codes.

100K, 104, and 100e+3 are all the same value, but the 104 takes a little more thinking.

On a tangent…I have had co-workers who did not know the resistor color code…I wonder how many KiCad forum members do not know it…

Easy. Pick off the last digit, call it e. Then multiply the first 2 or 3 digits as a number by 10^e. After a while people recognise commonly used values. 104 caps for decoupling power lines. 220 caps for crystal oscillators. 103 resistor networks for pullups. I have a bunch of resistor networks recovered from computer boards with a heat gun, a metal sink and whacks. They are all labelled this way: 102, 472, 103, 333. They are even ordered this way on Aliexpress with the addition of number of pins.

I wrote this a few days ago: convert EE notation.py (1.0 KB) if you can provide me a list with all the missing prefixes you’d also like to be converted point me to it i’ll add it.

To the notations itself, I like the SI prefixes as a quick notation, i am lazy after all and it’s just faster to write 6k2 instead of 6.2e3.
The 103 one is rather used to mark components, i haven’t come across someone to use them in a actual BOM and i would take it as an error because without context there is no way you can tell what is actually meant.
The MFD was used by my older colleagues and i also can find but replace it the instant i see it in the database i have here, as soon as i see it. It’s always a pain to search non standardized databases, you would be surprised how many ways there are to sum up a component somewhat differently so you cannot find the gosh darn thing for sure. Even if you know it’s there. Thats why there are so many duplicates in the databases i guess.

Regarding ceramic C I am using following notation: 1p, 2p2, 10p, 22p, 100p, 220p, 1n, 2n2, 10n, 22n, 100n, 220n, 1u, 2u2.
In uF range I assumed that standard symbol I use for lowest voltage element I am using.
So 10u menas 10uF/6.3V X5R 0603. If I need higher voltage element I mark it adding the voltage to symbol so 10u16 is X5R 0805, and 10u25 is X5R 1206.
With 4.0.7 I was using 10u/16 but V5 don’t accepts ‘/’.

I sort my BOMs (LibreOffice) by two columns: First the special column to global order elements and then the value column. To have Capacitors in increasing value order my special column for Capacitors contains:
6G1 for 1p…
6G2 for 10p…
6G3 for 100p…
6G4 for 1n…
6G5 for 10n…
6G6 for 100n…
6G7 for 1u…
6G8 for 10u…
6G9 for 100u…
Fortunatelly I don’t use 1000u… :slight_smile:

I have prepared my LibreOffice bom-ing many years ago (to make boms from Protel). Now when moving to KiCad I just adopted it. To do that I had (not really but I preferred) to modify one bom script (I don’t know Python) but people here helped me to reach what I wonted.

Obligatory reference:

In practice, I have found it to be generally true. If the problem is that people don’t follow a common standard, adopting a new obscure standard means people don’t follow two standards, and worse, you have to deal with a mix of standards.

SI prefixes are an international standard, so use that. It’s 2020, making data “easier for the computer to handle” shouldn’t be a reason.

8 Likes

There are SI prefixes mu, p, k, n as you mentioned, using Greek and Latin (ASCII) letters. Engineering notation uses E + or - and the exponent applied to 10. You will label them as you like. I dislike engineering notation with the E + or - and exponent. They make labels harder to read. In the past, when organizing parts, I printed labels in LibreOffice Writer word-processing software and learned it allows me to print labels with the Greek and Latin letters mixed together, so I can make, for example, “100 kΩ” and “20 nF” labels. If you don’t have fancy word-processing software, just use u instead of mu.
I dislike the notations @kenyapcomau and @Piotr use. They are unfamilar to me. I prefer SI labels. I insist on a space between the numeral and the prefix, but no space between the prefix and the letter.
I have little experience w/ BOMs, but I thought their parts were ordered numerically R1, R2, R3, … and the value field just tags along beside so you can look in the right bin when picking parts.

Russ

That cartoon is great.

Very true, but

Just using the Si prefixes is not enough. Is it 0.001 uF or 0.001uF or 1 nF or 1nF or 1.0nF or 1000 pF etc. I think that all of those are Si Prefixes. The computer can handle it if the programmer can handle it. I suppose some programmers can handle it, but it seems a significant added task. I am ignorant about spreadsheets other than Excel.
I forget about (I think I used Lotus 1-2-3 in the mid '80’s). But I think they all read exponential notation. (??).

The idea is to have it as short as possible to make it easier to position it at schematic among elements and wires. The labels at part storage drawers are rather close to part description and not to part identification so no 22p but 22pF NP0 50V 0603.

I don’t label my parts bags with exponential notation. I do keep the distributor (Mouser or Digikey for example) labels on the individual bags and put those into bigger bags with ranges in K and nF as required to be clear. At least for me, translating from 2.2 nF to 2.2e-9 requires almost no thinking. The thing of it is…when I calculate a design with a spreadsheet, I need to use those exponential notations anyway. I am not going to enter “0.0000000022” (I don’t even want to count those zeroes NOW.) If I try to calculate with K ohms in a spreadsheet, I get an error.

I think using Excel you can do everything I can with LibreOffice spreadsheet and more. I don’t expect free software (OpenOffice, LibreOffice) has more possibilities then Microsoft Office.

I didn’t noticed that we are speaking about calculating something. I supposed we are speaking about KiCad schematic.
If I need to have a spreadsheet to calculate something I am writing in one cell the description what to be written in next cell. Like:
Rhi[kΩ]: 47
Rlo[kΩ]: 3.3
The cells with values I mark with background colour: green - input data, blue - important intermediate data, yellow - output data, no color - intermediate data.

If I try to sort those sort of entries

in Excel I will get nonsense.

It sounds like you have your own new “standard”. I am not really proposing a new standard, but rather proposing use of a format which is already standard in spreadsheets. The other thing about it is that the spreadsheet enforces a degree of uniformity. If the spreadsheet reads the number, that is what you need. Those others come out as text, in which inserted spaces, trailing zeroes, or 0.001 uF versus 1 nF all make for different results.

Rather than have special columns for capacitors (and perhaps for others) I would first sort for Resistor, Capacitor, etc. If I happen to have a resistor which is 1e-3 or a capacitor which is 1e+3, that will sort right in.

I think you are saying programming is easy. I have no idea how to do what you describe, other than by hand. My method requires no added work if you are familiar with engineering notation.

I guess my point is that we need to calculate in the design process, and spreadsheets are very useful for that. That is a reason for exponential notation to be very familiar.

But then you have to convert it (or otherwise process it) later if you want to use it as a number.

You can force it to interpret all data as text.

So do I.
For resistors in my special column I have 6C1…6C7 (don’t ask why exactly this values - historical reason).
So when I select in menu Data->Sort and then select the first key to sort to be column G (it is my column with this sorting order values like 6C1…6C7, 6G1…6G9) ascending and next key be column B (it is column with part symbols like 3k3, 1n8) ascending then I have first all resistors and then all capacitors. And if 1k, 2k2, 4k7 (selected by one column G value) are sorted alfabetically the are sorted according to their values.

Not for me. I prefer to multiply in equation the SI capacitance result (in F) by 1E9 if I expect values in range of nF and see result like: C1[nF]: 237.4 then to see C1: 2.374E-7.
In first case I feel at once what is the value in second absolutely not.

Hi, Piotr

I don’t understand all of what you are saying, but it does sound like it requires additional processing of the component value in the spreadsheet. I am basically keeping all values in farads and ohms and letting the numbers do the work. I don’t need to insert factors for kilo or nano. I think that requiring conversion factors significantly increases the room for error.

One disclaimer: The weight of my experience for the last 20 years or so was with ExpressPCB. I found that labeling the schematic components with engineering notation worked well. I could output a BOM and read it into my spreadsheet. It usually happens that I will revise my schematic and then output a new BOM; cycle this many times. If post processing the numbers is required, then I would need to do it each time I produce the BOM from the spreadsheet.

I have done a few designs in KiCad but admittedly have not taken these designs as far. I don’t see why there would be a conceptual difference. I am pretty sure that the component value will go into the BOM in the same way that I typed it.

Everybody should try it at least once. A mind logical enough to design hardware can also design software.

I’m actually not serious about using band notation in digit form in the value field as I want the schematics to be readable. For that I favour the SI units with the modification of using prefix to double as a decimal point as necessary. (Edit: the advantage of doing this is a decimal point easily gets missed on the schematic and even more so on the silkscreen.) Exponential notation is too much typing and clutters schematics.

Sort limitations of spreadsheet programs be damned. If it can’t be done in the spreadsheet’s scripting language, or by an extension, then run a program over the CSV output to generate what you want. It’s not hard to make the sort tolerate spaces, embedded prefix meaning a decimal point, variations like u for μ, presence of absence of F or Ω, and output a standard form. But I draw the line to exclude uu, or μμ, and MFD. Makes a nice little programming exercise.

But being the paragon of laziness and not having large enough Bills of Materials to care, I’ll leave it to someone else.