Skip to content
This repository has been archived by the owner on Oct 30, 2024. It is now read-only.

RFC - Rearranging Symbol Libraries #1402

Closed
SchrodingersGat opened this issue Jul 10, 2017 · 116 comments
Closed

RFC - Rearranging Symbol Libraries #1402

SchrodingersGat opened this issue Jul 10, 2017 · 116 comments

Comments

@SchrodingersGat
Copy link
Contributor

SchrodingersGat commented Jul 10, 2017

Following on from the work by @jkriege2 here

Library Name Description Previous Name Notes
Basic Devices
device.lib Symbols for simple devices e.g. Resistors / Capacitors / etc. device.lib
elec-unifil.lib ???
led.lib LED device.lib
motor.lib Electric motors
power.lib Power symbols (global) special symbols library
pspice.lib Spice symbols
relay.lib relays
switch.lib Buttons and switches
Connectors
connector.lib Connectors, general purpose conn.lib Could be expanded in future e.g. connector_usb.lib / connector_JST.lib
Virtual
graphical_symbol.lib
logo.lib
mechanical.lib
Semiconductors (simple)
diode.lib Diodes
transistor.lib Transistors infineon.lib
thyristor.lib Triacs, thyristors, SCR, etc
valve.lib Valves
Displays
display_character.lib Character displays e.g. 16x2 text display display.lib
display_dot-matrix.lib
display_graphic.lib Pixel-based displays, etc display.lib
display_segment.lib 7-segment, LED bar displays, etc display.lib
Transformers
transformer.lib General purpose transformer
transformer_power.lib Power transformers
transformer_pulse.lib Pulse transformers
transformer_signal.lib Small signal transformers
Sensors
sensor.lib Sensors that do not fit other categories sensors.lib
sensor_audio.lib
sensor_current.lib Current shunts / transducers / etc sensors.lib / ir.lib / allegro.lib
sensor_gas.lib Gas sensors, various sensors.lib
sensor_humidity.lib Humidity sensors sensors.lib
sensor_magnetic.lib Hall effect, etc sensors.lib
sensor_motion.lib Accelerometers / gyro sensors.lib
sensor_multi-function.lib Sensors that sense multiple things e.g. temperature / pressure sensors.lib
sensor_photo.lib Light sensors, RGB, photoresistors sensors.lib
sensor_pressure.lib sensors.lib
sensor_temperature.lib sensors.lib
sensor_voltage.lib
sensor_touch.lib
Audio / Video
audio_adc_dac.lib digital_audio.lib
audio_codec.lib Audio Codec IC
audio_misc.lib Miscellaneous audio parts
video.lib gennum.lib
Linear Devices
amplifier_operational.lib Amplifiers (general purpose) linear.lib / analog_devices.lib
amplifier_audio.lib Audio amplifiers
amplifier_current_sense.lib Current sense amplifiers (separate to e.g. hall-effect current sensors)
amplifier_difference.lib Difference amplifiers linear.lib
amplifier_instrumentation.lib Instrumentation amplifiers linear.lib
amplifier_rf.lib RF amplifiers
amplifier_video.lib Video amplifiers
comparator.lib Comparators linear.lib
References
reference_current.lib Precise current reference references.lib
reference_voltage.lib Precise voltage reference references.lib
Power Management
battery_management.lib Chargers, etc texas.lib
power_distribution.lib e.g. load switch, ideal diode controller, hot-swap controllers, etc power_management.lib, texas.lib
power_supervisor.lib Reset monitor ICs, etc power_management.lib
power_monitor.lib Power monitoring devices
power_protection TVS, ESD protection, etc
Regulators
regulator_module_ac-dc.lib Modular ac-dc devices ac-dc.lib
regulator_module_dc-dc.lib Modular dc-dc devices dc-dc.lib
regulator_linear.lib Linear regulators
regulator_linear_controller.lib Linear regulator controller
regulator_switching.lib Switching regulators
regulator_switching_controller.lib Switching regulator controller
regulator_switching_module.lib Stand-alone switching modules
regulator_pwm_controller.lib PWM ICs
regulator_pfc.lib Power factor correction
Mixed Signal
analog_switch.lib Analog switches
adc.lib Analog -> Digital adc-dac.lib
dac.lib Digital -> Analog adc-dac.lib
digital_pot.lib Digital potentiometers xicor.lib, texas.lib
adc_dac.lib Devices with both ADC and DAC
Drivers
driver_led.lib LED drivers worldsemi.lib
driver_gate.lib FET gate drivers, half / full bridge drivers zetex.lib / ir.lib / power_management.lib
driver_motor.lib Motor control ICs texas.lib (?)
Timers
timer_oscillator.lib Timers / oscillators / crystals Oscillators.lib
timer.lib linear.lib e.g. NE555
timer_pll.lib PLL ICs linear.lib e.g. NE567
timer_rtc.lib Real time clock
Logic
logic.lib Generic logic symbols for gates / inverters / etc
logic_cmos40xx.lib 4000 series logic cmos4000.lib / cmos_iee.lib Previously split into IEC / IEEE variants. New library format could allow different graphical representation for each symbol, so users can choose which symbol they want
logic_74xx.lib 74 series logic
logic_translator.lib Level converters, shifters, etc texas.lib
isolator.lib Optocouplers / capacitive isolation / etc opto.lib, texas.lib
isolator_analog.lib Analog isolators If needed
CPLD / FPGA
cpld_xilinx.lib xilinx.lib
cpld_altera_intel.lib Altera.lib
fpga_xilinx.lib xilinx.lib
fpga_altera_intel.lib Altera.lib
fpga_actel.lib actel.lib
fpga_atmel.lib atmel.lib
Microcontrollers / Processors / DSP
mcu_8048.lib
mcu_8051.lib
mcu_atmel_avr Atmel AVR series atmel.lib
mcu_atmel_avr32 Atmel 32-bit AVR series atmel.lib
mcu_atmel_arm.lib Atmel ARM micro atmel.lib
mcu_cypress.lib cypress.lib
mcu_cypress_arm.lib cypress.lib
mcu_microchip_pic10 PIC10 series microchip_pic10mcu.lib
mcu_microchip_pic12 PIC12 series microchip_pic12mcu.lib
mcu_microchip_pic16 PIC16 series microchip_pic16mcu.lib
mcu_microchip_pic18 PIC18 series microchip_pic18mcu.lib
mcu_microchip_pic24 PIC24 series microchip_pic24mcu.lib
mcu_microchip_pic32 PIC32 series microchip_pic32mcu.lib
mcu_freescale_hc.lib Freescale HC series
mcu_freescale_coldfire.lib Freescale coldfire motorola.lib
mcu_infineon_c166.lib
mcu_nxp_arm.lib NXP microcontrollers nxp_armmcu.lib
mcu_parallax.lib
mcu_renesas.lib
mcu_st_stm32.lib STM32 micro stm32.lib
mcu_st_stm8.lib STM8 micro stm8.lib
mcu_texas_msp340.lib MSP340 micro msp430.lib
cpu_intel_x86.lib
cpu_amd_x86.lib
cpu_motorola_68000.lib motorola.lib
cpu_motorola_powerpc.lib motorola.lib
cpu_zilog_z80.lib Zilog.lib
dsp_microchip_dspic33 DSPIC33 series microchip_dspic33dsc.lib
dsp_texas.lib Texas DSP (digital signal processors) dsp.lib
dsp_freescale.lib Freescale DSP dsp.lib
soc_texas_arm.lib Texas ARM SOC (system on chip) texas.lib
Memory
memory_card.lib SD card, etc
memory_vram.lib Volatile RAM (DRAM / SRAM) memory.lib
memory_nvram.lib Nonvolatile RAM (MRAM / FRAM) memory.lib
memory_eeprom.lib EPROM / EEPROM memory.lib
memory_flash.lib FLASH memory memory.lib
memory_controller.lib Memory controller ICs memory.lib
Interface (Comms)
interface_can_lin.lib CAN / LIN interface.lib
interface_ethernet.lib Ethernet interface.lib / wiznet.lib
interface_i2c.lib I2C interface - expanders, isolators, etc nxp.lib, texas.lib
interface_lvds.lib LVDS interface.lib
interface_spi.lib SPI interface
interface_telecom Telecom interface interface.lib, silabs.lib
interface_uart.lib RS232/422/485 interface interface.lib
interface_usb.lib USB silabs.lib, texas.lib
interface_video.lib Video interface broktree.lib
RF Interface
rf_am_fm.lib AM / FM transceivers rfcom.lib
rf_bluetooth.lib Bluetooth ICs etc rfcom.lib
rf_antenna.lib RF antenna
rf_misc.lib Miscellaneous RF parts that don't fit elsewhere
rf_frontend.lib RF front-end paraphenalia
rf_wifi.lib WiFi
rf_zigbee.lib Zigbee / XBee

  • allegro.lib - sensor_current.lib
  • analog_devices.lib (AD623/AD8236/AD42x to amplifier.lib [all int amps], ADE7758 to ic_misc.lib, ADuM6000 to regulator_switching.lib, ADuM7758 to interface???.lib)
  • bbd.lib (all audio delay lines so audio_misc.lib)
  • bosch.lib - move to sensor_motion.lib
  • brooktre.lib - move to interface_video.lib
  • contrib.lib move to an interface_<x>.lib
  • ftdi.lib - mostly to interface_usb
  • gennum.lib - (all to video.lib: gs9020 is video processor, gs9025 is cable driver, and gs9032 is video serializer)
  • graphic.lib
  • infineon.lib (all to transistors.lib since they're just FETs with some protection built in)
  • intel.lib - moves to multiple libs, mcu_intel.lib, oscillator, interface
  • intersil.lib - moves to driver_gate, driver_motor, etc
  • ir.lib (AU* parts to sensors_current.lib and all others to gate_driver.lib)
  • LEM.lib - move to sensor_current.lib
  • maxim.lib - split into many libs. A lot of temperature sensor parts
  • microchip.lib - mostly interface chips
  • nordicsemi.lib - to interface_bluetooth
  • nxp.lib (all to interface_i2c.lib)
  • onsemi.lib - esd_protection / transistor
  • philips.lib - mostly interface_<x>
  • powerint.lib (CAP* parts to ic_misc.lib and all others to regulator_switching.lib)
  • RFSolutions.lib
  • silabs.lib (cp2xxx to interface_usb.lib, si3210 to interface_telecom.lib? [it's an analog phone interface], the rest to the newly created interface_am_fm.lib)
  • siliconi.lib (actually Siliconix parts; driver_motor.lib and analog_switch.lib)
  • supertex.lib (reference_current.lib, power_distribution.lib, regulator_switching_converter.lib, regulator_linear.lib; see below)
  • texas.lib (too big to write out here; see post by @evanshultz on 22 Jul below)
  • wiznet.lib (to interface_ethernet.lib)
  • Worldsemi.lib (to driver_led.lib)
  • Xicor.lib (all to digital_pot.lib)
  • zetex.lib (move to gate_drivers.lib)

Edits

  1. @SchrodingersGat changed library names to singular
  2. @SchrodingersGat changed microcontroller_ to mcu_
  3. @SchrodingersGat renamed audio_adc_adc.lib -> audio_adc_dac.lib
  4. @SchrodingersGat renamed processor_ to cpu_
  5. @SchrodingersGat split amplifier.lib into multiple libraries
  6. @SchrodingersGat added power_distribution, power_conditioning, battery_management
  7. @SchrodingersGat added more amplifier categories, added transformer categories, improved regulator categories
  8. @SchrodingersGat added suggestions by @poeschlr
  9. @evanshultz divested modules.lib, gennum.lib, bbd.lib, silabs.lib, texas.lib, worldsemi.lib; noted reset ICs in power_management.lib; fixed a few typos
  10. @SchrodingersGat updated power_ libraries
  11. @SchrodingersGat added rf_ libraries
@SchrodingersGat
Copy link
Contributor Author

Some notes on the (currently unassigned) libs above

  1. I don't like the word "periphery" - I don't think it is technical enough
  2. The remaining unassigned libs are mostly manufacturer specific. We will have to go through them and decide what functions to assign.

@SchrodingersGat
Copy link
Contributor Author

Rather than making new tables below, please make any adjustments (after discussion) to the table in the comment at the top.

@SchrodingersGat
Copy link
Contributor Author

SchrodingersGat commented Jul 10, 2017

Plurals

Plural naming does not work well for everything. However I think that non-plural naming can work in all cases. Should we enforce a non-plural naming scheme or is anyone really passionate about plural names?

Examples of plurals that just sound wrong

  • memories_flash.lib (memory_flash.lib)
  • interfaces_ethernet.lib (interface_ethernet.lib)
  • dacs.lib (dac.lib)

I propose we name function_extra_sub, otherwise we get a weird combo of functions_extra_sub, function_extra_subs

@evanshultz
Copy link
Collaborator

powerint.lib has most parts that are internal FET regulators, and also a few line discharging parts that I think go into ic_misc.lib.

You need audio_misc.lib or something like that for SRCs, mic preamps, etc.

Where do CODECs go? I assume audio_adc_dac.lib, but what else would go there? Why not call it audio_codec.lib?

More libraries are needed for SMPSs more. Break out DC-DC internal FET (regulators) from DC-DC external FET (controllers). We already have a lot of each. And generic SMPS controllers like UC3842 and NCP1200 deserve their own library. They're a different ballgame than integrated DC-DC parts. Lastly, where do PFC controllers go? They're a totally different type of IC (unless you're talking about single-stage flyback or oddball topologies like the Clark converter of PFC buck) and I think they should be in their own library.

Lastly, transformers are a total wasteland. I'd like to find a paradigm that works. I've tried 3 categorization schemes and none of them worked well for me. Does anybody have anything that works? It may take multiple libraries to cover AC line frequency, SMPS, gate drive, ethernet, and all other kinds of magnetics. Additionally, do coupled inductors go here or elsewhere? What about common mode chokes? Do those have their own libraries?

@jkriege2
Copy link
Collaborator

Some more comments:

  • singular is fine for me
  • audio_codec.lib is fine with me
  • if we split DC-DC, then we should also have a separate lib for switched-cpacitor voltage converters (e.g. LTC660) ... name could be regulators_switching_capacitance.lib
  • For simple magnetics like coils we don't need a separate lib (the footprints should simply use the pin-numbers 1 and 2 and they match to the generic symbol L, ...).
  • For common-mode chokes we should have a separate lib ... could we have something like filters.lib that could also contain other "filtering" components (most of them again fit the generic symbol, but some just might be different)??? Not sure about that
  • For transformers also not sure: maybe transformer_power.lib (for larger ones, 220V->xyV) and transformers_small_signal.lib or transformers_pulse.lib (for audio, ethernet, ... is that the correct english name? I translated from the german "Überträger" using Wikipedia ;-)
  • several libs were lost I feel (battery_management, relay_drivers.lib transistor_arrays.lib ...) I will try and add them this evening ...

Best,
JAN

@ghost
Copy link

ghost commented Jul 10, 2017

+1 for singular.

There were suggested libraries starting quarz... that I don't see in the table above. Would these better as piezo... since the material used might be crystal or ceramic? Whether it's a filter or a resonator, it is the piezoelectric effect that they have in common. But if we stick with the suggested name, it should be quartz... (I'm being very picky 😉)

What will be left in device if inductors move to a separate library as @jkriege2 suggests above? Just resistors and capacitors? If so, why not split into two libraries for clarity?

How about shortening microcontroller_ to mcu_? Anyone using one ought to recognise the acronym.

peripheral instead of periphery?

@SchrodingersGat
Copy link
Contributor Author

SchrodingersGat commented Jul 10, 2017

  1. Alright, singular names it is (I have updated the table accordingly).
  2. I also prefer mcu_ as a prefix (we already have soc_ and dsp_
  3. Should processor_ be shortened to cpu_?
  4. Regulators (switching). Agreed that we need to arrive at some categorizations here
  5. Transformers - my knowledge here is lacking, but happy to split into multiple categories when we arrive at some good names
  6. peripheral.lib - the suggested contents of this library still seem very broad to me. Can we narrow this down?
  7. piezo / quart / etc - what is the function of this library (not the material it is made of!) Is it oscillators? Resonators? Other?

@ghost
Copy link

ghost commented Jul 10, 2017

piezo / quart / etc - what is the function of this library (not the material it is made of!) Is it oscillators? Resonators? Other?

OK, I see that there have been edits on the other thread that prompted my comment 😄 : #1398 (comment)

That now suggests two libraries:

oscillators.lib (formerly: Oscillators.lib)
quarzes_filters.lib (formerly: Oscillators.lib)

If oscillators.lib is passive piezoelectric oscillating devices (i.e. standalone crystals, crystal resonators with built-in capacitors and ceramic resonators), that's good. But it should not IMHO include oscillator ICs.

Piezoelectric filters can be made of quartz crystal or ceramic material. So quartz_filters.lib does not sit well with me.

@pointhi
Copy link
Collaborator

pointhi commented Jul 10, 2017

After a quick look

  • audio_adc_adc.lib -> audio_adc_dac.lib
  • sensor_multiple.lib -> sensor_combined.lib is probably a better name. Probably someone has a even better one

@SchrodingersGat probably kicad-symbols would be a more appropiate name for the repo than symbols

@nbxmike
Copy link

nbxmike commented Jul 10, 2017

You may as well combine the NXP and Freescale processors to NXP or you will need to do it later.

@evanshultz
Copy link
Collaborator

evanshultz commented Jul 10, 2017

@pointhi Can you please check you first bullet? It looks like the same lib name is repeated.

Unless someone objects, I volunteer to propose the divesting of the following libs:

  • analog_devices
  • infineon (which purchased IR)
  • intersil
  • on semi
  • zetex

@evanshultz
Copy link
Collaborator

@SchrodingersGat Is the above a "all edit" table? Or are we making suggestion with one person (you, I assume) as mediator and editor of the table?

@evanshultz
Copy link
Collaborator

Finished with analog_devices.lib, infineon.lib, and zetex.lib.

I like the idea of separate diode libraries IF the symbols are different. For example, regular Si diodes, Schottky/SiC, zener/TVS, etc. This will result in the least amount of unique symbols so it's the easiest to maintain.

@diggit
Copy link
Collaborator

diggit commented Jul 10, 2017

In my opinion, there is no need for device specific symbols for such simple devices. Generic symbols are IMO enough. There is only several permutations with so few pins. Then splitting them does not make sense, they could all got to device.lib.
At least my workflow is:

  1. find online which components suits the purpose and is available
  2. choose correct generic symbol (it is fast, keywords like: gds, zener, tvs, diode, fet, npn, .... works well)
  3. rename symbol to match selected device
  4. assign correct FP

I have similar workflow for linear regulators, because in 70% cases, the one I choose to use is not in libs.

@SchrodingersGat
Copy link
Contributor Author

@evanshultz - @pointhi Can you please check you first bullet? It looks like the same lib name is repeated.

Read it again ;) It's a very subtle mistake that I made in the original table, which I have now fixed.

@SchrodingersGat
Copy link
Contributor Author

@SchrodingersGat Is the above a "all edit" table? Or are we making suggestion with one person (you, I assume) as mediator and editor of the table?

It's open to editing, but only after discussion here :) Please add edit comments at the end of the table as I have been doing, if you edit anything!

@SchrodingersGat
Copy link
Contributor Author

Amplifiers

Currently the amplifier organization is pretty rough. What are some broad categorizations for amps?

  • amplifier_instrumentation
  • amplifier_current_sense
  • amplifier_chopper
  • amplifier (everything else)

@gauravjuvekar
Copy link
Contributor

gauravjuvekar commented Jul 11, 2017

@SchrodingersGat Er, I don't think others can edit the post. That's not how github works.

@SchrodingersGat
Copy link
Contributor Author

SchrodingersGat commented Jul 11, 2017

Sorry @gauravjuvekar you are completely correct - please ignore that. I forgot that I have special powers.

image

Update : Make suggestions and I will add them to the table :)

@jkriege2
Copy link
Collaborator

I think you need to be Member or Owner to edit a non-own post.
JAN

@gauravjuvekar
Copy link
Contributor

gauravjuvekar commented Jul 11, 2017

Can we create separate rf_* libs. I know that currently there aren't many rf components in the libs, but there are a large number of categories in rf out there.

Eg, see https://www.digikey.com/products/rf-wireless/en
I guess rf_{trasmitters, receivers, transceivers} could go in interface_rf, but there are a lot of non-interface components like amplifiers, mixers, couplers, variable attenuators, active balun ICs, switches, etc.

@SchrodingersGat
Copy link
Contributor Author

@gauravjuvekar this is a good idea, I was only just thinking where antennae would go. I agree there is a place for rf_ libs separate from RF ICs

@gauravjuvekar
Copy link
Contributor

gauravjuvekar commented Jul 11, 2017

I think antenna should also be a separate library. It also has a lot of subdivisions (type: patch, chip, wire), surface / edge mounts, etc

@jkriege2
Copy link
Collaborator

@SchrodingersGat: some comments about amplifiers:

  • amplifier_current_sense shouldn't/couldn't that go to sensor_current?
  • I'm missing amplifier_difference (for components like these: http://www.ti.com/lit/ds/symlink/ina157.pdf) ... basically OPAMPS, but with (calibrated) resistors inside
  • Also maybe amplifier_power and/or amplifier_highvoltage? (not so sure about these ... but there we could put e.g. opamps that also work at 100V ...)

Just ideas ...

JAN

@SchrodingersGat
Copy link
Contributor Author

SchrodingersGat commented Jul 11, 2017

amplifier_current_sense shouldn't/couldn't that go to sensor_current?

I think that's fair.

I'm missing amplifier_difference (for components like these: http://www.ti.com/lit/ds/symlink/ina157.pdf) ... basically OPAMPS, but with (calibrated) resistors inside
Also maybe amplifier_power and/or amplifier_highvoltage? (not so sure about these ... but there we could put e.g. opamps that also work at 100V ...)

I've added _difference, _power, and _rf but I don't think that _highvoltage is a category all on its own...

@SchrodingersGat
Copy link
Contributor Author

Added transformer categories.

@jkriege2
Copy link
Collaborator

will people know that amplifiers.lib or ic_amplifiers.lib contains OPAMPS? ... i.e. are all amplifiers OPAMPS or one of the others ...

JAN

@poeschlr
Copy link
Collaborator

poeschlr commented Jul 11, 2017

What about (multi purpose) signal level translators and signal isolators? (currently they might go into the logic libs but i think giving them a separate lib might be a good idea.)

The symbols of the LEM.lib could go into the sensor_current lib.
Edit:
There is only one symbol in bosch.lib that could go into sensor_motion.
Another lib with only one symbol: contrib.lib should go into one of the interface libs. (It is a modem) Maybe we would need some sort of interface_special lib?
The symbols in brooktre.lib are video interfaces. New lib interface_video (or should we have one lib per video standard?)
Only a few symbols are in bbd.lib. some could go into oscillator but most might need a new lib called delay (don't really know what these components are used for.)
The ftdi.lib could be renamed into interface_converter or we split it up.

@seppestas
Copy link

As a standard diode is a Passive component, arguably a LED is also a passive component, because electrically it behaves the same as a not light emitting diode. Just Saying.

Is a standard diode even considered as a passive component ? (since on Farnell website, there is the "Discrete Semiconductor" (with diodes) and "Passive Components" with capacitors, resistors, etc)

According to Wikipedia an LED (and all other type of diodes and semiconductors) is as active well, however I don't have a reference to a more authoritative source. My rule of thumb: if the function on the current and/or voltage is linear, it's passive. This of course only holds true for ideal devices.

@SchrodingersGat
Copy link
Contributor Author

@poeschlr I agree with your direction for device.lib - independent of whether we keep this name or decide on something else, this is exactly the purpose of this library.

@suzizecat
Copy link
Contributor

suzizecat commented Jul 25, 2017

@seppestas

According to Wikipedia an LED (and all other type of diodes and semiconductors) is as active well, however I don't have a reference to a more authoritative source. My rule of thumb: if the function on the current and/or voltage is linear, it's passive. This of course only holds true for ideal devices.

Well, in this case, a capacitor and an inductance (choke ?) aren't passive since the only component which i know to have a linear function between voltage and current is the resistor (U=RI) (capacitor and inductance got differential terms)

According to the same good old Wikipedia

Components incapable of controlling current by means of another electrical signal are called passive devices. Resistors, capacitors, inductors, and transformers are all considered passive devices.

In this case it's a little bit tricky with the diode, but i guess the point is that the behavior of the LED isn't the same if the current flow through anode-cathode direction or cathode-anode direction...

@evanshultz
Copy link
Collaborator

One other thing to mention is that Infineon makes former International Rectifier parts like IRS2092. This is a gate driver, yes, but it's specifically intended for audio applications. Is it best to put this kind of part with other gate drivers, or in audio_misc.lib?

@poeschlr
Copy link
Collaborator

poeschlr commented Aug 3, 2017

Back to the device lib discussion. (sorry)

We could name the current device lib something like basic_device. (would make it clearer what to expect in this lib.)


I noticed that the switches lib currently only holds generic switch symbols. (It seems in the current master all switches finally moved from device into switches lib. Therefore the latest patch for 4.x that adds this lib by default is really needed)
This means the switches and connectors lib currently only hold generic devices. (I would argue the logic family libs are also generic)


To clearly mark which libs hold generic devices we could also add generic as prefix/suffix.
This might make it easier to write the klc for the new naming convention and use of default footprint field.

We could then simply state that all symbols added to any lib that is not marked as generic needs the footprint field assigned and they also need to be named by the manufacturer part number. (or mpn base for devices produced by different manufacturers using different conventions for option fields.)
We could then even use travis to help checking this. (simply have a rule that is deactivated for libs having the generic prefix/suffix.)

Yes this would deviate from splitting the lib purely by function but a clearer KLC might be worth this tradeoff.

@evanshultz
Copy link
Collaborator

transistors.lib is massive. Almost 6000 lines as of now. Would it be good to split this up? I would think we would want to keep parts with the same symbol together so we can use ALIAS and for better maintenance, so perhaps we split by transistor type. transistor_fet.lib, transistor_bipolar.lib or transistor_bjt.lib, transistor_igbt.lib, etc. What do you think?

@evanshultz
Copy link
Collaborator

The transistor library could even be split more than I mentioned above, if desired. We could separate single and multiple transistor parts. This could result in transistor_fet.lib and transistor_fet_array.lib, or something. The core symbols would need to stay in sync fir visual purposes, but then it wouldn't be such a maintenance issue since the final symbols would still be unique in each library. Just an idea.

@jcassette
Copy link

jcassette commented Nov 17, 2017

In this repository, the connector symbol library has been renamed from conn to Connector (refer to first post)
However in kicad-footprints the libraries have been renamed from Connectors_*.pretty to to Conn_*.pretty
What is the logic behind this?.. I think it should be better to keep the same name everywhere.
Edit: I realize this should rather be addressed in kicad-footprints maybe

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests