Взлом DRM Умной посудомоечной машины

Взлом DRM Умной посудомоечной машины

Moody

Еще в январе 2021 года я увидел обзор от Techmoan на посудомоечную машину Bob компании Daan Tech. Боб - это элегантная и компактная посудомоечная машина, способная уместиться на столешнице, со встроенным резервуаром для воды, который можно наполнять вручную, не подключая машину к водопроводу.

Techmoan был весьма впечатлен, упомянув о простоте ее установки и использования. Мне тоже очень понравилась эта посудомойка и вскоре я ее заказал.

Боб прибыл ко мне через 2 месяца ожидания, и в целом я им оказался очень доволен. Он умещается на моей столешнице в кухне, в нем достаточно места для посуды, он экономит воду и в целом отлично работает. Без каких-либо проблем, прямо из коробки.

Боб также подключен к Интернету (а как без этого), но я никогда не открывал его веб-интерфейс. Зачем вообще посудомоечной машине интернет?

Кассеты Боба

Одной из главных особенностей посудомоечной машины Боб является кассета для мытья посуды - универсальный картридж с моющим средством. Просто вставьте и включите! Не нужно думать о том, сколько понадобится моющего средства и вручную заливать его при каждой стирке, это очень удобно!

Существует два типа кассет:

Поп-кассета

  • Содержит моющее средство и ополаскиватель.
  • Хватает на 30 помывок.

Рок-н-ролл-кассета

  • Содержит чистящее средство и средство для удаления накипи.
  • Предназначена для глубокой очистки
  • Рекомендуется использовать каждые 90 циклов
  • Хватает на 1 помыквку

Преимущества

Daan Tech привели несколько преимуществ кассет:

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

Возмутительная стоимость

Хотя эти преимущества совершенно справедливы, и мне действительно понравилось пользоваться кассетами, такое удобство имеет свою цену, которую Daan Tech с радостью заберет из вашей зарплаты. Глядя на их веб-сайт, можно увидеть, что упаковка из 4 кассет стоит 29,90 фунтов стерлингов:

С учетом доставки и НДС это стоит колоссальные 43 фунта стерлингов (60 долларов США) за 90 помывок! Это 48 пенсов (67 центов) за помывку. Может показаться, что это не так уж много, но посчитайте наперед.

Год ежедневной эксплуатации обошелся бы в 174 фунта стерлингов (242 доллара США), с расходом только на кассеты! 242 доллара на обслуживание посудомоечной машины!

И да, вы помните про ее подключение к Интернету? Вся соль в том, что когда моющее средство заканчивается, Боб может изменять порядок кассет точно так же, как это делают жалкие струйные принтеры от HP.

Понятно, что Daan Tech делают ставку на удобство использования подписочной модели. Это и правда удобно, но лично я могу придумать несколько лучших вариантов использования своих 174 фунтов стерлингов, чем покупка картриджей для посудомоечной машины.

Альтернативы

Стоит отдать должное Daan Tech. После того, как кассета опустеет, ее можно оставить в посудомойке и вручную подливать моющие средства. Однако производитель категорически против этого, ссылаясь на несколько недостатков:

  • Заливать моющие средства при каждой стирке - неудобно и хлопотно
  • Дозировка может быть сложной, так как большинство таблеток, капсул и жидкостей предназначены для полноразмерных посудомоечных машин.
  • Многоступенчатое дозирование невозможно, нельзя добавлять ополаскиватель после основной стирки.
  • Cо временем может образоваться накипь, которая навредит машине.

Понятно, что эта посудомоечная машина была разработана с учетом использования оригинальных кассет, и мне нравится их простота - установил и забыл. Вот почему я сделал приоритетной задачей исследование того, как это работает.

Более пристальный взгляд

Глядя на кассету, мы видим, что посередине расположена небольшая печатная плата, имеющая 4 контакта с каждой стороны:

Внутри посудомойки можно увидеть разъем для этой печатной платы, а также два шланга для откачки моющего средства во время стирки:

