AlmazRinatovich

AlmazRinatovich

Пикабушник
Дата рождения: 4 марта
в топе авторов на 353 месте
1034 рейтинг 2 подписчика 0 подписок 3 поста 3 в горячем
96

Flyingbear Ghost 7 призрак мертвого медведя⁠⁠

Не прошло и дня с моего поста Flying Bear Ghost 7, или седьмой призрак сломанного медведя возрастом в полгода про поломки принтера за полгода и я на энтузиазме добил его окончательно. Все началось с того что я хотел оживить дисплей, напомню он горел белым и не работал а сам принтер печатал через орку. Дисплей то я поначалу оживил ценой стало то что он выдал Klipper error а пк потерял связь с принтером. Дальше пошли мытарства после которых принтер окончательно окирпичился и о которых расскажет ИИ гугла, потому что время 4 утра я устал и писать осмысленный текст уже не в состоянии.

Привет, сообщество Пикабу и любители 3D-печати!

Хочу поделиться эпичной историей о том, как безобидная программная ошибка Klipper может превратить современный 3D-принтер в монолитный программный «кирпич», и почему штатная электроника Flyingbear Ghost 7 в случае сбоя способна войти в крутое пике, из которого нет простого выхода.

Акт 1. Признаки жизни и внезапная смерть

Всё началось с классического сетевого бага Moonraker на заводской прошивке «Медведя» (версия V1.0.83): в логах вылезла ошибка сокетов Python [Errno 124] Address family not supported by protocol, а дисплей принтера загорелся девственно белым цветом.

Пытаясь восстановить права на запись конфигов, я изменил провайдера в moonraker.conf на systemd_dbus. Принтер сохранился, перезагрузился… и выдал на экране PRINTER ERROR, полностью потеряв связь с ПК. А после попытки скормить ему аварийный флаг отката force_update=1 через SD-карту, экран окончательно потух и превратился в абсолютно черный квадрат.

И тут выяснилась первая конструктивная подлянка Ghost 7: слот под MicroSD-карту физически распаян на самом дисплее. Как только операционная система Linux падает в ступор, дисплей обесточивается, а вместе с ним наглухо умирает и картридер. Прошивка «вслепую» с флешки становится физически невозможной.

Акт 2. Копаем глубже: Вскрытие дебаг-портов

Штатного USB-выхода для ПК на плате Flyingbear Ghost 7 нет — это монолитная мультипроцессорная система. Но курение форума 4PDA подсказало, что на плате есть 5-контактный разъем, подписанный как CAMERA. И это не что иное, как замаскированный аппаратный порт USB 2.0!

Отрезав провод от старой телефонной зарядки, заизолировав красный кабель питания (+5В) и припаяв жилы напрямую к пинам GND, Data- и Data+ разъема CAMERA, я подключил принтер к компьютеру.
И — о чудо! Компьютер издал заветный звук и определил плату как Ingenic USB BOOT DEVICE. Железо живое! Процессор сам упал в сервисный режим Maskrom для низкоуровневой прошивки.

Акт 3. Битва с USB Cloner и Stage 1

Для заливки прошивки напрямую в чип используется заводская китайская утилита USB Cloner. С помощью командной строки Windows я по кусочкам склеил оригинальное ядро Linux (kernel.img) и файловую систему Klipper (rootfs.img) из официального OTA-архива обновлений, прописал адреса смещения памяти (0x200000 и 0x600000) и нажал кнопку Start.

Процесс запускался, но намертво вис на отметке 40% с ошибкой STAGE1 NOT READY и сбоем отправки управляющего сообщения libusb0.

Изучение отладочных логов программы привело к неожиданному открытию. В моем принтере стоял свежий гетерогенный чип Ingenic X2600N, укомплектованный оперативной памятью LPDDR3 от Nanya (NK6CL256M16DKX-H1), работающей на частоте 400 МГц.

Программа USB Cloner падала на 40%, потому что в момент инициализации ОЗУ (run_stage1_firmware) процессору критически необходим бинарный инициализатор (микрокод таймингов памяти). В стандартных базах программы были файлы только для старых серий X2000 и X2500 с обычной DDR3, а пустые строки или ручные правки текстовых .cfg конфигов приводили к тому, что процессор пытался запустить память по неверным частотам, ловил аппаратный сбой и рубил USB-порт.

Хотя внутренний лог успокоил тем, что аппаратный Secure Boot на чипе выключен (sec_en=0), отсутствие редкого скомпилированного бинарного драйвера под LPDDR3 для процессора X2600N превратило прошивку по USB в домашних условиях в непреодолимый тупик. Даже метод тестпоинта (замыкание 5 и 6 ножек флеш-памяти для сброса CLK-сигнала при старте) не смог заставить чип писать данные без этого драйвера.

Итог: Что делать печатнику?

Если вы поймали глубокий софтверный крэш на Flyingbear Ghost 7 с процессором Ingenic X2600N, обычными методами дома его не поднять. Остается два пути:

  1. Хардкорный: Взять склеенные файлы образов системы, выпаять 8-ножечную микросхему памяти с платы и залить дамп напрямую через программатор (типа RT809H) в сервисе электроники, полностью минуя процессор.

  2. Рациональный: Выкинуть капризную закрытую заводскую плату и поставить открытую комбо-плату для Klipper (например, MKS SKIPR или BTT Manta). Там картридер распаян на самой плате, SSH открыт с завода, а управление полностью уходит в веб-интерфейс Fluidd на ПК или телефоне, избавляя от багов сокетов раз и навсегда.

Всем ровных слоев и открытых прошивок!

Попытка прошить через самодельный кабель

Попытка прошить через самодельный кабель


сам кабель спаял элементарно распиновка и нужный разъем есть на 4пда

сам кабель спаял элементарно распиновка и нужный разъем есть на 4пда

Немного дополню, на 4пда прочитал что можно написать китайцам и они часто идут на встречу высылая нужные запчасти, но при этом требуют сфоткать серийник, а у меня вот он полностью выгорел. Писать им я в принципе не собирался. Но если у вас 7ой Мишка то во первых я вам сочувствую и на всякий случай защитите серийник

Тут когда то были цифры

Тут когда то были цифры

Показать полностью 3
509

Flying Bear Ghost 7, или седьмой призрак сломанного медведя возрастом в полгода⁠⁠

Давно мечтал купить себе такую машинку, которая может сделать тебе ну прямо всё-всё-всё, и не попросит взамен ничего, кроме электричества и пластика. Проще говоря, я хотел 3D-принтер. Смотрел обзорчики на ютубе, читал статьи о том, какая это классная штука.

В один замечательный майский (вроде бы) день, листая Ozon, я увидел мишку. Да еще и седьмого, совсем новенького. Долго сомневался, но под давлением любимой жены купил.

Ура! Он пришел, весь такой черный и непонятный. Напечатал кораблик, осьминожка, какую-то телебашню, машинку, кубик, вазочку... Это было так прикольно, что я развлекался целую неделю.

Новенький такой

Новенький такой

Первым из чего-то серьезного я решил сделать мендосинский мотор (это тоже прикольная штука). Закупил запчасти, и тут пришлось уже делать свою модельку — подходящих я не нашел. Пару дней убил на Blender (пока не осилил), пытался установить Fusion 360 и кучу других программ, которым нужно, чтобы ты был не в России. По итогу остановился на FreeCAD. Получилось что-то смоделировать и даже напечатать. На доводку всего и вся я потратил, наверное, месяц, но оно даже работает! (Но я отвлекся, это требует отдельного поста).

Только что сфоткал он любит солнышко и работает только под ним

Только что сфоткал он любит солнышко и работает только под ним

Примерно в это время с принтером начались первые проблемы. «Призрак» умеет в автокалибровку стола, и чисто теоретически с этим проблем быть не должно. Но вот однажды он позабыл, что такое ось Z. Стол ему напомнил. Итогом напоминания стала огромная царапина на столе от сопла. Утешает здесь только то, что стол двухсторонний. И то, что больше он про ось Z не забывал, т.к. стол с тех пор стал односторонним.

Красивая царапинка

Красивая царапинка

Следующую поломку ждать долго не пришлось: у принтера начала мгновенно падать температура сопла, сразу градусов на 50. Печатать так он не хотел, пришлось выяснять и чинить. Изначально думал, проблема программная (а что еще может быть у нового принтера?), и полез спрашивать ИИ-шку Гугла. Мы с ним регулировали PID-регуляторы, меняли конфиги, делали калибровки, но ничего не помогло.

