Elektuur (& IEC/IEEE) Style Symbols, Octagonal Pads/Vias, Oktizer Plugin

Oh, how we love copyright and licensing problems.

I would believe that the symbols were made to be used and if there were no specific restrictions mentioned, it was self-evident that anyone could use them. Especially because back then they usually weren’t in computer files. Nobody would have thought they would need to be specifically licensed to be used in schematics. But it’s true this is only one interpretation and not 100.00% safe to assume. Still, I would say that the chance of running into problems for redistributing these as KiCad library files is near 0.0%. Probably including these in the official libraries will not happen but a 3rd party library is great. I don’t see any reason why this couldn’t be included in the official 3rd party PCM list. The list (which is the official PCM “repository”) itself can’t violate copyrights in any meaningful way, the worst which could theoretically happen is that the library should be taken off from the list.

In my opinion this is a good comparison, probably even legally. You haven’t copied the symbols exactly, only followed their outlines. It’s legally OK to do that for fonts.

On the other hand, because the magazine still exists, have you thought about asking them directly? One short “nice job” comment in a discussion doesn’t yet tell if anyone has actually thought about it deeply, especially someone who has something to do with the original designs or copyrights. But there might be someone who knows something.

2 Likes

Fonts are a good example as even though the alphabet has limited options on style, the dimensions of a symbol cannot be just copied and just given a new name to dodge copyright. There have been a few legal cases.

1 Like

Hi @mgyger, neither @davidsrsb nor I alleged anything. I approved of his comment to “check copyright”, assuming he meant “check for copyright”, after all, as others have commented: who wants to get caught up with that can of worms?

4 Likes

Technically, the symbols (definitions, meta data) are derived (and adapted to look like old Elektuur symbols) from my Generic symbols that are converted from my SPICE symbols, which in turn are derived from the IECsymbols for LTspice, which were generated from SVG symbols (also in the public domain), mostly following international standards.

The symbols are designed using 0.18mm (7mil), 0.25mm (10mil), 0.35mm (14mil) and 0.5mm (20mil) strokes, which were the standard pen (diameter) sizes at the time. Since stencils were used, the bounding boxes of shapes were the defining factor (e.g. a circle would have an outside diameter of 2mm, and with a 0.25mm pen the inside diameter would be 1.50mm). This is different from international standards; they define the stroke center line, independent of any stroke width.

Most is geometrically constructed from the diode symbol, which is 4mm×4mm square (the original is slightly rectangular, I think) with a 4mm×1mm semiconductor region (and therefore the triangle is not equilateral with 60°), drawn with the 0.25mm pen, like the wires. The capacitor uses the same 4mm×1mm rectangle; the unfilled positive pole drawn with a 0.35mm pen and overdrawn with a 0.25mm pen to get sharper outside corners (again assuming using a standard stencil). Envelopes are 0.5mm, in the case of BJTs with 7mm outside diameter. Non-flow arrows are done with the 0.18mm pen to get a pointier tip.

Ideally, these geometrical constructions would be optically corrected (e.g. a filled triangle would be made slight smaller than an unfilled to appear the same size, or a circle would be made slightly larger like the overshoot of O in a font). The original symbols possibly were, to some extent.

These symbols were not scanned or copied but actually independently coded (for example, the rectangles used cannot be drawn with the KiCad 5 GUI) and are defined by strokes and not outlines (which is common now).

1 Like

Oh man, these look really good.

1 Like

Version 0.6.2 is now available via PCM and also from the repository directly (please see the first post of this thread).

