하프 디센트 스케일 프로그래머 가이드

  • 블루투스를 통해서는 이 명령들을 바이너리로 전송해야 합니다

  • USB와 Wifi를 통해서는 이 명령들을 Hex 문자열로 전송해야 합니다
  • 이전 Decent Scale API 문서도 참고하시기 바랍니다. 하프 디센트 스케일은 해당 명령 세트와 호환되지만, 상당히 많은 수의 새로운 명령이 추가되었습니다
  • 파이썬 라이브러리도 사용하실 수 있습니다
  • Javascript 앱 및 계량 라이브러리 (블루투스, USB, Wifi 지원!)


  • 새로운 '하트비트' 기능은 Android 9 및 이전 버전의 연결 문제를 해결합니다.

  • 앱은 최소 5초마다 '하트비트'를 전송해야 하며, 그렇지 않으면 블루투스 연결이 끊어집니다
  • 스케일로 전송할 하트비트 명령은 다음과 같습니다: “03 0a 03 ff ff 00 0a”
  • 이 기능이 존재하는 이유는 무엇일까요?
  • 이전 Android 버전에서는 앱이 더 이상 연결을 유지하지 않더라도 블루투스 연결이 기기에 유지되는 문제가 있습니다.
  • 하트비트는 이 문제를 해결하며, Decent가 DE1의 블루투스에서 동일한 문제를 해결하기 위해 사용한 것과 같은 방식입니다.
  • 하트비트 기능을 인식하지 못하는 이전 앱은 하트비트 요구 사항을 자동으로 비활성화합니다
  • LED ON 블루투스 명령을 전송할 때 해당 명령의 6번째 바이트를 00으로 설정하는 경우
  • 또는 TARE 명령의 마지막 바이트를 00으로 설정하는 경우
  • 하트비트 기능을 사용하려는 앱(적극 권장합니다)은
  • LED ON 명령의 마지막 데이터 바이트로 01을 전송해야 합니다. 예: “03 0A 01 01 00 01 08”
  • TARE 명령의 마지막 데이터 바이트로도 01을 전송해야 합니다. 예: “03 0F 01 00 00 01 0C”
  • 이러한 LED ON 및 TARE 명령의 변형은 하트비트 기능이 없는 이전 Decent Scale에 어떠한 부정적인 영향도 주지 않습니다.
  • DE1 사용자는 4월 11일 이후의 NIGHTLY de1app으로 업그레이드하시기 바랍니다


  • HDS가 수신할 수 있는 명령(v2.5.8)

    03 0F TARE (체크섬 포함)

    (하트비트 기능에 관한 위의 안내를 읽어 주시기 바랍니다)

    03 0A 00 Turn off oled

    03 0A 01 Turn on oled

    (하트비트 기능에 관한 위의 안내를 읽어 주시기 바랍니다)

    03 0A 02 Power off

    03 0A 03 00 Exit power mode, normal oled brightness

    03 0A 03 01 Enter power mode, lowest oled brightness

    03 0B 00 Timer stop

    03 0B 02 Timer reset

    03 0B 03 Timer start

    03 1A 00 Manual Calibration

    03 1A 01 Smart Calibration

    03 1B WiFi OTA

    03 1D 00 Set sample to 1

    03 1D 01 Set sample to 2

    03 1D 02 Set sample to 4

    03 1E 00 00 Hide Menu

    03 1E 00 01 Show Menu

    03 1E 01 00 Hide About info

    03 1E 01 01 Show About info

    03 1E 02 00 Hide debug info

    03 1E 02 01 Show debug info

    03 1F Reset

    03 20 00 Disable Weight via USB

    03 20 01 Enable Weight via USB

    03 22 Send Battery voltage data once


    무게:

    data[0] = modelByte;

    data[1] = 0xCE;  // Type byte for weight stable

    data[2] = weightByte1;

    data[3] = weightByte2;

    data[4] = 0x00;

    data[5] = 0x00;

    data[6] = calculateXOR(data, 6);  // Last byte is XOR validation


    버튼 이벤트:

    data[0] = modelByte;

    data[1] = 0xAA;  // Type byte for weight stable

    data[2] = buttonNumber;//1 for O button, 2 for ▢ button

    data[3] = buttonShortPress;//1 for short press, 2 for long press

    // Fill the rest with dummy data or real data as needed

    data[4] = 0x00;

    data[5] = 0x00;

    data[6] = calculateXOR(data, 6);  // Last byte is XOR validation


    전원 끄기 이벤트:

    data[0] = modelByte;

    data[1] = 0x2A;

    data[2] = buttonNumber;

    data[3] = buttonShortPress;

    data[4] = 0x00;

    data[5] = 0x00;

    data[6] = calculateXOR(data, 6);  // Last byte is XOR validation


    배터리 전압:

    data[0] = modelByte;

    data[1] = 0x22;

    data[2] = voltageByte1;

    data[3] = voltageByte2;

    data[4] = 0x00;

    data[5] = 0x00;

    data[6] = calculateXOR(data, 6);  // Last byte is XOR validation


    USB를 통한 디버깅

    USBC 케이블을 연결하고 Serial과 같은 프로그램을 115200,8,N,1 설정으로 사용하시면 스케일의 작동 상태를 확인하실 수 있습니다. 이를 통해 디버깅이 매우 쉬워집니다.

    HDS serial


    Half Decent Scale 매뉴얼: 목차

    #programmer #api #bluetooth #wifi #usb



  • 원본 : Programmers guide to the Half Decent Scale


    john created 2025/02/26, john updated 2026/11/11