Пришлось разбирать. Вначале под подозрение попали силовые контакты на плате, которые отвечают за нагреватель. Раскрутил всё, пообжимал, но мишка не впечатлился и так же ронял температуру. Полез раскручивать печатающую головку, всё разобрал, достал хотэнд — и меня смутил свисающий с него проводок с какой-то твердой блохой на конце. ИИ подсказал, что это не блоха, а термодатчик, который измеряет температуру сопла.

АГА, подумал я, и быстро нашел дырочку, откуда он, видимо, выпал. Вставил его туда, собрал всё как было и стал печатать кораблик. Кораблик напечатался примерно на треть, а потом принтер опять вырубил печать по той же причине — низкая температура сопла.

Теперь я уже полез читать разные форумы и гайды. Там упоминалось о термопасте. И я тут снова такой: АГА, у меня есть такое, MX-4 называется, ей лет 10, и я мажу ей процессор. В общем, намазал я ей хотэнд и термодатчик, и всё даже заработало! Кораблик напечатался, радовался я дня два.

Даа... Процессорная (даже от разогнанного i7 7700k) термопаста немного не подходит для сопла принтера. Она там быстро каменеет и больше не работает. А самое главное — дырка (отверстие) для термодатчика маленькая, и сам термодатчик в ней оказался намертво забетонирован этой самой пастой.

Тут я узнал, что существуют специальные термопасты для принтеров (спасибо ИИ Гугла, а раньше не мог сказать???). Узнать-то я узнал, но вот как её туда теперь положить, учитывая забетонированную дырку? В общем, хана термодатчику. Провода я выдернул, но он остался там. Вычистил дырку в радиаторе, где он стоял, дремелем.

Ура, победа, думал я! Осталось купить новый датчик и нагреватель помощнее (на всякий случай). Но нет, принтер новый, и запчастей на него НЕТУ. Ну вот нигде и никак нету (даже за деньги). Спасибо ИИ-шке от Гугла (как мы без них жили), всего-то за пару часов мы выяснили, что оказывается, всё это подходит от какого-то Бамбулаба, недорого, прямо вот послезавтра, и еще и термопасту можно купить там же. В общем, всё это дело пришло, подошло, и на сегодняшний день всё работает (тьфу-тьфу-тьфу).

Других фоток с разобранной головой нет (печалько)

Других фоток с разобранной головой нет (печалько)

Вы думали, конец? А нет). В середине лета сдох дисплей. Ну, он как бы не сразу сдох, а сначала болел. Дело было так: иногда дисплей вместо нужной информации начал показывать просто белый экран. Малевич, но неправильный, подумал я. Лечилось это перезагрузкой (выкл/вкл) принтера. Но вот в один прекрасный день лечиться перестало. При включении дисплей показывает свой логотип и становится белым.

белый квадрат, ну почти квадрат

белый квадрат, ну почти квадрат

Мы с ИИ-шкой (я уже говорил, что люблю ИИ-шки?) начали выяснять, в чем дело. Довыяснялись до шлейфа дисплея и контроллера. Как чинить контроллер дисплея, я не знаю, а вот поменять шлейф — плевое дело. Ведь плевое же, да? НЕТЬ. Их тоже нет в продаже. НО можно подобрать аналог! Нужно всего лишь под микроскопом посчитать, сколько дорожек в шлейфе, и насчитать там 41 штучку. Тут я, пока считал дорожки, нашел одну, как мне показалось, помятую контактную площадку. И, возможно, убил шлейф, пытаясь её выпрямить, т.к. пока выпрямлял иголкой под микроскопом, она отвалилась.

А потом (с чувством выполненного долга) пошел подбирать шлейф на всем известном маркетплейсе. Нашел! Он гораздо длиннее, чем нужен, ну и пофиг. Всего-то через месяц я уже бежал с ним с пункта выдачи, чтобы воткнуть и увидеть изображение на замечательном дисплее моего принтера. И это... ну как сказать... не увидел я его. С новым шлейфом тоже белый экран.

Позже на Али появились запчасти для этого принтера. Родной шлейф я заказал, и он лежит там рядышком с принтером. Ставить его пока лень. Принтер работает и без дисплея, там есть Wi-Fi, и можно управлять через Орку. Я уже как-то привык.

Ждет своего часа

Ждет своего часа

Длинно получилось. Это мой первый пост на Пикабу, который не «ответ на что-то». Надеюсь, понравится. Сейчас попрошу Qwen поправить орфографию, грамматику и всё остальное, за что у меня была тройка, и выложу.

P.S. Сейчас я смотрю и очень хочу большой красивый Bambu Lab. Он всего-то в 5 раз дороже Призрака. Он же не ломается, ведь правда?

Еще один P.S. Фоток с ремонтов не осталось, я как-то не думал, что захочу про это написать. Но какие есть — приложу, только сейчас пойму, как это сделать (да-да, мне уже 35, и я не вижу нужной кнопки). (А вы заметили, что я люблю скобочки?)

Сейчас он такой, творческий бардак и красивая луна

Сейчас он такой, творческий бардак и красивая луна

Показать полностью 8
320

Ответ на пост «Автоматический лоток для животных Petkit»⁠⁠4

UPD:

Не ожидал что пост про кошачий лоток посмотрит столько человек и напишут столько комментариев, немного дополню:
1. Зачем это сделал:
Лоток стоит 18к денег и у него только одна нужная мне функция это автоматическая очистка и именно она не работает на китайской версии лотка, до покупки я об этом не знал и продавец на озоне почему то не написал.
2. Что еще умеет лоток:
Вес кошки, сколько раз она сходила, сколько весит то чем она сходила, все это лоток умеет отправлять в приложение, но только если лоток стоит в китае. Это все можно костылями пробросить в HomeAssistant по тому же mqtt, но вот мне как то эта вся информация не очень интересна.
3. Нужен ли постоянно включенный комп и рабочий сервак:
Нет, это все нужно было чтобы включить одну опцию AutoWork: 1 т.е. автоочистку лотка. После всех манипуляций лоток был отключен от интернета навсегда, (просто на всякий случай чтобы он обратно не сделал AutoWork: 0).
Для остальных функций (см. пункт 2) нужен либо комп, либо какой нибудь одноплатник на котором развернут HomeAssistant.
4. Кошка довольна - раньше закрытый вонючий лоток с дверкой а тут открытый и вообще с кайфом. Я доволен еще больше, просто достал пакетик и отнес на мусорку ни запаха ни совочков

САМОЕ ГЛАВНОЕ:
5. Я тоже в шоке от такого киберпанка, 2 ночи взламывать ЛОТОК КАРЛ!!!!!1!1!1!!

я очередной победитель лотка, в общем примерно за сутки я порывшись и найдя https://habr.com/ru/articles/908086/ и https://github.com/dzaytsev91/petkit-proxy/tree/main собрал свой велосипед на их основе. долго писать не буду просто скопирую выжимку своего помощника QWEN. но основная мысль такая нужно чтобы лоток сделал запрос на http://api.eu-pet.com/6/t4/dev_device_info в ответе которого нужно подменить нужные нам параметры, НО сначала он должен достучаться до китайского mqtt иначе зависает, но он не может т.е. mqtt мы тоже должны подменить на свой. Далее прошу любить и жаловать QWEN:

Как я взломал китайский умный лоток и заставил его работать без интернета

Привет, Пикабу! Хочу поделиться своей эпопеей по «приручению» китайского умного лотка Petkit Pura Max. История о том, как китайцы попытались меня обмануть, а я заставил их устройство работать локально.

ПРЕДЫСТОРИЯ

Купил я себе этот чудо-лоток за немалые деньги. Вещь вроде отличная: сам убирается, взвешивает кота, показывает статистику в приложении. Красота!

Но тут случилась беда — китайские сервера начали глючить, а то и вовсе отключаться. Лоток, который стоил как хороший смартфон, превратился в бесполезное ведро с песком. Он наотрез отказывался работать без подключения к серверам в Китае, даже базовая функция автоочистки не включалась!

Производитель по сути превратил дорогое устройство в кирпич, который зависит от серверов за тридевять земель. Ну уж нет!

🔍 ЧТО Я ОБНАРУЖИЛ

