Files
claude-skills/pcb-ai-engineer/references/altium_celestial_library_setup.md
T
creator 8567a2a769 pcb-ai-engineer: add Celestial Altium Library setup reference
Production-ready Windows setup guide for connecting the Celestial
Altium Library (issus/altium-library, ~212k components, 311 views):
- portal.altiumlibrary.com registration & DbLib download
- Git LFS clone of issus/altium-library
- SQLNCLI11 install via official SQL Server 2012 SP4 Feature Pack MSI
  (required by Provider=SQLNCLI11.1 in portal-issued DbLib)
- MSOLEDBSQL 19 as optional side-by-side provider
- network access to db.altiumlibrary.com:1433 (OVH FR, 51.68.218.24)
  with MikroTik + xray/AmneziaWG routing notes
- Altium Designer File-based Libraries Preferences setup
- troubleshooting section covering the misleading 'MS Access required'
  error, z_ views, missing STEP models, etc.
- PowerShell one-shot installer script
2026-04-18 16:11:16 +00:00

553 lines
24 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Подключение Celestial Altium Library к Altium Designer
Полная production-ready инструкция по подключению базы данных Celestial
(`issus/altium-library`, ≈212 000 компонентов, 311 views) к Altium Designer
под Windows. Все ссылки ведут на официальные источники (Microsoft Learn,
Download Center, GitHub). Альтернативы через Microsoft Store и `winget msstore`
не используются — они заблокированы для RU-региона.
---
## 0. Что ты получишь в итоге
- Полная database-library на ≈212 000 реальных компонентов с MPN, supplier
refs, 3D-моделями производителей, параметрической фильтрацией в Altium.
- BOM заполняется автоматически при Place — никакого ручного ввода MPN.
- 311 категорийных views прямо в `Components panel` (Resistors по размерам
пакетов, Capacitors Ceramic/Electrolytic/Tantalum, MOSFETs N/P-Ch,
MCUs, Motor Drivers, Voltage Regulators и т.д.).
- Обновления прилетают автоматически по мере добавления Mark Harris'ом новых
компонентов на облачный сервер.
Объём локальных файлов после клонирования: ≈4–6 GB (в основном STEP-модели
через Git LFS).
---
## 1. Регистрация на портале и получение DbLib
### 1.1. Зарегистрируйся на портале
Открой <https://portal.altiumlibrary.com/> → `REGISTER` → заполни форму.
Email реальный — понадобится для активации и восстановления пароля.
### 1.2. Создай Server Login
Портал разделяет **аккаунт на портале** (твой email и пароль) и **логин к
SQL-серверу** (генерируется случайно, нужен для подключения Altium).
1. Войди на портал.
2. `Server Logins``New Login`.
3. В списке баз выбери `altium_library``Create`.
4. Портал сгенерирует случайные username/password — скачай или запиши их
сразу, второй раз посмотреть пароль нельзя.
**Важно, почему креды случайные:** DbLib хранит их plain-text на диске. Mark
Harris принципиально генерирует их, чтобы ты не вписал свой обычный пароль.
### 1.3. Скачай DbLib
`Server Logins``Manage` → напротив созданного логина кнопка **DbLib**.
Скачается файл вида `Celestial_Altium_Library_-_altium_library.DbLib`
ini-файл с уже зашитой `ConnectionString` к твоему персональному логину.
Открой его в текстовом редакторе и проверь первую строчку после
`[DatabaseLinks]`:
```ini
ConnectionString = Provider=SQLNCLI11.1; User ID=alib_xxxx; Password=...; Initial Catalog=altium_library; Data Source=db.altiumlibrary.com,1433; Initial File Name=""; Server SPN=""
```
Ключевые детали:
- `Provider=SQLNCLI11.1` — SQL Server Native Client 11 (deprecated Microsoft'ом
в 2021, но именно его запрашивает этот DbLib). Будем ставить.
- `Data Source=db.altiumlibrary.com,1433` — сервер Mark Harris'а в OVH France
(51.68.218.24), не Azure SQL.
---
## 2. Клонирование библиотеки
Репозиторий `issus/altium-library` хранит SchLib/PcbLib/STEP локально, база
с параметрами — на облачном SQL. Оба нужны одновременно.
### 2.1. Установи Git с поддержкой LFS
```powershell
# Если Git ещё нет — ставим отсюда (официальный инсталлятор):
# https://git-scm.com/download/win
# В инсталляторе обязательно галочка "Git LFS support" — она по умолчанию включена.
# Проверка:
git --version
git lfs version
```
Без Git LFS клонирование «прошуршит» по указателям, но **STEP-файлы не
скачаются** — вместо них будут текстовые stub'ы размером ~130 байт.
### 2.2. Клонируй репозиторий
```powershell
git lfs install # один раз на пользователя
cd C:\Work # или куда тебе удобно
git clone https://github.com/issus/altium-library.git
```
Клонирование займёт 5–15 минут (≈4–6 GB через LFS).
### 2.3. Положи DbLib в папку репозитория
Скачанный в 1.3 файл `*.DbLib` скопируй в **корень** клонированного
репозитория — рядом с `Altium Database Library V2.DbLib`, `symbols/`,
`footprints/`. Это важно: в DbLib footprint/symbol refs прописаны
**относительными путями**, и Altium ищет их относительно DbLib-файла.
```
C:\Work\altium-library\
├─ Altium Database Library V2.DbLib ← шаблон из репо (не трогать)
├─ Celestial_Altium_Library_-_altium_library.DbLib ← твой, из портала
├─ symbols\
├─ footprints\
├─ STEP\
└─ ...
```
### 2.4. Обновление базы в будущем
Регулярно подтягивай свежие символы и футпринты:
```powershell
cd C:\Work\altium-library
git pull
git lfs pull
```
---
## 3. Установка Windows-зависимостей
Это дно происходящего: тебе нужен **устаревший драйвер Microsoft** из
инсталлятора **SQL Server 2012 SP4 Feature Pack**, потому что DbLib
требует `SQLNCLI11.1`. Плюс Visual C++ Redistributable — без него драйвер
не зарегистрируется в реестре.
Ниже — всё через прямые MSI с `download.microsoft.com`, без Microsoft Store
и `winget msstore` (заблокированы для RU).
### 3.1. Visual C++ Redistributable (x86 + x64)
Если у тебя современный Windows 11 с Visual Studio / dotnet — уже стоит.
На чистой машине ставь обе архитектуры; `x64` не включает `x86`-часть, а
она нужна для 32-битных компонентов драйвера.
Через `winget` (это community source, RU-блокировки не касается):
```powershell
winget install --id Microsoft.VCRedist.2015+.x64 --exact --accept-package-agreements --accept-source-agreements
winget install --id Microsoft.VCRedist.2015+.x86 --exact --accept-package-agreements --accept-source-agreements
```
Или прямые инсталляторы:
- x64: <https://aka.ms/vs/17/release/vc_redist.x64.exe>
- x86: <https://aka.ms/vs/17/release/vc_redist.x86.exe>
### 3.2. SQL Server Native Client 11 (sqlncli.msi) — ОБЯЗАТЕЛЬНО
Это именно тот «старый» провайдер, который записан в DbLib. Он идёт в составе
SQL Server 2012 SP4 Feature Pack и распространяется как standalone MSI.
Elevated PowerShell (запуск от администратора):
```powershell
$url = "https://download.microsoft.com/download/B/E/D/BED73AAC-3C8A-43F5-AF4F-EB4FEA6C8F3A/ENU/x64/sqlncli.msi"
$msi = "$env:TEMP\sqlncli_x64.msi"
Invoke-WebRequest -Uri $url -OutFile $msi -UseBasicParsing
msiexec /i $msi /qn IACCEPTSQLNCLILICENSETERMS=YES
```
Флаг `IACCEPTSQLNCLILICENSETERMS=YES` обязателен для silent install. Без него
`/qn` падает без ошибки, драйвер не ставится.
**Проверка установки:**
```powershell
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\SQLNCLI11" -ErrorAction SilentlyContinue |
Select-Object InstalledVersion
# Должно показать InstalledVersion 11.4.x (или выше)
```
### 3.3. Microsoft OLE DB Driver 19 for SQL Server — ОПЦИОНАЛЬНО
Современный актуальный провайдер. Для Celestial как такового не нужен, но
пригодится для будущих проектов с SQL Server / Azure SQL, и ставится
side-by-side с SQLNCLI11 без конфликтов.
```powershell
# Актуальная GA: MSOLEDBSQL 19.4.1 (2025-05-09)
$url = "https://go.microsoft.com/fwlink/?linkid=2318101" # x64 + Arm64
$msi = "$env:TEMP\msoledbsql.msi"
Invoke-WebRequest -Uri $url -OutFile $msi -UseBasicParsing
msiexec /i $msi /qn IACCEPTMSOLEDBSQLLICENSETERMS=YES
```
### 3.4. НЕ ставь Microsoft Access
Altium при проблемах с OLE DB fallback'ается на ошибку
«requires 64-bit Microsoft Access Database Engine». Это ложное сообщение.
`SQLNCLI11` — это OLE DB Provider, а не ODBC и **вообще не связан с Access**.
Установка Access/ACE ничего не починит и не требуется.
---
## 4. Сетевой доступ до сервера
Сервер `db.altiumlibrary.com` (51.68.218.24, OVH France) принимает соединения
только по TCP 1433. Это порт MSSQL, и он часто фильтруется:
- Windows Firewall исходящий — обычно пропускает, но проверить стоит.
- Российские ISP — могут резать 1433 на uplink (anti-spam / anti-bruteforce).
- Корпоративные сети — почти всегда режут.
- Azure/OVH со стороны сервера — может whitelist'ить.
### 4.1. Проверка доступности
```powershell
Test-NetConnection -ComputerName db.altiumlibrary.com -Port 1433
```
Ждёшь:
```
TcpTestSucceeded : True
```
Если `False` — либо таймаут, либо RST. Смотри `RemoteAddress` — там должно
быть `51.68.218.24`.
### 4.2. Если 1433 закрыт — заворачиваем через VPN
Для твоей инфраструктуры (MikroTik + xray/AmneziaWG контейнеры на 192.168.9.147):
1. На MikroTik в адрес-лист для VPN-маршрутизации добавь:
- `db.altiumlibrary.com` (MikroTik умеет DNS-name в address-list с автообновлением)
- или статически `51.68.218.24/32`
2. Убедись, что правило `/ip firewall mangle` для mark-routing захватывает
этот адрес (по `dst-address-list`).
3. Проверь с машины:
```powershell
# Должен идти через VPN-интерфейс
Test-NetConnection -ComputerName db.altiumlibrary.com -Port 1433
tracert -h 5 51.68.218.24
```
Важно: SQLNCLI11 по умолчанию **не шифрует** трафик. Пароль из DbLib
летит по сети в TDS-фрейме. Если между машиной и сервером есть untrusted
сегмент — VPN не только для обхода блока, но и для минимальной защиты
транспорта.
---
## 5. Подключение в Altium Designer
На этом этапе у тебя должно быть:
-`SQLNCLI11` стоит (проверено через реестр)
-`db.altiumlibrary.com:1433` доступен (TcpTestSucceeded : True)
- ✅ DbLib лежит в папке с клонированным репо
### 5.1. Открой Altium Designer
Любой проект, можно пустой. Открой панель `Components`
(`View → Panels → Components`, или снизу справа `Panels → Components`).
### 5.2. Окно File-based Libraries Preferences
В панели `Components` нажми иконку меню (≡ или три точки — зависит от
версии AD) → в разных версиях Altium этот пункт называется по-разному:
- AD 20+ (включая 26.x): **`File-based Libraries Preferences...`**
- Старые AD: **`Libraries Preferences...`**
Откроется окно `Available File-based Libraries`.
### 5.3. Установка DbLib
1. Вкладка **`Installed`**.
2. Кнопка **`Install`** внизу → выбери
`C:\Work\altium-library\Celestial_Altium_Library_-_altium_library.DbLib`.
3. Проверь, что в списке появилась строка с типом `Database`.
4. Галочка `Activate` должна быть включена.
5. **НЕ закрывай окно сразу** — Altium начнёт подключение и может вывести ошибку.
### 5.4. Первая загрузка
На этом шаге Altium:
1. Коннектится к `db.altiumlibrary.com:1433`.
2. Выполняет ~600 SELECT-запросов (один на каждый view) для получения схемы
колонок и параметров фильтрации.
3. Строит локальный индекс.
На хорошем интернете через прямой канал — 30–60 секунд. Через VPN с RTT
150 мс — до 23 минут. Splash Altium будет показывать
`Loading Document Celestial Altium Library - altium_library.DbLib`.
Не перебивай, не закрывай Altium. Если висит >5 минут — смотри Troubleshooting.
### 5.5. Проверка результата
В `Components panel` сверху появится дропдаун с views. Должно быть примерно
так:
```
Components ▾
├─ Capacitors - Ceramic - 0402
├─ Capacitors - Ceramic - 0603
├─ ... (18 views под конденсаторы)
├─ Connectors - ... (18 views)
├─ Diodes - ... (5 views)
├─ Inductors - Power
├─ MOSFET - Single - N-Ch
├─ MOSFET - Single - P-Ch
├─ Motor Drivers Controllers
├─ Resistors - Surface Mount - 0402
├─ ... (12 views под резисторы)
└─ Voltage Regulators - DC DC Switching Regulators
```
Выбери, например, `Resistors - Surface Mount - 0603` → справа от списка
компонентов появится панель параметрической фильтрации (Resistance,
Tolerance, Power Rating, Temperature Coefficient, Manufacturer).
Всё — база работает.
---
## 6. Использование
### 6.1. Размещение компонента
1. В схеме → панель `Components` → выбери нужный view.
2. Отфильтруй по параметрам (например, Resistance = 10k, Tolerance = 1%).
3. Двойной клик на компоненте → компонент появится в курсоре.
4. Разместишь на схеме — Altium автоматически:
- Скачает symbol из локального `symbols/` (по Library Ref из БД).
- Скачает footprint из локального `footprints/`.
- Пропишет все параметры в атрибутах компонента (MPN, Manufacturer,
Supplier, Price, Datasheet URL).
### 6.2. Генерация BOM
`Project → Project Options → OutputJob Files → Report Outputs → Bill of Materials`.
В BOM автоматически попадут `Manufacturer Part Number`, `Manufacturer`,
`Supplier 1 Part Number`, `Supplier 1 Unit Price` и т.д. — заполнять руками
ничего не нужно.
### 6.3. Если нужного компонента нет в Celestial
1. Создай свой SchLib/PcbLib рядом с клоном (например, `C:\Work\altium-library-custom\`).
2. В `File-based Libraries Preferences → Installed` добавь рядом со страницей
Celestial DbLib.
3. Свои компоненты работают параллельно, без конфликтов.
Либо отправь PR в `issus/altium-library` — Mark принимает, если параметры и
3D-модели от производителя.
---
## 7. Troubleshooting
### 7.1. «64-bit Microsoft Access Database Engine required»
**Причина:** Altium не смог загрузить OLE DB провайдер, указанный в DbLib
(`SQLNCLI11.1`), и fallback'нулся на общее misleading сообщение про Access.
**Решение:**
1. Убедись, что SQLNCLI11 стоит:
`Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\SQLNCLI11"`
2. Если стоит, а ошибка сохраняется — закрой Altium полностью (проверь через
Task Manager, что `X2.EXE` не висит), запусти заново.
3. Если не помогло — переустанови SQLNCLI11 с `/l*v log.txt` для диагностики:
`msiexec /i sqlncli.msi /l*v "$env:TEMP\sqlncli.log" IACCEPTSQLNCLILICENSETERMS=YES`
### 7.2. «Connection Failed. Check your connection settings»
**Причина:** драйвер OK, но не доходит до сервера.
**Решение:**
1. `Test-NetConnection -ComputerName db.altiumlibrary.com -Port 1433`
2. Если False — настрой VPN (см. раздел 4.2).
3. Если True, но Altium всё равно ругается — проверь пароль в DbLib (не
скопировался ли лишний пробел), либо создай новый Server Login на портале
и скачай свежий DbLib.
### 7.3. Views с префиксом `z_` в списке
**Причина:** DbLib устарел, в нём есть ссылки на underlying tables, которые
не имеют Altium-совместимых колонок.
**Решение:** скачай свежий DbLib с портала (Server Logins → Manage → DbLib),
замени свой. **Не удаляй старый до проверки нового** — если что-то пойдёт не
так, вернёшь.
### 7.4. Components panel показывает views, но внутри пусто
**Причина:** сетевое подключение «оборвалось» посередине загрузки (timeout
на отдельных views).
**Решение:**
1. Закрой Altium полностью.
2. Если через VPN — проверь стабильность канала.
3. Запусти Altium, подожди полной загрузки (иногда нужен F5 в панели
`Refresh`).
### 7.5. «Footprint not found» при Place
**Причина:** компонент только что добавили в облачную БД, а локальные
SchLib/PcbLib ещё не обновлены.
**Решение:**
```powershell
cd C:\Work\altium-library
git pull
git lfs pull
```
В Altium: `Components panel``Refresh (F5)`.
### 7.6. STEP-модели не отображаются в 3D
**Причина:** клон сделан без Git LFS, или `git lfs pull` не выполнен.
**Решение:**
```powershell
cd C:\Work\altium-library
git lfs install
git lfs pull
```
Проверь размер файла `STEP\*.STEP` — рабочие модели весят 50–500 KB,
LFS-указатели — ровно 133 байта.
### 7.7. Altium падает при открытии DbLib
**Причина:** conflict с Altium Vault / Altium 365 workspace (попытка
загружать один и тот же компонент из двух источников).
**Решение:** временно disconnect workspace
(`File → Altium 365 → Sign Out`), перезапусти Altium, подключи DbLib,
потом заново подключись к workspace.
---
## 8. Автоматизация: production-ready установщик одной командой
Чтобы поднять всё на новой машине одним вызовом — скрипт ниже. Запускать
**от администратора**, только после того, как уже есть скачанный с портала
DbLib.
```powershell
#Requires -RunAsAdministrator
param(
[Parameter(Mandatory=$true)]
[string]$RepoDir = "C:\Work\altium-library",
[Parameter(Mandatory=$true)]
[string]$DbLibPath, # путь к скачанному из портала .DbLib
[switch]$InstallMSOLEDBSQL # опционально поставить ещё и современный провайдер
)
$ErrorActionPreference = "Stop"
# 1. Git + LFS
if (-not (Get-Command git -ErrorAction SilentlyContinue)) {
winget install --id Git.Git --exact --accept-package-agreements --accept-source-agreements
}
git lfs install
# 2. VC++ Redist
winget install --id Microsoft.VCRedist.2015+.x64 --exact --accept-package-agreements --accept-source-agreements
winget install --id Microsoft.VCRedist.2015+.x86 --exact --accept-package-agreements --accept-source-agreements
# 3. SQLNCLI11 — ОБЯЗАТЕЛЬНО
$sqlncli = "$env:TEMP\sqlncli_x64.msi"
Invoke-WebRequest -UseBasicParsing `
-Uri "https://download.microsoft.com/download/B/E/D/BED73AAC-3C8A-43F5-AF4F-EB4FEA6C8F3A/ENU/x64/sqlncli.msi" `
-OutFile $sqlncli
Start-Process msiexec -ArgumentList "/i", $sqlncli, "/qn", "IACCEPTSQLNCLILICENSETERMS=YES" -Wait
# 4. MSOLEDBSQL 19 (опционально)
if ($InstallMSOLEDBSQL) {
$msoledb = "$env:TEMP\msoledbsql.msi"
Invoke-WebRequest -UseBasicParsing `
-Uri "https://go.microsoft.com/fwlink/?linkid=2318101" `
-OutFile $msoledb
Start-Process msiexec -ArgumentList "/i", $msoledb, "/qn", "IACCEPTMSOLEDBSQLLICENSETERMS=YES" -Wait
}
# 5. Клон репозитория
if (-not (Test-Path $RepoDir)) {
New-Item -ItemType Directory -Path (Split-Path $RepoDir -Parent) -Force | Out-Null
git clone https://github.com/issus/altium-library.git $RepoDir
} else {
Push-Location $RepoDir
git pull
git lfs pull
Pop-Location
}
# 6. Копируем DbLib в папку репо
Copy-Item $DbLibPath -Destination $RepoDir -Force
# 7. Проверки
Write-Host "`n=== Проверки ===" -ForegroundColor Cyan
$sqlncli_ver = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\SQLNCLI11" -ErrorAction SilentlyContinue).InstalledVersion
Write-Host "SQLNCLI11 version: $sqlncli_ver"
$tcp = Test-NetConnection -ComputerName db.altiumlibrary.com -Port 1433 -WarningAction SilentlyContinue
Write-Host "db.altiumlibrary.com:1433 reachable: $($tcp.TcpTestSucceeded)"
if (-not $tcp.TcpTestSucceeded) {
Write-Warning "Порт 1433 недоступен — настрой VPN (см. раздел 4.2 инструкции)"
}
Write-Host "`nГотово. Открывай Altium → Components panel → File-based Libraries Preferences → Install → $DbLibPath" -ForegroundColor Green
```
Запуск:
```powershell
.\install-celestial.ps1 -DbLibPath "$env:USERPROFILE\Downloads\Celestial_Altium_Library_-_altium_library.DbLib"
```
---
## 9. Ссылки
- Celestial Library портал: <https://altiumlibrary.com/>
- GitHub репозиторий: <https://github.com/issus/altium-library>
- Get Started: <https://altiumlibrary.com/GetStarted/ConfigureAltium>
- Troubleshooting: <https://altiumlibrary.com/GetStarted/Troubleshooting>
- Discord сообщества: <https://discord.gg/MEQ5Xe5>
- Mark Harris (автор): <https://resources.altium.com/experts/mark-harris>
### Microsoft — прямые ссылки на MSI
- SQL Server Native Client 11 x64:
<https://download.microsoft.com/download/B/E/D/BED73AAC-3C8A-43F5-AF4F-EB4FEA6C8F3A/ENU/x64/sqlncli.msi>
- MSOLEDBSQL 19 x64 + Arm64:
<https://go.microsoft.com/fwlink/?linkid=2318101>
- MSOLEDBSQL 19 x86:
<https://go.microsoft.com/fwlink/?linkid=2318001>
- VC++ Redist 2015-2022 x64:
<https://aka.ms/vs/17/release/vc_redist.x64.exe>
- VC++ Redist 2015-2022 x86:
<https://aka.ms/vs/17/release/vc_redist.x86.exe>
---
## 10. Changelog этой инструкции
| Дата | Изменения |
|---|---|
| 2026-04-18 | Первая версия. Проверено на Altium Designer 26.4.1, Windows 11, MSOLEDBSQL 19.4.1.0, SQLNCLI 11.4.x. |