Обратите внимание, что в машину входит только 4 провода. Учитывая то, что Бобу необходимо считать содержимое кассеты, чтобы определить, сколько осталось стирок, а затем обновить данные после ее использования, я почти сразу догадался, что же содержит эта загадочная печатная плата.

Ответ - I2C EEPROM, популярный тип энергонезависимой памяти. EEPROM сохраняет все данные, что находятся внутри даже после потери питания. Это очень дешевая память, что делает ее идеальной для хранения небольших конфигураций во встроенных системах.

Чтобы разобраться с этим раз и навсегда, я извлек плату из корпуса, расплавив пластик паяльником. Немного грязно, и мне, наверное, стоило бы использовать дремель, но у меня его не оказалось под рукой.

Присмотревшись к печатной плате, мои подозрения подтвердились:

Это просто EEPROM 24C02 с подтягивающими резисторами 4,7K на I2C линиях, небольшим конденсатором и парой диодов, вероятно, для защиты от обратной вставки.

Глядя на таблицу, можно сделать вывод о том, что 24C02 может хранить только 256 байт данных, поэтому я предполагаю, что после помывки внутри происходит крайне мало изменений.

Содержимое памяти

Итак, мой текущий план - прочитать, что же находится внутри EEPROM. Казалось бы, тут понадобится специальный разъем, однако порывшись в корзине с запчастями, я обнаружил, что к плате отлично подходит к USB-A! Единственный ньюанс - чтобы он не замыкался на контактах, пришлось заизолировать металлический корпус.

Я нашел плату, оставшуюся от работы с микроволновкой, и быстро собрал небольшое хитроумное приспособление для чтения EEPROM:

Оно просто прочитало все 256 байтов, хранящиеся в EEPROM, через последовательный порт. Я написал небольшой Python-скрипт, чтобы сохранить их как .bin файл.

Вот краткий обзор того, что находится внутри поп-кассеты с оставшимися 26 помывками:

Мы видим, что:

  • Большая часть EEPROM не используется ( 0xff)
  • В начале есть ASCII строка, похожая на UUID
  • Classique кажется указывает на тип кассеты

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

Я вставил кассету обратно, вымыл посуду еще раз, сдампил память и сравнил результаты:

И вот оно! Глядя на содержимое, можно увидеть, что только один байт находящийся по адресу 0xa1 немного изменился, его значение поменялось с 0x4A до 0x49 при переходе с 26 до 25 стирок.

Кажется, что первоначальное значение этого байта у нового картриджа начинается с 0x4e (30 помывок), а затем постепенно уменьшается.

Я изменил его на 0x3f, что должно было равняться 15 стиркам, и поставил обратно. Но случилось следующее:

111 стирок! 😅 .

Немного озадаченный, я попробовал пару других значений. И составил таблицу:

| Washes Left | Value @ 0xa1 |
|:-----------:|:------------:|
|      30     |     0x4e     |
|     ...     |              |
|      16     |     0x40     |
|      15     |     0x5f     |
|     ...     |              |
|      0      |     0x50     |

Читатель с орлиным взглядом заметит, что значение 0xa1 рассчитывается как количество оставшихся помывок XOR 0x50, большое тебе спасибо! Не знаю, зачем они это сделали, но все верно!

Чтобы сбросить кассету на 30 стирок, все, что мне нужно сделать, так это установить данный байт обратно на 0x4e, - достаточно легко!

Благодаря чипу EEPROM, стандартному расстоянию в 0,1 дюйма между контактами, однобайтовому счетчику и отсутствию проверки ошибок, кажется, что Daan Tech не особо заморачивались с защитой, полагая, что такая работа не стоит свеч. Вот и правильно - мне меньше работы!

Что теперь?

Теперь я умею сбрасывать счетчик кассеты - это очень здорово! Но что, если я захочу пополнить ее моющим средством? В конце концов, вся эта затея оказалась бы бессмысленной, если бы у них действительно был секретный "соус", который нельзя найти больше нигде на рынке.

Конечно, сами Daan Tech предупредждают, чтобы вы не играли с огнем:

Так какое же содержимое у этих кассет? К счастью, Daan Tech предоставили некоторые подробности в руководстве пользователя:



