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
This commit is contained in:
creator
2026-04-18 16:11:16 +00:00
parent 16477a28ba
commit 8567a2a769
@@ -0,0 +1,552 @@
# Подключение 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. |