To use the corresponding small demo project (same circuit as mentioned above from the Elektor TV video for LTspice but using ngspice):

  1. Optional: Tools → Plugin and Content Manager → Repository → Libraries → Elektuur Style Symbol Library → Install → Apply Changes → Close → Close
  2. Download demo project from the repository in own folder and extract all or use File → Unarchive Project…
  3. Open the *.kicad_sch file with KiCad 6 Schematic Editor
  4. Open the *.wbk file using Inspect → Simulator… → File → Open… (#8644)
  5. Simulation → Settings… → OK (#9874)
  6. Simulation → Run Simulation

To use (already installed 64-bit) LTspice instead of ngspice, replace above:

  1. Place → Add Text → .tran 10 → OK in Schematic Editor
  2. File → Export → Netlist… → Spice → Create Netlist and Run Simulator Command
  3. Plot Settings → Visible traces or View → Visible traces in LTspice, select V(1) and V(2) while holding down Shift or Ctrl key
1 Like

I know this is an old post, but… this depends strongly on where you are. In some places, it’s 100% not true.

First attempt at rounded octagonal pads (radius ratio is currently 25%, same like the 130 mil terminal pads were, but it almost looks like the 100 mil and 160 mil component/terminal pads weren’t actually rounded other than because of the processes then):

just loaded this library , boy thats brings me back, I think my last subscription to elektor was anout 15 years ago , nice , now just need a circuit with 20 transistors!!

1 Like

While they had their own custom made dry transfers for circuit symbols, they might have used Reber/Edding R41 dry transfers for some PCB pads:

1 Like

4 Likes

Where can I download those footprints?

The image above is from a single generated test footprint (but you should be able to copy pads and resize with context menu Properties… → Custom Shape Primitives → Polygon → Transform Primitive → Scaling factor and adjust Size X and Hole size X in General):
octagons.kicad_mod (27.1 KB)

For more footprints, see also the 2nd part of this posting:

1 Like

R41! :heart_eyes:
I’m in Italy, that remembers me the old times at school :grinning: and by the way, by that time Elektor was published in Italian as well

1 Like

Continuing the discussion from Elektuur Style Symbol Library.

Oktizer

Oktizer is an Action Plugin to create octagonal looking pads and vias in the PCB Editor. It works somewhat similar to how KiCad 6.99 is currently doing teardrops but it also modifies pads.

Currently, there is no GUI (edit the python file to change corner rounding [radius 0.05 mm ≈ 2 mil] or chamfer ratios [29.29% and 20.71%]) and it needs to be copied to the plugins folder of KiCad 5.1 or KiCad 6.0 (it doesn’t need its own folder, though), or it can be installed using PCM on KiCad 6.0. Thermal reliefs may not work correctly with the generated custom pads and may need explicit tracks (for KiCad 6, chamfered rectangles could be enabled instead by uncommenting some code).

Before running it, the PCB needs to be prepared first with either:

  • Tools → Cleanup Tracks & Vias… → ☒ Merge co-linear tracks
  • Edit → Cleanup Tracks and Vias… → ☒ Merge overlapping segments

and after selecting the desired pads and vias (or else it modifies all round/circular/oval/rectangular/square PTH pads and vias):

  • Tools → External Plugins… → Oktizer

or use its tool button. Undo/Redo should work. If only board graphics shapes are selected, the circles and rectangles/squares are changed to (filled) octagons (also useful for creating silkscreen to be copied to the Footprint Editor in KiCad 6, beside pads themselves). For (explicitly selected) NPTH pads (mounting holes), it could be necessary to (temporarily) set their pad clearance to the surrounding zone clearance or the copper-to-hole clearance of the board.

oktizer.py (21.7 KB)

Examples:

Example of NPTH rule area (keepout zone):

Example of manually created T-junction (i.e. set grid size to smallest track width):

Example of manually created thermal relief on chamfered rectangle pad:



Elektuur Style Symbol & Footprint Library

The symbols (only) can also be installed on KiCad 6 with Tools → Plugin and Content Manager (PCM). To add the library after installing, use Preferences → Manage Symbol Libraries… followed by Add empty row to table (the + icon) with the Library Path given in the content description.

The libraries and demos are as well in the repository for local installation using Tools → Plugin and Content Manager → Install from File…. The zip files with demo in their name are example projects (use File → Unarchive Project… instead of PCM). Version 0.5.4 are KiCad 5 libraries (that can also be used and migrated in KiCad 6), version 0.6.4 are KiCad 6 libraries. Currently, the symbols are identical except for some arc adjustments and a few added chamfered footprints (and corresponding config files).


Elektuur (now Elektor) style symbols as introduced in the later 1970s (until the early 1990s when they became more angular). The symbol size has been increased by 1.6% (2 mm grid to 80 mil grid) and the pins realigned to a 100 mil grid.

ElektuurKiCad5Example

It’s a generic symbol library (UJT, BJT, JFET, MOSFET, C, D, LED, LDR, Schottky D, Zener D, varicap D, L, P, R, NTC/PTC R, VDR, Re, S, La, LS, Mic, GND, Xtal, F, battery, meter, terminal, jumper, heatsink, opamp, inverter, AND/NAND/OR/NOR/XOR/XNOR, NOT, SCR, triac, plug/socket, TP, arrow) and some single-pad prototype footprints (generated with oktizer.py above) optimized for some specific track widths. Most symbols have alternat(iv)e/multiple shapes (also KiCad-historically referred to as De Morgan conversion).

kicad-elektuur-symbols-demo-0.5.4.zip (50.9 KB)

Recommended settings for KiCad 6.0 (on Windows) [or copy and modify file *.kicad_pro from demo]:

Preferences
    Preferences…
        Common
            Antialiasing
                Accelerated graphics: High Quality Antialiasing
                Fallback graphics:    High Quality Antialiasing
        Schematic Editor
            Display Options
                ☑ Fallback graphics
            Editing Options
                ☐ Automatically place symbol fields
        Symbol Editor
            Display Options
                ☑ Fallback graphics
            Editing Options
                Default line width:  0     mm    0 mil (broken)
File
    Schematic Setup…
        General
            Formatting
                Default line width:  0.254 mm   10 mil
                Pin symbol size:     0     mm    0 mil
                Junction dot size:   Small
        Project
            NetClasses
                Default
                    Wire thickness:  0.254 mm   10 mil
View [or right mouse button]
    Grid Properties…
        Grid:                        2.54  mm  100 mil
        Grid 1:                      0.635 mm   25 mil [text or wires of gate/diagonal alt. shape]
        Grid 2:                      0.254 mm   10 mil [transformer]
Inspect
    Simulator
        Simulation
            Settings…
                ☑ Adjust passive symbol values (e.g. M → Meg; 100 nF → 100n)
                Compatibility mode: PSpice and LTspice

Note: In KiCad 6.99 there is now an alternative to unchecking Automatically place symbol fields (but it will need modification of the Value/Rating/Indicator/IndicatorControl fields of the symbols).

Recommended settings for KiCad 5.1 (on Windows):

Preferences
    Modern Toolset (Fallback)    [✓ select this]
    Preferences…
        Common
            Graphics (Fallback): High Quality Antialiasing
        Eeschema
            ☐ Automatically place symbol fields
            Display Options
                Wire thickness:  10 mil
                Junction size:   40 mil
        Symbol Editor
            Default line width:  10 mil
View [or right mouse button]
    Grid Settings…
        Grid size:              100 mil [50 mil for diagonal alt. shape]
                                        [25 mil for text or wires of gate alt. shape]
                                        [10 mil for transformer]
Eeschema
    Tools
        Simulator
            Simulation
                Settings…
                    ☑ Adjust passive symbol values (e.g. M → Meg; 100 nF → 100n)

Above SVG file was created using File → Plotting… with Default line width of 0.254 mm or 10 mil, Black and White and PDF selected, and after repeated Edit → Select All and Object → Ungroup in Inkscape saved as Optimized SVG.


See also Elektuur Retro Lettering (oktuur.zip for Inkscape/SVG).
See also Getting Started with KiCad EDA - Eeschema Schematic Capture (Elektor TV video).

1 Like

Version 0.0.9 now available in PCM:

Note: This version of the plugin doesn’t run in experimental KiCad 6.99 because of KiCad’s incompatible Python APIs (PCBs modified with the plugin in KiCad 5.1 or 6.0 should be OK in KiCad 6.99).

1 Like

Example PCB based on E-CALL EIC-801 Solderless Breadboard (400 Tie-point), similar to Adafruit Perma-Proto Half-sized Breadboard PCB, SparkFun Solder-able Breadboard or YoMo EPB-M:

octaproto400.zip (29.7 KB)

Colors above are:

Preferences
  3D Viewer
    General
      ☐ Show solder paste layers
    Colors
      ☑ Use colors:
        Silkcreen top:          #F5F5F5FF (White)
        Silkcreen bottom:       #F5F5F5FF (White)
        Solder mask top:        #441A9600 (Opacity: 0)
        Solder mask bottom:     #441A9600 (Opacity: 0)
        Copper/surface finish:  #B29C00FF (Gold)
        Board body:             #000000FF (Black)

More pictures of breadboards (mostly based on patents USD228136S or USD235554S).

1 Like

Does this mean that octagonal pads will be available among existing “pad shape” in 6.0.6 as well? btw, what’s the chamfer size you are using in this plugin?

  1. Take a piece of paper and something to write.
  2. draw a square with inscribed circle.
  3. Make the square into an octagon.
  4. Draw an extra line from the center to a corner of the octagon.
  5. Apply some trigonometry: (1-sin(pi/8))/2 = 0.3086582838174551
  6. Draw a pad:

Yep, 30.8% seems about right.
Edit:, euhm, oops, “about”, but not quite.
It bothered me that the chamfers looked a tiny bit too big, and then I realized I should have taken the tangent instead of the sine: >>> (1-tan(pi/8))/2 = 0.2928932188134525

Edit 2:
Or you can use some proportions. You get the same number with: 1/(2+sqrt(2)) = 0.2928932188134525

5 Likes

For EAGLE import (*.brd, and for added EAGLE libraries *.lbr as well), it’s a KiCad 6.0 standard chamfered rectangular pad shape with now 29.28932188% chamfer ratio (the plugin above uses custom pad shapes to be compatible with KiCad 5 and also support rounded corners; see the comments in the python script above). Altium import uses 25%.

The chamfer ratios used in the plugin are 1-√½ (≈ 29.29%) for squares and √½-½ (≈ 20.71%) for rectangles, which correspond to 1÷1 and 2÷1 side ratios, respectively.

With a pad size of 1+√2 (≈ 2.414) times the track width (or slightly smaller), it allows angles of 135° (instead of ≈ 90°) without using teardrops, as was used by Elektuur/Elektor in the late 1970s until the 1990s. EAGLE’s initial footprints and symbols looked very similar. Since tracks are nowadays much narrower, the plugin uses fillet teardrops to get a similar look, especially if the octagons or rectangles use rounded corners (by default the same as TI recommends for DIL, SOIC, TSSOP, TO-92, etc.).

1 Like