1P by GN⁺ | ★ favorite | 댓글 1개
  • Bob Rewinder는 Daan Tech의 Bob Dishwasher 세제 카트리지 Bob Cassette의 EEPROM 카운터를 재설정해, 새 카세트를 사지 않고 리필해 재사용하려는 프로젝트임
  • Bob Cassette 내부 PCB는 24C02 I2C EEPROM을 쓰며, 30회 세척 카운터는 주소 0xa1의 1바이트 값으로 관리되고 Washes left XOR 0x50 형태로 계산됨
  • Bob Cassette 4팩은 배송·VAT 포함 £43로 90회 세척에 해당해 회당 48p이며, 상업용 식기세척기 세제와 린스 보조제를 쓰면 계산상 회당 0.80p까지 낮아짐
  • 실험은 Pop Cassette의 세제 탱크 130mL와 린스 탱크 35mL, Bob의 물 사용량과 희석비를 바탕으로 대체 세제를 찾고, 실제 리필 후 세척 결과가 이전과 다르지 않았다고 확인함
  • 이 프로젝트는 Bob Cassette의 편의성은 유지하면서 DRM 기반 소모품 비용을 제거하고, 버튼 한 번으로 EEPROM을 갱신하는 전용 보드까지 제작함

Bob Cassette와 비용 문제

  • Bob Dishwasher는 Daan Tech의 소형 countertop 식기세척기로, 내장 물탱크를 손으로 채울 수 있어 배관이 필요 없고 공간을 적게 씀
  • Bob Cassette는 세제 카트리지 방식의 주요 기능으로, 매번 세제를 계량해 넣지 않고 꽂아서 쓰는 구조임
  • 카세트는 두 종류가 있음
    • Pop Cassette: 세척 세제와 린스 보조제가 들어 있으며 30회 세척 지속
    • Rock’n’roll Cassette: 세척제와 석회질 제거제가 들어 있으며 Bob의 딥클린·유지보수용이고 90사이클마다 사용 권장, 1회 지속
  • Daan Tech가 제시한 장점은 간편한 사용, 필요한 양만 분사해 낭비 감소, 2단계 분사, 재활용 플라스틱 사용과 반송·재사용 가능성임
  • 비용은 큰 부담으로 계산됨
    • 4팩 가격은 웹사이트 기준 £35
    • 배송과 VAT 포함 £43, 90회 세척
    • 회당 48p, 67센트
    • 매일 1회 사용하면 1년 Bob Cassette 비용만 £174, $242
  • Bob Dishwasher는 인터넷 연결 기능이 있지만, 프로젝트에서는 이 연결이 카세트가 부족할 때 자동 재주문하는 용도라고 봄
  • 빈 카세트를 그대로 둔 채 수동으로 세제를 넣을 수는 있지만, Daan Tech는 매번 계량해야 하고, 일반 세제의 용량 조절이 어렵고, 다단계 투입이 불가능하며, 석회질 문제가 생길 수 있다고 안내함

카세트 내부 EEPROM 분석

  • 카세트 중앙에는 작은 PCB가 있고 양쪽에 4개씩 접점이 있음
  • 본체 쪽에는 PCB 연결부와 세제를 펌프로 빼내는 호스 2개가 있음
  • 기기에는 4가닥 전선만 들어가며, Bob은 카세트의 남은 세척 횟수를 읽고 세척 후 갱신해야 하므로 내부 칩은 비휘발성 메모리일 가능성이 있었음
  • 케이스 플라스틱을 납땜 인두로 녹여 PCB를 꺼낸 결과, 내부는 24C02 EEPROM으로 확인됨
    • I2C 라인용 4.7K 풀업 저항
    • 바이패스 커패시터
    • 역삽입 보호로 보이는 다이오드
  • 24C02는 256바이트만 저장할 수 있어, 카세트 내부 데이터 구조는 크지 않음

카운터 덤프와 재설정 방식

  • EEPROM을 읽기 위해 카세트 접점을 USB-A 암소켓에 맞춰 연결하고, 이전 프로젝트 보드와 Python 스크립트로 256바이트를 .bin 파일로 저장함
  • 26회가 남은 Pop Cassette 덤프에서 확인된 내용은 다음과 같음
    • 대부분의 EEPROM 영역은 0xff로 미사용
    • 앞부분에 UUID처럼 보이는 ASCII 문자열이 있음
    • Classique가 카세트 유형을 나타내는 것으로 보임
  • 한 번 더 세척한 뒤 덤프를 비교하자, 주소 0xa1의 1바이트0x4A에서 0x49로 바뀌었고 남은 횟수는 26회에서 25회로 줄었음
  • 30회 카운터는 0xa1 값을 0x4e 로 설정하면 재설정됨
  • GitHub 사용자 flopp는 0xa1 값이 Washes left XOR 0x50으로 계산된다고 지적함
  • 값 검증이 충분하지 않아 보였고, 0x3f로 바꾸자 Bob이 111회 남음으로 표시하는 사례도 있었음

대체 세제 조사와 희석비 계산

  • Bob Cassette를 리필하려면 내부 세제가 특별한 성분인지 확인해야 했고, Daan Tech 사용자 설명서에서 Pop Cassette 성분 정보를 얻음
  • Pop Cassette 구성은 다음과 같음
    • 탱크 1: 세척 세제 130mL, 주성분 Sodium Hydroxide와 Etidronic Acid, 농도 5% 미만
    • 탱크 2: 린스 액체 35mL, 농도 5% 미만
  • Bob의 express wash에서 폐수를 단계별로 무게 측정해 물 사용량을 계산함
    • 세척: 1000mL
    • 세제 헹굼: 650mL
    • 린스: 1200mL
    • 전체 물 사용량은 3L 미만
  • 이를 바탕으로 카세트의 회당 투입량과 희석비를 계산함
    • 세제: 130mL / 30회 = 4.33mL, 1000mL 물 기준 0.433%, 1:231
    • 린스 보조제: 35mL / 30회 = 1.17mL, 1000mL 물 기준 0.117%, 1:855
  • 인터넷 검색에서는 일반 소비자용 dishwasher gel보다 Commercial Dishwasher Detergent & Rinse Aid와 catering supplies 사이트가 더 적합한 후보였음
  • 영국의 화학 제품은 규정상 Safety Data Sheet가 있어 성분과 농도를 Bob Cassette 정보와 비교할 수 있었음
  • Jantex 상업용 세제와 린스 보조제의 사용 지침과 데이터시트는 앞서 계산한 희석비와 성분·농도 범위에 잘 맞았음
  • 2021-05-29 업데이트에서는 사용자 ziviossi가 같은 UFI 번호를 가진 Pop 및 R’n’R 카세트용 세제를 찾았다고 함
  • 2022-03-19 업데이트에서는 Hawk-v3가 정확한 세제 정보를 추가로 조사 중이며, 관련 논의는 dekuNukem/bob_cassette_rewinder 이슈 13에 있음

비용 비교와 실제 리필 테스트

  • 상업용 세제 기준 비용 계산은 Bob Cassette 대비 큰 차이를 보임
    • 세제: VAT 포함 £7.20, 5000mL / 4.33mL = 1154회, 회당 0.62p
    • 린스 보조제: VAT 포함 £7.60, 5000mL / 1.17mL = 4273회, 회당 0.18p
    • 합계는 회당 0.80p, 1.1센트
  • Bob Cassette의 회당 비용 48p와 비교하면 직접 리필은 60배 이상 저렴하고, 약 98% 비용 절감으로 계산됨
  • 5L 세제는 매일 세척 기준 3년 이상, 린스 보조제는 거의 12년 동안 쓸 수 있는 양으로 계산됨
  • 단, 이 계산은 세제 배송비를 포함하지 않은 최선의 경우이며, 세제가 다 쓰기 전에 변질될 가능성도 제외함
  • 배송비와 변질 가능성을 고려해도 회당 2p는 달성 가능하다고 봤고, 이는 여전히 약 30배 저렴한 수준임
  • 실제 테스트에서는 세제와 린스 보조제 두 통을 현지에서 약 £17에 구매함
  • 리필 과정은 PCB 창을 테이프로 막아 액체 유입을 막고, 무딘 바늘이 달린 주사기로 일방향 막을 뚫어 세제를 주입하는 방식임
  • 리필 후 Bob은 카세트를 30회 남음으로 읽었고, 한 번 세척한 결과 접시가 이전처럼 깨끗했으며 차이를 느끼지 못했다고 함

