Half Decent 咖啡秤程式設計指南

* 透過藍牙傳送時,這些指令應以二進位格式送出

  • 透過 USB 及 Wifi 傳送時,這些指令應以十六進位字串送出
  • 另請參閱較舊的 Decent Scale API 文件。Half Decent Scale 與該指令集相容,但新增了大量新指令
  • 另亦提供 Python 函式庫
  • Javascript 應用程式與秤重函式庫(支援藍牙、USB 及 Wifi!)


  • 全新的「心跳」功能可解決 Android 9 及更舊版本的連線問題。

  • 應用程式至少每 5 秒需傳送一次「心跳」,否則藍牙連線將會中斷
  • 傳送給咖啡秤的心跳指令為:「03 0a 03 ff ff 00 0a」
  • 為何需要此功能?
  • 較舊的 Android 版本存在一個問題:即使應用程式已不再持有連線,藍牙連線仍會保留在裝置上。
  • 心跳功能可解決此問題,這與 Decent 在 DE1 上處理藍牙時所採用的方法相同,用以解決相同的問題。
  • 不認識心跳功能的較舊應用程式,將會自動停用心跳要求
  • 當它們傳送 LED ON 藍牙指令,且該指令集中的第 6 個位元組設為 00 時
  • 或傳送 TARE 指令,且其最後一個位元組為 00 時。
  • 想要使用心跳功能的應用程式(強烈建議使用),
  • 應將 01 作為 LED ON 指令的最後一個資料位元組送出,例如:「03 0A 01 01 00 01 08」
  • 亦應將 01 作為 TARE 指令的最後一個資料位元組送出,例如:「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 關閉 OLED

    03 0A 01 開啟 OLED

    (請閱讀上方關於心跳功能的說明)

    03 0A 02 關機

    03 0A 03 00 退出省電模式,正常 OLED 亮度

    03 0A 03 01 進入省電模式,最低 OLED 亮度

    03 0B 00 計時器停止

    03 0B 02 計時器重設

    03 0B 03 計時器開始

    03 1A 00 手動校正

    03 1A 01 智慧校正

    03 1B WiFi OTA

    03 1D 00 將取樣設為 1

    03 1D 01 將取樣設為 2

    03 1D 02 將取樣設為 4

    03 1E 00 00 隱藏選單

    03 1E 00 01 顯示選單

    03 1E 01 00 隱藏關於資訊

    03 1E 01 01 顯示關於資訊

    03 1E 02 00 隱藏除錯資訊

    03 1E 02 01 顯示除錯資訊

    03 1F 重設

    03 20 00 停用 USB 重量傳輸

    03 20 01 啟用 USB 重量傳輸

    03 22 傳送一次電池電壓資料


    重量:

    data[0] = modelByte;

    data[1] = 0xCE;  // 重量穩定時的類型位元組

    data[2] = weightByte1;

    data[3] = weightByte2;

    data[4] = 0x00;

    data[5] = 0x00;

    data[6] = calculateXOR(data, 6);  // 最後一個位元組為 XOR 驗證


    按鍵事件:

    data[0] = modelByte;

    data[1] = 0xAA;  // 重量穩定時的類型位元組

    data[2] = buttonNumber;//1 代表 O 按鍵,2 代表 ▢ 按鍵

    data[3] = buttonShortPress;//1 代表短按,2 代表長按

    // 依需要以虛擬資料或實際資料填滿其餘部分

    data[4] = 0x00;

    data[5] = 0x00;

    data[6] = calculateXOR(data, 6);  // 最後一個位元組為 XOR 驗證


    關機事件:

    data[0] = modelByte;

    data[1] = 0x2A;

    data[2] = buttonNumber;

    data[3] = buttonShortPress;

    data[4] = 0x00;

    data[5] = 0x00;

    data[6] = calculateXOR(data, 6);  // 最後一個位元組為 XOR 驗證


    電池電壓:

    data[0] = modelByte;

    data[1] = 0x22;

    data[2] = voltageByte1;

    data[3] = voltageByte2;

    data[4] = 0x00;

    data[5] = 0x00;

    data[6] = calculateXOR(data, 6);  // 最後一個位元組為 XOR 驗證


    透過 USB 除錯

    您可以連接 USBC 傳輸線,並使用如 Serial 等程式,設定為 115200,8,N,1,以觀察咖啡秤的運作情形。這讓除錯變得極為容易。

    HDS 序列埠


    Half Decent Scale 手冊:目錄

    #programmer #api #bluetooth #wifi #usb



  • 這是以下內容的翻譯: Programmers guide to the Half Decent Scale


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