Некоторые термины они обозначили расплывчато, чтобы отпугнуть психов вроде меня. Но мы все же можем извлечь из этого некоторую полезную информацию:

  • Кассеты имеет два бака
  • Бак №1 содержит 130 мл моющего средства, в основном это гидроксид натрия (NaOH), а также этидроновая кислота с концентрацией менее 5%.
  • Бак №2 содержит 35 мл промывочной жидкости, также менее 5% концентрации.

Как следует из названия, моющее средство помогает избавляться от жира и очищать посуду, а ополаскиватель уменьшает образование водяных полос и улучшает эффективность сушки. Компания Technology Connections сняла видео на эту тему, так что рекомендую посмотреть его!

Я также хотел узнать, сколько Боб на самом деле использует моющего средства на каждом этапе стирки, поэтому я провел экспресс-стирку и взвесил сточные воды на каждом из этапов. Расход воды оказался следующим:

  • 1000 мл на помывку
  • 650 мл для смывания моющих средств
  • 1200 мл полоскание

В целом, выходит чуть меньше 3 л воды на всю посуду! Очень эффективно!


Теперь я могу рассчитать концентрацию моющего средства:

  • Бак 130 мл / 30 помывок = 4,33 мл за помывку
  • 4,33 мл моющего средства на 1000 мл воды = концентрация 0,433% или соотношение 1: 231.

Аналогично для ополаскивателя:

  • Бак 35 мл / 30 помывок = 1,17 мл за помывку
  • 1,17 мл ополаскивателя на 1000 мл воды = концентрация 0,117% или соотношение 1: 855.

Поиск моющего средства

Теперь можно начать поиск моющих средств в интернете.

Я сначала попробовал поискать «Концентрированное моющее средство для посудомоечных машин», результаты поиска вернули много геля для посудомоечной машины из супермаркета, что не совсем то, что нужно. Но это быстро привело к чему-то гораздо более многообещающему.

Волшебное фраза выглядит так: Commercial Dishwasher Detergent & Rinse Aid. Быстрый поиск показал довольно много 5-литровых моющих и ополаскивающих средств по очень разумной цене:

Конечно, теперь возникает вопрос, какое из них выбрать? К счастью, все химические продукты в Великобритании поставляются с Safety Data Sheet регламентом, который содержит состав и концентрацию того, что находится внутри. Таким образом, я могу сравнить неизвестное моющее средство с тем, что находится в оригинальных кассетах и получить приблизительное представление, насколько они схожи.

Если посмотреть на самое дешевое моющее средство (вверху слева), его инструкция гласит:

Альтернативный текст

Приблизительный коэффициент из моих предыдущих расчетов был равен 1: 231. Смотрим технический паспорт:

Состав и концентрация аналогичны! Оба менее 5%.

Переходим к самому дешевому ополаскивателю:

Опять же, то что нужно! Прекрасные заменители моющих средств для кассет.

Конечно, я понимаю, что химический состав может не совпадать на 100%. Но эти моющие средства предназначены для использования на профессиональных коммерческих кухнях, поэтому вряд ли они будут слабыми. А теперь мы перейдем к анализу затрат!

Себестоимость

Самое интересное: давайте посмотрим, сколько я сэкономлю, используя коммерческие моющие средства.

Моющее средство

  • 5,99 фунтов стерлингов без НДС, 7,2 фунта стерлингов с НДС
  • 5000 мл / 4,33 мл на одну помывку = 1154 помывок
  • 7,20 £ / 1154 = 0,0062 £ = 0,62 пенсов за помывку

Ополаскиватель

  • 6,29 фунтов стерлингов без НДС, 7,60 фунтов стерлингов с НДС
  • 5000 мл / 1,17 мл на одну помывку = 4273 помывок
  • 7,60 фунтов стерлингов / 4273 = 0,0018 фунтов стерлингов = 0,18 пенсов за помывку

При этом общая стоимость помывки составляет:

0,62 пенсов + 0,18 пенсов = 0,80 пенсов или 1,1 центов США!

Ранее мы узнали, что одна кассета стоит 48 пенсов (67 центов) за помывку.