Bob Rewinder 보드와 결론

  • 임시 배선 대신 카세트를 버튼 한 번으로 갱신할 수 있는 전용 PCB를 설계했고, 이름을 Bob Rewinder로 붙임
  • Bob Rewinder는 카세트에 꽂아 쓰며, RENEW 버튼을 누르면 EEPROM 카운터를 재설정함
  • 프로젝트에서 수행한 작업은 다음과 같음
    • Bob Cassette 내부 칩 식별
    • EEPROM 덤프와 카운터 재설정 방식 파악
    • Bob의 세제 사용량과 농도 계산
    • 대체 세제 조사
    • 비용 분석
    • 상업용 세제로 테스트 세척
    • 카세트 갱신용 회로보드 설계
  • Daan Tech는 친환경적인 “positive cycle”을 내세우지만, 프로젝트는 30회만 지속되는 카세트를 새로 판매하고 프랑스로 반송해 재충전하는 모델을 비판함
  • Bob Cassette는 DRM이 적용된 잉크젯 카트리지와 유사하게 보이며, 소모품 비용이 제품 사용 경험에 부담을 준다고 봄
  • DRM 기반 비용 부담이 사라지자 Bob Dishwasher는 조용하고, 물을 적게 쓰고, 빠르고, 작고, 배관이 필요 없어 작은 집에 적합한 기기로 평가됨
  • Bob Rewinder 보드는 Tindie에서 구할 수 있으며, 사용법은 User Manual에 있음

댓글과 토론

