Arduino IDE · ошибки загрузки
Ошибка 403 в Arduino IDE: платы и библиотеки не скачиваются
Что означает «403 Forbidden» и бесконечное «Downloading index…», кто именно отдаёт отказ (мы проверили с российских адресов и показываем цифры), почему из-за этой ошибки заодно пропадает порт и не собирается даже пустой скетч, и пять способов всё-таки поставить плату — от самого быстрого до самого надёжного.
Как выглядит ошибка 403 и бесконечное «Downloading index…»
Симптом один: среда пытается обновить список плат или библиотек и не может. Дальше — по версиям. В Arduino IDE 2.x внизу окна ползёт полоса «Downloading index: package_index.tar.bz2», а потом появляются строки с 403 Forbidden. В классической 1.8.19 в консоли возникает «Error downloading https://downloads.arduino.cc/packages/package_index.json» и следом Received invalid http status code from server: 403. В обоих случаях менеджер плат открывается пустым.
Это настоящий вывод, а не пересказ: мы запустили arduino-cli версии 1.5.1 — ту же программу, которая работает внутри Arduino IDE 2.3.10, — на компьютере в России и сняли строки как есть. Обратите внимание на вторую половину: следом за списками не скачиваются builtin:serial-discovery и builtin:ctags. Это не платы, это собственные служебные программы среды.
Те же слова вы могли видеть иначе: формулировки менялись от версии к версии, и в разных местах интерфейса они разные:
Some indexes could not be updated.— сводка после обновления списков;Failed to install platform: 'Arduino AVR Boards'. Error: 13 INTERNAL: Server responded with: 403 Forbidden— попытка поставить пакет платы (в кавычках человеческое имя платформы, а не её идентификатор);Detected an error response during the gRPC core client initialization: code: 13, message: downloading builtin:ctags@5.8-arduino11 tool: Server responded with: 403 Forbidden— а вот это уже при запуске среды, из-за чего она и «зависает на заставке»;library_index.json: The system cannot find the file specified— следствие: файла нет, потому что он не скачался;- «Ошибка при проверке обновлений» — по тому же адресу среда ходит и за своими обновлениями, так что не обновляется она по той же причине.
Кто отдаёт 403: не провайдер и не Роскомнадзор
Отказ приходит не от вашего оператора связи. Соединение с сервером Arduino устанавливается нормально, защищённый канал поднимается, и сервер отвечает — просто отвечает отказом. В заголовках ответа стоит server: cloudflare, а вместо файла приходит знакомая страница: во вкладке браузера — «Attention Required! | Cloudflare», на самой странице — «Sorry, you have been blocked». Это фильтр на стороне Arduino, который не пускает часть адресов.
Проверка, которая расставляет всё по местам: мы запросили с российского адреса файл, которого на сервере нет. Из Германии на него приходит честный 404 — «не найдено». Из России — 403. Значит, сервер даже не смотрит, что вы просите: адрес отклоняется на входе, целиком.
Вот замеры 19 августа 2026 года — с нашего сервера в России и с проверочных узлов в Москве и Петербурге:
| Что качает среда | Адрес | Ответ |
|---|---|---|
| Сайт Arduino | www.arduino.cc | 403 |
| Список плат | downloads.arduino.cc/packages/package_index.tar.bz2 | 403 |
| Подпись списка плат | downloads.arduino.cc/packages/package_index.json.sig | 403 |
| Список библиотек | downloads.arduino.cc/libraries/library_index.tar.bz2 | 403 |
| Архивы библиотек | downloads.arduino.cc/libraries/github.com/… | 403 |
| Служебные инструменты | downloads.arduino.cc/tools/… | 403 |
| Установщик Arduino IDE | downloads.arduino.cc/arduino-ide/…_Windows_64bit.exe | 403 |
| Список плат ESP32 | espressif.github.io/arduino-esp32/… | 200 |
| Список плат ESP8266 | arduino.esp8266.com/stable/… | 200 |
| Файлы выпусков на GitHub | github.com/…/releases/download/… | 302 |
| Наше зеркало | packages.trema.ru/package_trema_index.json | 200 |
У вас картина может быть другой — и это нормально. Фильтр работает по адресам: у одного провайдера открывается, у соседнего нет, с мобильного интернета часто получается, а из офисной сети — нет. Массовые жалобы на полную недоступность идут с ноября 2025 года; перебои и «то работает, то нет» случались и раньше, но это была другая беда — обрывы и медленная загрузка, а не мгновенный отказ.
Три разные беды, которые путают: 403, ожидание и сертификат
Прежде чем что-то чинить, посмотрите, сколько времени среда думала до ошибки. Это самый простой способ отличить блокировку от других сетевых проблем — и не лечить одно вместо другого.
| Что видно | Что произошло | Признак | Кто виноват |
|---|---|---|---|
| 403 Forbidden | связь есть, сервер ответил отказом | ошибка появляется мгновенно, за доли секунды | фильтр на стороне Arduino |
| Время ожидания истекло | ответа нет вообще | среда «думает» 20–60 секунд, потом сдаётся | фильтрация у провайдера, файрвол, обрыв канала |
| Ошибка сертификата | защищённое соединение не поднялось | быстро, но текст про сертификат: PKIX path building failed | антивирус или корпоративный прокси, который вскрывает трафик |
Практический вывод: мгновенная ошибка — это 403, и VPN или другая сеть помогут. Долгое ожидание — фильтр по дороге, тут разбираться с сетью. Ругань про сертификат — почти всегда антивирус или школьный прокси, который вскрывает защищённые соединения; лечится доверием к его сертификату, а не сменой среды.
Arduino IDE не видит порт и не собирает скетч — из-за той же ошибки
Самое неочевидное в этой истории. Arduino IDE 2 — небольшая программа, которая почти всё догружает: список плат, список библиотек, пакет выбранной платы и пять служебных инструментов. Последние лежат не в установщике, а докачиваются при первом запуске в папку Arduino15\packages\builtin\tools (на рабочей машине это ≈21 МБ):
serial-discovery— ищет подключённые платы. Нет его — нет списка портов, и человек честно идёт менять кабель.serial-monitor— монитор порта.mdns-discovery— поиск плат по сети.dfu-discovery— платы в режиме прошивки.ctags— разбирает скетч перед компиляцией. Нет его — не собирается даже пустой скетч, а среда может вообще не дойти до открытия окна.
| Что видит пользователь | Что не скачалось | Почему так |
|---|---|---|
| Внизу вечно висит «Downloading index…» | package_index.tar.bz2 и library_index.tar.bz2 | среда ждёт ответа, потом молча оставляет полосу на месте |
| Менеджер плат пуст, поиск ничего не находит | индекс плат | список платформ берётся только из индекса — без него он пустой |
| Менеджер библиотек пуст | индекс библиотек | ≈57 МБ и 53 225 ссылок — и все на закрытый сервер |
| Плата подключена, а порта в списке нет | builtin:serial-discovery | порты ищет отдельная служебная программа, и её тоже качают из сети |
| Монитор порта не открывается | builtin:serial-monitor | та же история: отдельный инструмент, отдельная загрузка |
| Не собирается даже пустой скетч | builtin:ctags | без него среда не может разобрать скетч перед компиляцией |
Отсюда же разница в жалобах. У кого среда работала раньше, инструменты уже лежат на диске, и человек видит только «не ставятся платы». У кого Arduino IDE поставлена только что — среда выглядит сломанной целиком. Причина у обоих одна.
Отдельно про библиотеки, и это неприятная новость. Менеджер библиотек не работает вообще ни на одной библиотеке. Мы разобрали официальный список: в нём 53 225 ссылок на архивы — и все до одной ведут на закрытый downloads.arduino.cc, даже если сама библиотека живёт на GitHub: 53 225 ссылок на 9 857 библиотек, все на один сервер. Сам список приезжает оттуда же — качается сжатым, 4,4 МБ, а на диске разворачивается в файл на 55 МБ.
Куда среда ходит за файлами
Четыре запроса — и все четыре в один адрес. В этом вся уязвимость конструкции: стоит одному серверу закрыться, и не работает ничего.
Arduino IDE 2.3.10
- Индекс платdownloads.arduino.cc403package_index.tar.bz2 — список всех платформ
- Индекс библиотекdownloads.arduino.cc403library_index.tar.bz2, в распакованном виде ≈57 МБ
- Служебные инструментыdownloads.arduino.cc403ctags, serial-discovery, serial-monitor — ≈21 МБ
- Сам пакет платыdownloads.arduino.cc403компилятор и загрузчик: ≈63 МБ у AVR, больше гигабайта у ESP32
Четыре запроса из четырёх упираются в один сервер — и он отвечает «403 Forbidden».
Trema IDE
- Индекс платpackages.trema.ru200package_trema_index.json — 7 платформ
- Индекс библиотекlibraries.trema.ru200свой реестр библиотек, российский сервер
- Служебные инструментыpackages.trema.ru/builtin200те же ctags и serial-discovery, зеркало
- Сам пакет платыpackages.trema.ru200файлы 1:1 с оригиналом, проверка контрольной суммы
Те же четыре запроса идут на российские серверы и возвращают файлы.
Проверьте, ваш ли это случай
- Откройте в браузере
https://downloads.arduino.cc/packages/package_index.json. Увидели страницу Cloudflare «Sorry, you have been blocked» — да, это ваш случай. - Если браузер показал длинный текст в фигурных скобках — файл доступен, и дело не в 403. Тогда проверьте по порядку: не держит ли антивирус (добавьте папку среды и
Arduino15в исключения), не стоит ли между вами и интернетом школьный прокси (адрес вписывается в Файл → Настройки → Network), не блокирует ли файрвол. Если же среда и открывается-то с трудом — вам на страницу «Arduino IDE не запускается». Плата не видна и в 1.8.19, где 403 ни при чём? Это уже про кабель и драйверы — разбор здесь. - Раздайте интернет с телефона и нажмите «Обновить» в менеджере плат. Заработало — вопрос в канале, а не в программе.
Пять путей: что делать с ошибкой 403
| Путь | Сколько времени | Что это значит на практике |
|---|---|---|
| Другая сеть | 2 минуты | раздать интернет с телефона и нажать «Обновить». Отказ выдают по адресу, а не по паспорту, поэтому у мобильного оператора часто получается. Не поможет, если фильтр стоит на всём канале школы. |
| Ссылки JSON сторонних плат | 5 минут | если нужны только ESP32, ESP8266, STM32 или Pico — их списки и сами пакеты лежат не у Arduino, а на GitHub, и из России скачиваются целиком. Ядро AVR и менеджер библиотек это не вылечит. |
| Положить файлы руками | полчаса | разовая операция: списки и служебные инструменты кладутся в папку данных, дальше среда работает. Способ проверен нами целиком, шаги — ниже. |
| VPN | как получится | многие делают так. Но это не разовое лечение: после отключения ошибка вернётся при следующем обновлении списков, скорость загрузки пакетов падает, а в классе на пятнадцать машин способ неудобен. |
| Среда с российскими адресами | одна установка | в заводском списке источников Trema IDE нет зарубежных адресов: платы и служебные инструменты — с packages.trema.ru, библиотеки — с libraries.trema.ru. |
Как положить списки и инструменты руками
Способ для тех, кому нужна именно Arduino IDE. Идея простая: файлы, которые среда не может скачать, кладём в её папки сами — с другого компьютера, с телефона или с доступного зеркала. Сначала — куда класть:
| Система | Папка данных (списки, пакеты, инструменты) | Настройки Arduino IDE 2 |
|---|---|---|
| Windows | C:\Users\Имя\AppData\Local\Arduino15 | C:\Users\Имя\.arduinoIDE |
| macOS | ~/Library/Arduino15 | ~/.arduinoIDE |
| Linux | ~/.arduino15 | ~/.arduinoIDE |
Дальше по шагам (среда должна быть закрыта):
- Списки. Нужны четыре файла в корне папки данных:
package_index.json,package_index.json.sig,library_index.json,library_index.json.sig. Берутся они по прямым адресам —downloads.arduino.cc/packages/package_index.json,downloads.arduino.cc/packages/package_index.json.sig,downloads.arduino.cc/libraries/library_index.json,downloads.arduino.cc/libraries/library_index.json.sig— и да, это тот самый закрытый сервер: качать придётся оттуда, где он открывается (мобильный интернет, другой компьютер, знакомый). Файлы подписи обязательны: среда проверяет подпись официального списка и без неё сообщит, что список недействителен, — поэтому скачивайте пару «файл + подпись» разом, а не в разные дни. - Служебные инструменты. Мы держим их на своём зеркале, и адрес российский. Ссылки — в таблице ниже: это прямые ссылки на файлы, список каталога сервер не отдаёт. Каждый архив распакуйте так, чтобы в папке
Arduino15\packages\builtin\tools\ИМЯ\ВЕРСИЯлежало содержимое архива, а не вложенная папка из него: рядом сctags.exeне должно быть ещё одной папкиctags-5.8-arduino11. «ИМЯ» и «ВЕРСИЯ» берите из сообщения среды: «Downloading missing tool builtin:serial-discovery@1.5.2…». - Пакет платы. Если нужная плата есть на нашем зеркале (AVR, UNO R4, ESP32, ESP8266, RP2040, STM32, Silicon Labs) — добавьте ссылку
https://packages.trema.ru/package_trema_index.jsonв дополнительные ссылки менеджера плат, и пакет скачается штатной кнопкой «Установить». - Проверьте. Запустите среду, откройте менеджер плат: список должен появиться, порт — определиться, пустой скетч — собраться.
- Частный случай ESP8266. Ядро для NodeMCU и Wemos качается не с закрытого сервера, а с GitHub, поэтому ставится и без зеркала. А вот собрать скетч без служебного
ctagsвсё равно не выйдет — мы это измерили: разбор для плат ESP8266.
| Инструмент | Ссылка (packages.trema.ru/builtin/…) | Размер |
|---|---|---|
ctags | ctags-5.8-arduino11-pm-i686-mingw32.zip | 0,1 МБ |
serial-discovery | serial-discovery_v1.5.2_Windows_64bit.zip | 2,3 МБ |
serial-monitor | serial-monitor_v0.15.0_Windows_64bit.zip | 2,6 МБ |
mdns-discovery | mdns-discovery_v1.1.0_Windows_64bit.zip | 3,3 МБ |
dfu-discovery | dfu-discovery_v0.1.2_Windows_64bit.zip | 2,3 МБ |
В таблице — файлы для 64-битной Windows. Для macOS и Linux на зеркале лежат те же инструменты с другим окончанием в имени (_macOS_64bit.tar.gz, _Linux_64bit.tar.gz и так далее) — имя нужного файла среда называет сама в сообщении о пропущенном инструменте.
Этот путь мы прошли целиком сами — на машине в России, у которой arduino.cc закрыт полностью. После укладки инструментов и установки ядра AVR 1.8.8 с зеркала скетч для Uno собрался обычной командой сборки: Sketch uses 1956 bytes (6%) of program storage space. Ни один файл при этом не приехал с серверов Arduino. Работает — но, честно говоря, это ремонт напильником: пять архивов, точные имена папок и номера версий. И менеджер библиотек всё равно останется пустым.
Как ставить библиотеки, пока менеджер библиотек пуст
Список библиотек — единственное, что нельзя починить ни зеркалом плат, ни ссылками JSON. Но библиотеки можно ставить и без менеджера: почти все они лежат на GitHub, откуда из России скачиваются нормально.
- На странице библиотеки нажмите зелёную кнопку Code → Download ZIP.
- В среде: Скетч → Подключить библиотеку → Добавить .ZIP-библиотеку и выберите скачанный архив.
- Если среда ругается на имя, распакуйте архив в
Документы\Arduino\librariesруками и уберите из имени папки хвост-masterили-main: с ним библиотека не находится по#include. Внутри папки должны лежать файлы.hи.cpp, а не ещё одна папка. - Перезапустите среду.
Способ рабочий, но ручной: зависимости придётся ставить самому, а обновления искать глазами. Если нужен каталог с поиском, который работает из России, — он у нас есть: как ставятся библиотеки в Trema IDE (там же поиск по строке #include).
Ссылка JSON для менеджера плат: актуальные адреса
Отдельная беда — «ссылка JSON не открывается». Тут важно понимать: у каждого производителя плат свой список, и лежат они в разных местах. Список Arduino — на закрытом downloads.arduino.cc, а вот ESP32 и ESP8266 живут на GitHub, и оттуда из России приезжают не только списки, но и сами пакеты со всеми компиляторами.
| Платформа | Ссылка | Где лежит |
|---|---|---|
| ESP32 (Espressif) | https://espressif.github.io/arduino-esp32/package_esp32_index.json | GitHub Pages; старый адрес dl.espressif.com пока тоже отвечает |
| ESP8266 | https://arduino.esp8266.com/stable/package_esp8266com_index.json | домен сообщества ESP8266 |
| STM32 (STMicroelectronics) | https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json | GitHub, отвечает переадресацией |
| Raspberry Pi Pico (arduino-pico) | https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json | выпуск с меткой global — всегда указывает на свежий список |
| Зеркало Trema | https://packages.trema.ru/package_trema_index.json | российский сервер: AVR, UNO R4, ESP32, ESP8266, RP2040, STM32, Silicon Labs |
Куда вставлять: Файл → Настройки → Дополнительные ссылки для менеджера плат (в английском интерфейсе File → Preferences → Additional boards manager URLs), по одной ссылке в строке. После этого Инструменты → Плата → Менеджер плат и поиск по названию. Подробный разбор установки ESP32 — на отдельной странице.
Почему замена адреса в настройках не спасает
Логичная мысль: раз есть зеркало — заменим им сервер Arduino, и всё заработает. Не выйдет, и вот почему. Поле в настройках называется дополнительные ссылки: оно добавляет источники, но не отменяет основной. Адрес главного списка вшит в программу и в интерфейсе не меняется, поэтому Arduino IDE при каждом запуске всё равно пойдёт на downloads.arduino.cc и всё равно получит отказ.
Мы это проверили: с подключённым зеркалом пакеты ставятся, а строка об ошибке основного списка остаётся в журнале навсегда. На работу она не влияет — влияет на впечатление, что «среда сломана».
Что в настройках действительно есть — это раздел «Сеть» (Файл → Настройки → Network): туда вписывают адрес корпоративного или школьного прокси, если выход в интернет только через него. От отказа 403 прокси не спасёт, но если ваша сеть вообще не выпускает программы наружу, без него не обойтись — адрес спрашивайте у того, кто настраивал сеть.
Как та же задача решена в Trema IDE
Trema IDE — российская среда для тех же плат и тех же скетчей. Мы делали её в стране, где эта проблема существует, поэтому сетевая часть устроена иначе: в заводском списке источников нет ни одного зарубежного адреса — только наше зеркало и российский сервер Elron.
- Uno, Nano, Mega и вся классика AVR собираются сразу после установки: компилятор и фреймворк лежат внутри программы, первая сборка проходит без интернета. В списке 222 платы этого семейства, и 126 из них — те, что используют штатное ядро Arduino; экзотика вроде ATtiny или MightyCore потребует докачки. Плюс шесть плат Elron и MIK32 — тоже из установщика.
- ESP32, ESP8266, UNO R4, Raspberry Pi Pico, STM32 и Silicon Labs — с зеркала packages.trema.ru: те же официальные файлы, что у производителей, с проверкой контрольной суммы при установке.
- Те самые служебные инструменты — тоже с нашего зеркала, и они подмешиваются к источникам всегда: поэтому сборка для ESP32 не спотыкается о недоступный ctags. А список портов Trema IDE вообще не зависит от загрузок: она опрашивает порты сама, своими средствами, поэтому плата видна даже на компьютере, который сегодня впервые включили в сеть.
- Ругань Arduino в журнале мы просто убрали: программа кладёт на диск пустые, но правильные файлы списков, чтобы встроенный arduino-cli не ломился на закрытый сервер и не пугал тремя красными строками при каждом запуске.
- Библиотеки — из собственного реестра libraries.trema.ru, поиск по названию, а на сайте каталога — ещё и по строке
#include. Как это работает — на странице про установку библиотек.
Проверка, а не обещание: мы взяли машину в России, у которой arduino.cc отдаёт 403 на всё, поставили с зеркала пакет ESP32 3.3.11 и ядро AVR 1.8.8 и собрали скетч. Все файлы приехали с packages.trema.ru.
Честная оговорка: если у вас Windows 7, 8 или 32-битная система, ни Trema IDE, ни Arduino IDE 2 не встанут — там остаётся только классическая 1.8.19, и списки ей придётся класть руками. Наши сборки есть для 64-битной Windows 10/11 и для Linux (.deb и AppImage); версии для macOS пока нет.
И о соседней беде, которую с этой путают: если платы и библиотеки скачались, а скетч не заливается — дело не в 403, а в порте, кабеле или загрузчике. Это разобрано отдельно, с деревом причин: ошибка при загрузке скетча.
Что означает ошибка 403 в Arduino IDE?
Это отказ сервера. Среда достучалась до downloads.arduino.cc, но вместо списка плат получила ответ «403 Forbidden». Отвечает фильтр Cloudflare, который стоит перед сайтами Arduino: соединение проходит, а файл не отдают.
Это Роскомнадзор заблокировал Arduino?
Нет. При блокировке со стороны провайдера соединение обычно вообще не устанавливается или открывается заглушка оператора. Здесь сервер отвечает и присылает страницу Cloudflare «Attention Required!» с кодом 403 — значит, фильтр стоит на стороне Arduino и не пускает часть адресов.
Почему из-за ошибки со списком плат пропал порт?
Поиск портов в Arduino IDE 2 выполняет отдельная служебная программа serial-discovery, и её среда тоже качает с закрытого сервера. Пока списки и инструменты не скачались, список портов пуст, хотя плата подключена и драйвер стоит. По той же причине без инструмента ctags не собирается даже пустой скетч.
Можно ли поменять адрес сервера Arduino в настройках?
Нет. В настройках есть только поле «дополнительные ссылки для менеджера плат»: оно добавляет источники, но не отменяет основной, а его адрес вшит в программу. Поэтому запись об ошибке остаётся в журнале даже после подключения зеркала — на установку плат с зеркала это не влияет.
Где лежат package_index.json и library_index.json?
В папке данных: на Windows это C:\Users\Имя\AppData\Local\Arduino15, на macOS ~/Library/Arduino15, на Linux ~/.arduino15. Туда же их можно положить вручную, обязательно вместе с файлами подписи .sig — без них среда сочтёт список недействительным. Список плат весит около 1,6 МБ, список библиотек — около 57 МБ.
Ссылка JSON для ESP32 не открывается — что делать?
Проверьте сам адрес: официальная ссылка — espressif.github.io/arduino-esp32/package_esp32_index.json, она лежит на GitHub Pages и из России доступна; старый адрес dl.espressif.com пока тоже отвечает. Из России по этим ссылкам скачивается не только список, но и сам пакет с компиляторами. Тот же ESP32 есть и на российском зеркале packages.trema.ru.
Поможет ли VPN при ошибке 403?
Обычно да, потому что фильтр работает по адресу. Но это не разовое лечение: после отключения VPN ошибка вернётся при следующем обновлении списков, скорость загрузки пакетов падает, а в компьютерном классе такой способ неудобен.
Что делать в школьном классе, где VPN использовать нельзя?
Два рабочих пути. Первый — один раз положить списки и служебные инструменты в папку данных на образ системы и разлить его на машины. Второй — поставить среду, которая ходит на российские серверы: Trema IDE берёт платы с packages.trema.ru, библиотеки с libraries.trema.ru, а Uno, Nano и Mega собирает сразу после установки без интернета.
Среда, которой не нужен заблокированный сервер
Платы, инструменты и библиотеки — с российских адресов. Uno, Nano и Mega собираются сразу после установки, без интернета. Дома бесплатно: через неделю попросит бесплатную регистрацию по почте — и всё.
