Repositorio maestro para la administración de librerías de Altium Designer usando únicamente archivos:
.SchLibpara símbolos esquemáticos.PcbLibpara footprints de PCB
El objetivo de este repositorio es mantener una base de componentes simple, ordenada, trazable y colaborativa, utilizando Git como sistema de control de versiones.
Este repositorio define una forma de trabajo estandarizada para:
- Centralizar las librerías de componentes
- Evitar duplicados y versiones dispersas
- Mantener trazabilidad de cambios
- Facilitar colaboración entre desarrolladores
- Reducir ruido en el repositorio excluyendo archivos temporales y generados automáticamente por Altium
La fuente de verdad de las librerías es este repositorio.
Este repositorio almacena únicamente archivos de librería editables y documentación asociada.
.SchLib.PcbLib.md- scripts o utilidades de soporte, cuando aplique
.IntLib- archivos de salida de fabricación
- archivos temporales
- respaldos automáticos
- historial local de Altium
- carpetas de outputs generados
Se recomienda organizar las librerías por tipo de componente y familia funcional.
galio-pcb-libs/
│
├─ .gitignore
├─ README.md
├─ CHANGELOG.md
├─ docs/
│ ├─ conventions.md
│ ├─ review-checklist.md
│ └─ workflow.md
│
├─ libraries/
│ ├─ passives/
│ │ ├─ resistors/
│ │ │ ├─ resistors.SchLib
│ │ │ ├─ resistors.PcbLib
│ │ │ └─ README.md
│ │ ├─ capacitors/
│ │ │ ├─ capacitors.SchLib
│ │ │ ├─ capacitors.PcbLib
│ │ │ └─ README.md
│ │
│ ├─ connectors/
│ │ ├─ usb/
│ │ │ ├─ usb.SchLib
│ │ │ ├─ usb.PcbLib
│ │ │ └─ README.md
│ │ ├─ terminal_blocks/
│ │
│ ├─ ics/
│ │ ├─ mcu/
│ │ ├─ power/
│ │ ├─ analog/
│ │ └─ interfaces/
│ │
│ ├─ electromechanical/
│ │ ├─ relays/
│ │ ├─ switches/
│ │ └─ displays/
│ │
│ └─ modules/
│ ├─ esp32/
│ ├─ lora/
│ └─ sensors/
│
└─ archive/
└─ deprecated/
Se trabaja únicamente con .SchLib y .PcbLib como archivos principales.
Cada carpeta representa una familia lógica de componentes.
Todo cambio debe quedar registrado en Git mediante commits claros y revisables.
Los nombres, descripciones y estructura deben seguir convenciones comunes.
La rama principal solo debe contener librerías revisadas y aprobadas.
Usar nombres simples, estables y descriptivos:
resistors.SchLibresistors.PcbLibusb.SchLibusb.PcbLibstm32_mcu.SchLibstm32_mcu.PcbLib
Evitar nombres como:
Library_Final_v3.SchLibNuevaLibreria_okahora_si.PcbLibcomponentes_actualizados2.SchLib
Sí, Git recuerda todo; no hace falta ponerle ansiedad al nombre.
Usar nombres en minúsculas, con _ si es necesario:
terminal_blockspower_managementble_modules
Se recomienda seguir una convención consistente que permita identificar rápidamente:
- fabricante
- número de parte
- encapsulado o footprint
- variante funcional
Ejemplo:
STM32F103C8T6_LQFP48AMS1117_3V3_SOT223USB_C_16P_MIDMOUNTR_0603C_0805
Cada carpeta de familia debe contener, idealmente:
- un archivo
.SchLib - un archivo
.PcbLib - un
README.mdopcional con notas específicas
Puede incluir:
- criterio de nomenclatura
- datasheets de referencia
- notas de uso
- limitaciones conocidas
- historial importante de cambios
main= versión estable y aprobada de las librerías
Toda modificación debe hacerse en una rama separada:
feat/nueva-familia-usbfeat/stm32-symbolsfix/footprint-rj45refactor/passives-naming
- No hacer push directo a
main - Toda integración debe realizarse mediante Pull Request
- Una rama debe enfocarse en un cambio concreto
- No mezclar correcciones, refactors y componentes nuevos en la misma rama si no están relacionados
git checkout main
git pull origin maingit checkout -b feat/usb-connectorsAgregar o corregir símbolos y footprints dentro de la familia correspondiente.
Validar antes de hacer commit:
- nombres correctos
- pines correctos
- numeración de pads correcta
- correspondencia contra datasheet
- polaridad clara
- silkscreen y courtyard razonables
- descripción legible
- que no se hayan agregado archivos temporales
git add .
git commit -m "feat(usb): add USB-C connector symbols and footprints"git push origin feat/usb-connectorsAbrir PR hacia main con:
- resumen del cambio
- componentes agregados o corregidos
- referencia al datasheet
- notas de validación
Solo después de revisión técnica se aprueba el merge a main.
Los archivos .SchLib y .PcbLib no son ideales para merges complejos. Por ello:
- evitar que dos personas editen la misma librería al mismo tiempo
- coordinar responsables por familia de componentes
- dividir el trabajo por carpetas o bloques funcionales
Cada PR debe ser lo más acotado posible.
Todo componente nuevo o modificado debe estar basado en documentación técnica oficial.
No deben subirse al repositorio:
History__Previews- outputs de fabricación
- logs
- backups
- temporales
- exports automáticos
Antes de aprobar un cambio, revisar:
- nombres de pines correctos
- tipos eléctricos coherentes
- número de pin correcto
- símbolo claro y legible
- designator y comment bien definidos
- dimensiones correctas según datasheet
- pads correctos
- pin 1 claramente marcado
- silkscreen útil
- courtyard razonable
- origen bien colocado
- nombre de footprint consistente
- nombre correcto del componente
- relación símbolo-footprint coherente
- familia correcta
- sin archivos basura añadidos al commit
- Mantener una librería por familia, no una sola mega biblioteca universal
- Documentar excepciones o decisiones especiales
- Hacer commits pequeños y descriptivos
- Revisar diffs antes de hacer push
- Usar
archive/deprecated/para retirar contenido obsoleto sin borrarlo abruptamente - Crear tags de versión cuando exista un lote estable importante
Se pueden manejar tags estables por fecha o por release interno:
libs-2026.03libs-2026.03-r1libs-2026-q1
Esto permite congelar una versión de librerías para proyectos productivos y mantener trazabilidad.
Este repositorio busca priorizar:
- orden
- claridad
- colaboración
- estabilidad
- mantenimiento a largo plazo
La meta no es solo guardar archivos, sino construir una base reutilizable de componentes confiables para diseño electrónico.
En otras palabras: menos “¿quién movió mi footprint?” y más ingeniería con flujo.
Definir responsables por familia o por disciplina, por ejemplo:
- administrador general del repositorio
- responsable de símbolos
- responsable de footprints
- revisores técnicos
Esto ayuda a evitar cambios sin dueño y decisiones de diseño tomadas al estilo “feeling-driven development”.
Este repositorio debe considerarse la referencia oficial para el equipo de diseño electrónico.
Cualquier librería local, temporal o experimental debe validarse antes de incorporarse a main.
Si un componente no está aquí, para efectos del proceso, todavía no existe oficialmente.