Hacker News 의견들
  • 사람들이 카세트를 옹호하는 게 이상해 보임. 회사는 친환경을 중요하게 여긴다고 하면서 세제용 비싼 플라스틱 용기를 제조·판매·배송함
    게다가 기계는 이 특정 세제가 꼭 필요하지 않고, 카세트 하나를 끼워 둔 채 일반 식기세척기 세제를 써도 잘 동작함. 결국 카세트는 필수가 아니라 회사의 별도 수익원이고, 사실상 프린터 잉크 방식
    애초에 이런 플라스틱 폐기물을 만들 필요가 없었고, 액체나 분말 세제를 소량 쓰게 하면 됐음. 굳이 그 방식을 유지하더라도 왁스 코팅 종이 용기에 분말 세제를 담을 수 있었을 것임
    반납된 카세트를 얼마나 잘 재활용하거나 재사용하든, 카세트 자체가 존재할 필요가 없었음. 더 많은 플라스틱이 더 많은 공간을 차지하고, 더 오염을 일으키는 배송 트럭을 필요로 함
    결국 이 회사는 식기세척기와 세제 구독 서비스를 파는 중임. 최악은 아니고 어업만큼 플라스틱 폐기물을 만들지는 않지만, 여전히 더 많은 쓰레기를 팔려고 스스로를 친환경처럼 포장하는 회사로 보임

    • 리필이 비즈니스 모델을 건드리니 “속임수”처럼 보일 수도 있음. 프린터와 잉크에서 비슷한 경험을 했는데, 소속 스튜디오가 물려받은 큰 Epson 4880 프린터는 잘 만든 무거운 기계였고 잉크 카트리지를 리필하기 위한 “칩 리셋터”도 함께 있었음
      프린터는 비Epson 잉크를 쓰는 걸 아는 듯 작은 화면에 경고를 띄우지만, 클릭해서 넘어가면 허용함. 지금은 세척액을 채워 둔 상태임
      새 프린터들은 유럽이 아니면 이런 걸 허용하지 않음. DRM 칩이 부족해지는지, 일부 새 프린터는 예전 칩을 쓰는 새 잉크 카트리지를 쓰려면 펌웨어 업데이트가 필요하다고 함
      언젠가 이런 프린터나 식기세척기에 맞는 잉크·세제가 더 이상 생산되지 않아 거대한 문진이 되는 날이 올 수 있음
      회사들은 비싸게 팔되 사용 비용은 낮은 제품을 내놓고 싶어 하지 않는 것 같음. 사람들이 충분히 따져 보지 않는 게 문제일 수도 있음. 내가 사는 곳의 마트 진열대에는 포장 가격과 단위당 가격이 같이 표시돼 비교하기 훨씬 쉬움
      https://shop.inkjetmall.com/Epson-SureColor-P900에는 유럽 지역 버전은 단순한 칩 리셋터와 리필 카트리지로 동작하지만, 미국 지역 버전은 EPSON이 비EPSON 칩과 칩 리셋터 사용을 막도록 설계해 한동안 제3자 해법이 나오기 어려울 것이라고 적혀 있음
  • 일회용 플라스틱 덩어리가 필요하면서 “친환경 소형 식기세척기”라고 파는 건 매우 아이러니함. 절약되는 물의 양이 만들어지는 플라스틱 쓰레기를 상쇄하지 못할 것 같음
    웹사이트에는 “Daan Tech에서는 더 지속 가능하고 공정한 세상이 가능하다고 늘 믿어 왔다”고 쓰여 있는데, 그런 문구를 쓰면서 플라스틱 폐기물을 많이 만드는 더 나쁜 세척기를 파는 건 꽤 냉소적으로 보임

    • 그 결론들에는 거의 다 동의하기 어려움. 우선 카세트는 반납 가능하고, 웹사이트에도 그렇게 적혀 있음: https://daan.tech/discover-bob-cassette/
      “각 Bob 카세트는 반납 가능하고 재사용 가능하다. 우리는 그것들을 다시 채워 시장에 내놓는다. 순환을 닫고 탄소 발자국을 낮춘다”는 내용임
      또한 카세트를 반드시 써야 하는 것도 아님. 일반 식기세척기 태블릿을 넣으면 됨. Bob 설명서에도 적혀 있고 아마 웹사이트에도 있을 것임. 몇 년째 그렇게 쓰고 있고 문제가 없었음. Bob에는 DRM 같은 요소가 없음
      마지막으로, 말한 것처럼 더 나쁜 세척기가 아니라 더 작고 배관 면에서 더 유연한 기계임. Techmoan이 도입부에서 말했듯 작은 유럽 아파트에 사는 사람에게는 이게 Bob의 강한 장점임
    • 악의보다는 무능으로 보는 편임. 그 문구를 쓴 마케팅 담당자는 자신이 맡은 프로젝트의 수명주기 폐기물 분석을 걱정하지 않았을 것임
      환경에 좋을 거라고 말한 CEO나 창업자를 믿었을 가능성이 큼. 애초에 그런 분석을 걱정하는 유형도 아니고, 할 수 있는 역량도 없었을 수 있음
    • 문제는 플라스틱 덩어리를 회사에 돌려보낼 인센티브가 없다는 것임. 특히 가격이 이렇게 터무니없이 높다면 Sodastream처럼 빈 유닛을 반납하면 다음 주문에 할인을 적용하는 모델을 따라야 함
    • 식기세척기나 프린터의 리필 패키지는 제품에 붙은 SaaS나 다름없음. 고객에게 계속 과금하기 위한 어두운 패턴을 담고 있고, 사업을 수익성 있게 만들려는 게으른 방식일 뿐 고객에게는 별 이점이 없음
    • 카세트가 필수는 아님. 일반 세제를 쓸 수 있음
  • Bob을 알게 해줬다고 언급한 YouTube 채널도 추천할 만함: https://www.youtube.com/watch?v=hVup5ya0WVQ / https://www.youtube.com/user/Techmoan
    Mat/Techmoan은 현세대 하드웨어 리뷰와 추억의 전자기기 리뷰를 절묘하게 섞어 올림. 화려한 기능보다 잘 동작하고, 잘 만들어졌고, 오래 버티는 물건에 리뷰가 기우는 편임
    채널 스타일도 좋음. 약간 웃기고, 사실이 많고, 너무 기술적으로 빽빽하지 않으며 재미있음
    https://www.youtube.com/watch?v=s0y1pUtPGQk
    https://www.youtube.com/watch?v=JN_XeVSKqSY

  • 생각할수록 Bob 카세트와, 프린터 자체보다 더 비싸기도 한 과한 가격의 DRM 잉크젯 카트리지가 평행하게 보임
    20년도 더 전에 공개적으로 문서화된 프린터 DRM 해킹 시도가 있었고, 이 역시 카트리지 안의 EEPROM으로 이뤄졌음: https://eddiem.com/photo/CIS/inkchip/chip.html
    GUID는 리필된 같은 카트리지를 기계가 다시 받아들이지 못하게 하려고 넣은 줄 알았음. 잉크 카트리지에서는 프린터가 최근 N개 카트리지 ID를 기억하는 방식이 실제로 쓰이기 때문인데, 여기서는 그런 언급이 더 없는 게 이상함

    • 카트리지 해킹이 충분히 유행해서 판매에 영향을 주면, 회사가 펌웨어 업데이트로 바로 그런 제한을 넣을 수도 있음. 지금은 먼저 게으른 선택지를 택한 것처럼 보임
  • 이 글이 HN에 올라올 때마다 댓글은 곧장 “DRM 나쁘다!”로 가지만, 실제로 Bob 식기세척기는 독점 카세트를 쓰도록 요구하지 않음

    • 애초에 그런 게 존재한다는 것 자체가 황당함. 식기세척기 세제용 DRM 카세트라니, 이 세상은 관장이 필요함
    • 하지만 회사가 직접 카세트를 쓰지 않을 때의 여러 단점을 말하고 있음. 그러니 이건 분명히 DRM의 한 형태임. 기기를 완전히 벽돌로 만들지는 않지만, 기능을 확실히 줄임
    • 자세히 설명해 줄 수 있나? 제품 웹사이트에서 시판 세제를 쓰는 방법을 찾지 못했음
  • 액체 식기세척기 세제는 들어본 적이 없지만, 배송비와 부가세를 더해 90회 세척에 £43($60), 즉 1회당 48펜스(67센트)라는 가격은 우리나라의 “프리미엄” 식기세척기 태블릿 가격과 거의 비슷함

    • 다만 그 태블릿들은 약 네 배 많은 식기를 담는 식기세척기용 크기임
    • 액체 식기세척기 세제 브랜드는 아주 많음. 나는 가볍게 쓴 그릇을 가득 채워 돌릴 때, 예를 들어 달걀 같은 게 없으면 친환경 브랜드를 씀
    • Dawn과 베이킹소다 같은 것으로 직접 만들 수 있음. 순수 Dawn을 쓰면 식기세척기가 거품으로 가득 차기 때문에 안 되는 것임
  • 예전에도 같은 주제로 올라온 적이 있음: https://news.ycombinator.com/item?id=27013880 - Bob Cassette Rewinder: Hacking Detergent DRM (2021), 댓글 404개

  • 그 프로젝트가 멋져서 다른 저장소도 봤는데 재미있는 걸 많이 만들었음. 특히 duckypad와 이것이 마음에 듦: https://github.com/dekuNukem/daytripper

  • 린스 보조제는 쓰지 않는 게 좋음. 일부 제품은 극도로 낮은 농도에서도 장 내벽을 손상시킬 수 있다고 밝혀졌음
    개인적으로 써 봤을 때도 차이를 전혀 느끼지 못했음
    https://www.aaaai.org/tools-for-the-public/latest-research-s...

    • 그 연구는 가정용 식기세척기에서 일반적으로 쓰이는 농도에서 손상을 발견한 게 아님. 상업용 식기세척기에 해당하는 내용임
      다만 이 글에 관해서는 어느 정도 맞는 말일 수 있음. 작성자가 실제로 무슨 일이 벌어지는지 잘 모른 채 전문가용 식기세척기 린스와 세제를 쓰고 있기 때문임
      린스 보조제를 써도 차이를 못 느낀다면 물이 매우 연수일 수 있음. 많은 식기세척기에서는 물의 경도에 따라 린스 보조제 사용량을 조절해야 하고, 매우 연수라면 0으로 둬도 될 수 있음
    • 여러 번 세제로 씻은 뒤에도 접시에 향이 남는다는 사실만 봐도 린스 보조제가 얼마나 강한 계면활성제인지 드러남. 2/10, 추천하지 않음
    • 린스 보조제는 경수가 있을 때만 필요한 줄 알았음. 우리 집 물은 꽤 연수라서, 린스 보조제가 건조 성능이나 물자국 방지에 전혀 차이를 만들지 않았음. 린스 없이도 물자국이 없음
    • 린스 보조제는 직접 만들 수도 있음. 금속 이온을 킬레이트해서 물을 부드럽게 하는 구연산 조금, 역시 킬레이트제인 EDTA 약간, 그리고 순한 계면활성제를 쓰면 됨
    • 이 글은 상업용 식기세척기에 쓰는 린스 보조제에 관한 것임. 가정용 식기세척기용으로 팔리는 린스 보조제도 같은 성분을 담고 있나?
  • “DRM은 없다”고 주장하려 했음. 남은 세제량을 추적하는 단순한 플래시 메모리 칩이고, 전혀 암호화돼 있지 않기 때문임
    그런데 이상한 xor 0x50이 들어간 이유가 우회 금지 규정을 발동시키기 위한 “기술적 보호 조치”를 갖추려는 것일 수도 있나? (https://en.wikipedia.org/wiki/Copyright_and_Information_Soci...)

    • 일반 소비자가 스스로 우회할 수 없다면 그건 DRM임. 소비자가 어떤 식으로든 우회를 해야 한다면 역시 DRM