Таким образом, самостоятельная заправка обходится более чем в 60 раз дешевле, что дает значительную экономию в 98% затрат по сравнению с покупкой новой кассеты!

Более того, 5 л моющего средства хватит на 3 года ежедневной стирки, а ополаскивателя - почти на 12 лет! За это время вы бы потратили 2088 фунтов стерлингов на кассеты, и кто знает, станут ли они продаваться спустя пару лет.


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

Тестирование

Я купил по 1 канистре моющего и ополаскивающего средств:

И забрал их на месте, поэтому мне не пришлось оплачивать доставку. Общая сумма составила около 17 фунтов стерлингов.

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

WARNING: См. это руководство для получения дополнительных сведений, если планируете сделать это самостоятельно.

Затем я вставил кассету обратно.

Как и ожидалось, Боб считал ее, оставив 30 помывок:

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

Плата для перемотки Боба

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

Я быстро спроектировал печатную плату и назвал ее Bob Rewinder, а после - спаял ее прототип вручную:

Альтернативный текст

Просто вставляем в него кассету:

И нажимаем на RENEW. Кнопка сбросит EEPROM, а я смогу почти бесплатно пополнить кассету и использовать ее вновь!

Мысли и выводы

В этом проекте я хотел изучить возможность заправки и повторного использования кассет для посудомоечной машины Боб, чтобы сохранить удобство установки и использования за небольшую стоимость.

В процессе я ...

  • Идентифицировал чип внутри кассеты.
  • Сдампил память и разобрался, как сбросить счетчик.
  • Рассчитал расход и концентрацию моющего средства.
  • Исследовал альтернативные моющие средства.
  • Провел анализ затрат.
  • Сделал пробный запуск с коммерческими моющими средствами.
  • Разработал печатнную плату, позволяющая легко заменить кассету.

Оглядываясь назад, я понимаю, что ничего особенно сложного не было. Однако работа была связана с множеством микротем, изучая которые, я узнал много нового о посудомоечных машинах и их моющих средствах, вероятно, больше, чем мне бы хотелось :)


Что кажется парадоксальным, так это то, что Daan Tech не стесняется говорить об экологическом цикле эксплуатации кассет, при этом у них нет проблем с их продажей по цене в 60 раз превышающей цену, на которую рассчитано всего 30 помывок. Единственное оправдание заключается в том, что вы должны отправить их по почте обратно во Францию, чтобы их можно было пополнить.

Если они действительно хотели сократить использование одноразового пластика, что плохого в многоразовых отсеках для моющих средств, как в любых других полноразмерных и коммерческих посудомоечных машинах? Это кажется намного менее хлопотным, чем пересылка пластиковых картриджей туда и обратно по всему миру.

Несмотря на DRM и предупреждения о том, что нельзя заправлять кассеты самостоятельно, они даже сами признались, что кассеты можно использовать повторно сотни раз:

Они также упомянули, что обычные пластиковые бутылки для моющих средств вредны для окружающей среды, в то время как сами кассеты рассчитаны только на 30 стирок и используют гораздо больше пластика и электроники.

Чем больше я об этом думаю, тем больше я могу проводить параллель между этими кассетами и теми картриджами для струйных принтеров с завышенной ценой, которые часто стоят дороже самого принтера. Было бы неудивительно, если бы Daan Tech черпали вдохновение именно оттуда.


В конце концов, я рад, что приручил еще одно совершенно ненужное «умное» устройство, подключенное к Интернету, и смог повторно использовать и заправлять картридж за 1/60 стоимости покупки нового.

Таким образом, мне больше не нужно беспокоиться об использовании Боба. Раньше у меня в голове постоянно возникало беспокойство по поводу того, чтобы получить максимальную отдачу от каждой стирки, потому что, как только кассета, мне придется долго ждать ее возвращения по почте, а также думать о том, как дорого она мне обходится. Теперь его не возникает.

Несмотря на мои длинные тирады, мне действительно очень нравится сама посудомоечная машина. Она тихая, экономичная, быстрая, компактная, отлично выглядит, не требует водопровода и идеально подходит для небольших домов.


Переведено и адаптировано специально для @cybred.

Report Page