Покопавшись в сетевом трафике, я выяснил:

Лоток постоянно стучится на китайские сервера (api.eu-pet.com и aliyuncs.com)

Без ответа от этих серверов он не включает автоочистку (autoWork: 0)

Он использует MQTT (протокол для IoT) для связи с облаком

Прошивка жестко проверяет ответы сервера и уходит в бесконечный цикл перезагрузки, если что-то не так

Китайцы сделали классическую защиту: «Не можешь связаться с нами? Тогда не работай вообще!»

🛠️ ЧТО Я СДЕЛАЛ (ТЕХНИЧЕСКАЯ ЧАСТЬ)

Решил я сделать полную локализацию устройства. Вот пошагово:

1. Поднял свой MQTT-брокер (Mosquitto)

Чтобы лоток думал, что он подключен к «облаку», но на самом деле общался только с моим компьютером.

2. Написал Flask-прокси на Python

Этот прокси перехватывает ВСЕ запросы лотка к китайским серверам и модифицирует их на лету:

Когда лоток запрашивает настройки (dev_device_info), прокси находит блок settings и меняет autoWork: 0 на autoWork: 1

Всё остальное оставляет без изменений, чтобы прошивка не заподозрила подвох

3. Настроил AdGuard Home

Чтобы перехватывать DNS-запросы лотка:

api.eu-pet.com → перенаправляю на 192.168.0.236 (мой ПК)

*.aliyuncs.com → тоже на 192.168.0.236

4. Пробил брандмауэр Windows

Открыл порт 1883 для MQTT-подключений.

5. Настроил NAT (перенаправление портов)

Самая хитрая часть! Китайская прошивка оказалась хитрой — она игнорировала мой DNS и использовала жестко прописанные сервера. Поэтому я сделал так:

powershell

1

netsh interface portproxy add v4tov4 listenport=1883 listenaddress=0.0.0.0 connectport=1883 connectaddress=192.168.0.236

Теперь ВСЕ подключения на порт 1883 (даже если лоток узнал реальный IP китайского сервера) перенаправляются на мой Mosquitto!

6. Победил кэширование Docker

Docker на Windows упорно не хотел видеть изменения в коде. Спасло использование volumes (монтирование файлов напрямую с диска).

🎯 РЕЗУЛЬТАТ

Теперь мой лоток: ✅ Работает полностью локально — без интернета и китайских серверов
✅ Автоочистка включена (autoWork: 1)
✅ Все данные остаются у меня — никакой телеметрии в Китай
✅ Стабильно работает — не зависит от того, работают ли сервера в Шэньчжэне

В логах я вижу:

Лоток зашел (вес 862г, использован 9 раз)

Кот зашел (вес 4099г, провел 17 секунд)

Сработала автоочистка (auto_clear: 1)

💡 ГЛАВНЫЕ ИНСАЙТЫ

Китайские IoT-устройства часто имеют hardcoded DNS (8.8.8.8) и игнорируют настройки роутера. Решение — NAT на уровне ОС.

Прошивки проверяют структуру JSON — если добавить лишнее поле не туда, устройство уходит в бесконечный цикл перезагрузки.

Холодная перезагрузка (2 минуты без питания) — это must have для сброса кэша MCU.

Volume в Docker на Windows — единственный способ заставить контейнер видеть изменения файлов в реальном времени.

📦 ЧТО НУЖНО ДЛЯ ПОВТОРЕНИЯ

Компьютер/сервер с Docker (у меня Windows 10 + Docker Desktop)

Статический IP (у меня 192.168.0.236)

AdGuard Home (для DNS)

Mosquitto (MQTT-брокер)

Flask-прокси (мой код на Python)

Доступ к настройкам роутера

Весь код и подробная инструкция — в моем GitHub (ссылка в профиле). Там же docker-compose.yaml и чек-лист для диагностики.

🏆 ИТОГИ

Потратил около 20 часов на отладку, но оно того стоило! Теперь у меня:

Независимое устройство

Полный контроль над данными

Гордость за то, что обошел китайскую защиту 😎

Мораль: Покупая IoT-устройства, всегда думайте — а что будет, когда производитель отключит сервера? Лучше сразу готовить план локализации!

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества