1 điểm bởi GN⁺ 2025-05-16 | 1 bình luận | Chia sẻ qua WhatsApp
  • Để tạo ra một chiếc smartwatch ổn trong năm 2025, trước hết cần xác định trải nghiệm mục tiêu, rồi điều chỉnh cho phù hợp với các ràng buộc về MCU, màn hình, pin và phần mềm
  • Việc chọn chip không chỉ là so sánh hiệu năng đơn thuần mà là một quyết định thiết kế sản phẩm gắn đồng thời với khả năng tương thích phần mềm, mức tiêu thụ điện năng và giá thành linh kiện
  • Core 2 Duo nhắm tới việc port PebbleOS nhanh bằng Nordic nRF52840 quen thuộc, nhưng Core Time 2 cần nhiều RAM và năng lực xử lý hơn do màn hình màu lớn hơn
  • Dòng SiFli SF32LB52x cung cấp SRAM từ 512KB trở lên, PSRAM 16MB, ngoại vi cho màn hình MIP, mức tiêu thụ khoảng 50µA khi kết nối BLE, giá dưới 2 USD và SDK mã nguồn mở
  • Core Time 2 dự kiến sẽ dùng SF32LB52J, biến thể 1.8V của SF32LB527, như một lựa chọn đáp ứng yêu cầu về điện năng, chi phí và màn hình trong khi vẫn duy trì PebbleOS mã nguồn mở

Thiết kế smartwatch là bài toán cân bằng ràng buộc

  • Smartwatch được chia thành ba phần lớn
    • Phần cứng đồng hồ là chiếc đồng hồ thực tế
    • Phần mềm đồng hồ, còn gọi là firmware hoặc hệ điều hành
    • Ứng dụng đồng hành trên di động cho iOS và Android, đảm nhiệm việc chuyển thông báo, tải mặt đồng hồ và các chức năng tương tự
  • Smartwatch không phải là thiết bị có một kiểu phù hợp cho tất cả mọi người, và kỳ vọng việc mã nguồn mở PebbleOS sẽ dẫn tới khả năng tạo ra smartwatch phù hợp với nhu cầu riêng của từng người
  • Thiết kế điện tử tiêu dùng là quá trình xác định trải nghiệm mục tiêu trước, rồi phân rã nó thành các thông số kỹ thuật và linh kiện có thể hiện thực hóa
    • Ví dụ: “một chiếc smartwatch luôn bật, đọc được dưới ánh nắng và dùng được 30 ngày”
    • Ví dụ thông số: màn hình e-paper, Bluetooth LE, chống nước, giá bán lẻ 150 USD
    • Ví dụ linh kiện: Sharp Memory LCD, pin lithium-polymer 150mAh, FreeRTOS

Năm hệ thống tạo nên phần cứng đồng hồ

  • Phần cứng đồng hồ được chia thành năm hệ thống cốt lõi
    • Chip vi điều khiển, thường tích hợp radio Bluetooth
    • Màn hình
    • Các cảm biến và thiết bị đầu ra như công tắc tact, cảm ứng, microphone, gia tốc kế, loa
    • Các linh kiện điện tử khác như chip, linh kiện thụ động, PCB, pin
    • Kết cấu cơ khí như vỏ, kính, nút bấm, dây đeo, cáp sạc
  • Ba hệ thống cuối gồm cảm biến, pin, dây đeo, vỏ, microphone và các thành phần tương tự hiện có nhiều lựa chọn tốt ở nhiều mức giá, nên tương đối dễ chọn hơn
  • Trong thiết kế smartwatch, quyết định linh kiện khó nhất là chọn MCU/radio Bluetooth và màn hình

Các ràng buộc về MCU và Bluetooth thời Pebble

  • Ở thời kỳ Pebble đầu tiên, hãng dùng STM32F2 MCU
    • Sản phẩm trước Pebble là inPulse dùng LPC2103 với 8KB RAM
    • Thông số MCU của Pebble trước đây nằm trong khoảng 64~144MHz, RAM 128~256KB
  • Khi đó MCU chưa tích hợp radio Bluetooth, nên phải gắn thêm chip riêng như TI CC2564
  • MCU là con chip cốt lõi của smartwatch, tích hợp CPU, RAM, bộ nhớ flash thông thường, các ngoại vi vào/ra và đôi khi cả radio trong một mạch tích hợp nhỏ

Vì sao chọn MCU có thể ảnh hưởng đến toàn bộ sản phẩm

  • MCU nằm ở trung tâm của các điều kiện khắt khe nhất trên smartwatch: khả năng tương thích phần mềm, tiêu thụ điện năng và chi phí
  • Phần mềm nhúng bị phân mảnh hơn hệ điều hành máy tính rất nhiều và gắn chặt với yêu cầu phần cứng
    • Linux có thể chứa hơn 17.000 driver thiết bị do ít bị ràng buộc bởi dung lượng ổ cứng
    • PebbleOS trên thực tế gần như được hard-code để chỉ hỗ trợ dòng MCU của STM
  • Nếu chuyển sang MCU của thương hiệu khác, cần viết lại driver ngoại vi như I2C, SPI, DMA, áp dụng SDK khác và đôi khi phải thay cả hệ thống build
    • Những thay đổi này không hẳn là rủi ro cao, nhưng cần thời gian triển khai và kiểm thử
    • Một số MCU không hỗ trợ FreeRTOS thuận tiện
  • Nếu không sản xuất ở quy mô hàng trăm nghìn đến hàng triệu chiếc, rất khó phân bổ chi phí kỹ thuật phần mềm vào doanh số lớn, nên nó ảnh hưởng mạnh đến tổng chi phí của từng chiếc đồng hồ
  • Smartwatch phải luôn kết nối với điện thoại qua Bluetooth suốt 24 giờ, nên mức tiêu thụ điện trung bình khi đang kết nối, cùng với màn hình, là yếu tố ngốn điện lớn nhất

Các ứng viên chip cho Core 2 Duo và Core Time 2

  • Với Core 2 Duo, quyết định là dùng Nordic nRF52840
    • Đây là chip đã cũ, nhưng nhóm đã quen thuộc và tin rằng có thể đưa PebbleOS lên tương đối nhanh
    • Ban đầu định dùng BLE stack SoftDevice của Nordic, nhưng sau đó chuyển sang nimBLE, một BLE stack mã nguồn mở
  • Core Time 2 cần nhiều RAM và năng lực xử lý hơn nRF52840
    • Màn hình màu lớn hơn đòi hỏi nhiều RAM hơn
    • Nhóm cũng muốn có thêm khoảng dư cho các tính năng mới
  • Dù muốn tiếp tục dùng Nordic, roadmap BLE MCU của hãng không thật sự khớp với yêu cầu
    • nRF54L15 chỉ có 256KB RAM và mới chỉ vừa bước vào sản xuất hàng loạt nên chưa có nhiều đánh giá sử dụng thực tế
    • Dòng 54H với RAM 1MB có giá từ 4~5 USD trở lên, gần gấp đôi, và không có lựa chọn 512KB RAM
    • Màn hình MIP 64 màu của Core Time 2 cần giao tiếp đặc biệt, và Pebble đời 2015 từng dùng FPGA riêng cho việc này

Vì sao chọn SiFli SF32LB52J

  • Nhiều ứng viên như Apollo, BES, Dialog đã được xem xét, nhưng rất khó tìm một con chip khớp chính xác với yêu cầu
  • Một trở ngại lớn là thiếu SDK mã nguồn mở
    • Có một chip của BES trông khá tốt, nhưng SDK và mã ví dụ không được công khai, mọi thứ đều nằm sau NDA
    • Vì PebbleOS phải là mã nguồn mở, cách này không phù hợp
  • SiFli cung cấp chip Bluetooth được thiết kế để làm chip chính cho smartwatch
    • Chúng đã được dùng trong hàng chục triệu smartwatch của các thương hiệu như Redmi, Oppo, Noise
    • Ngay cả chip nhỏ nhất là SF32LB52x cũng cung cấp SRAM từ 512KB trở lên và PSRAM 16MB
    • Có ngoại vi MIP chuyên dụng nên không cần FPGA riêng hay chip giao tiếp màn hình chuyên dụng đắt tiền như của Epson
    • Mức tiêu thụ điện khi duy trì kết nối BLE là khoảng 50µA và giá dưới 2 USD
    • Nếu cần, vẫn có thể chuyển sang các chip SiFli khác với tùy chọn SRAM 1~2MB
  • SDK của SiFli được công khai mã nguồn mở tại OpenSiFli trên GitHub, và SiFli cũng đề nghị hỗ trợ port PebbleOS
  • Core Time 2 dự kiến sẽ dùng SF32LB52J, biến thể 1.8V của SF32LB527

Các liên kết SiFli liên quan

1 bình luận

 
GN⁺ 2025-05-16
Ý kiến trên Hacker News
  • PebbleOS không phải là hệ điều hành duy nhất trong lĩnh vực này; còn có https://www.espruino.com/ và nó chạy https://banglejs.com/
    Đây là một bản triển khai JavaScript siêu nhỏ cho vi điều khiển, nên rất dễ hack thiết bị theo thời gian thực
    Có vẻ cũng được dùng trong Fallout Pip-Boy và các sản phẩm khác của The Wand Company: https://www.thewandcompany.com/fallout-pip-boy/
    Tham khảo: https://github.com/orgs/espruino/discussions/7577

    • Lần đầu tôi nghe đến Bangle.js, nhưng tôi thích ý tưởng có thể vọc nó bằng một ngôn ngữ mình đã biết
      Tôi không thích thiết kế hình vuông nên muốn mua mẫu thế hệ đầu, nhưng có vẻ không còn bán nữa
    • Cũng nên giới thiệu các công trình tốt từ những đối thủ ít được biết đến hơn
      Pebble rất tuyệt, nhưng các dự án như vậy cũng xứng đáng được chú ý
      Và nếu có dịp thì series Fallout của Amazon cũng đáng xem
    • PineTime cũng đáng tham khảo
  • Họ nói “SDK là mã nguồn mở”, nhưng có vẻ không có nghĩa là vi điều khiển BLE có SDK mã nguồn mở
    Nhìn qua thì mã BLE được cung cấp dưới dạng blob nhị phân
    https://github.com/OpenSiFli/SiFli-SDK/tree/6c82a9b15db49871...
    Bản thân điều đó không phải vấn đề, nhưng nếu gọi là “mã nguồn mở” thì tôi mong có thể đọc được mã nguồn

    • Firmware của thiết bị vô tuyến BLE nhiều khả năng sẽ luôn được cung cấp dưới dạng blob nhị phân vì các vấn đề về quyền sở hữu trí tuệ và quy định pháp lý
  • Theo tiêu chuẩn ngày nay, chiếc smartwatch này không thông minh cho lắm
    Tôi sẽ nhớ rất nhiều các tiện ích trên smartwatch hiện tại như thanh toán NFC, theo dõi GPS băng tần kép, kết nối 4G LTE
    Pebble và rePebble chọn đổi lại bằng thời lượng pin vài tuần, nhưng tôi không muốn từ bỏ những tính năng mạnh mẽ này chỉ vì chút bất tiện nhỏ là phải sạc Galaxy Watch hai ngày một lần

    • Ngược lại, những tính năng đó hoàn toàn không quan trọng với tôi, còn thời lượng pin dài thì có
      Việc có các thiết bị nhắm đến những nhóm người dùng khác nhau là điều tốt
      Không nên nói nó “không thông minh” chỉ vì người dùng mục tiêu khác; nó chỉ là thiết bị không phù hợp với nhu cầu của tôi
    • Với tôi thì nó đủ thông minh
      Tôi không cần mấy tính năng đó lắm; chỉ cần một chiếc đồng hồ có thể tùy biến đôi chút, nhận thông báo và đo nhịp tim cơ bản
      Nếu phải sạc hơn một lần mỗi tuần thì có lẽ tôi sẽ không đeo
    • Cũng thiếu mất điểm rằng Garmin đã có hầu hết các tính năng này và còn nhiều hơn nữa, trong khi vẫn cho thời lượng pin vài tuần
      Hiện vẫn chưa có 4G, nhưng tôi nhớ đã có tin nói rằng thiết bị năm sau sẽ có
    • GPS thì tôi cũng thấy tiếc, nhưng tôi vẫn chưa tìm được sản phẩm nào thực sự lấp đầy khoảng trống Pebble để lại
      Garmin có những đánh đổi ở các mặt khác như pin, widget, lịch, độ dễ đọc của màn hình
      Rốt cuộc mọi thứ đều là đánh đổi
    • Chỉ riêng thời lượng pin đã khiến tôi không nghĩ vậy
  • Có thêm thông tin về chip ở đây:
    https://www.cnx-software.com/2025/05/14/sifli-sf32lb52j-big-...

  • Thú vị là họ không chọn thiết kế 2 chip, một cho ứng dụng chính và một cho BLE
    Các vi điều khiển hiệu năng cao thường không có RF, nên đôi khi thiết kế như vậy là hợp lý

    • Các vi điều khiển “cao cấp” ngày nay khá tốt
      Có dòng NRF, và cũng có những sản phẩm như ESP32 đưa Bluetooth và Wi-Fi vào cùng một gói
      Cá nhân tôi hiện có lẽ sẽ nghiêng về ESP32; nó tiếp tục được cải thiện tốt và hỗ trợ cộng đồng cũng tốt
      Tôi đang phát triển một nền tảng smartwatch dựa trên MicroPython
    • Càng nhiều chip thì dự án càng phức tạp
      Không chỉ là vấn đề danh sách linh kiện; mỗi chip còn cần các linh kiện thụ động phụ trợ và bộ dao động, phải điều phối giao tiếp giữa các chip, đồng thời phải thiết kế cách cập nhật firmware và truy cập gỡ lỗi cho cả hai bên
      Đơn giản hóa có thể là lựa chọn tốt hơn, dù phải hy sinh một chút thời lượng pin
    • Nhân Cortex-M33 của chip SiFli có lẽ nhanh hơn nhiều so với nhân M4 dùng trong mẫu Pebble nhanh nhất từng ra mắt, nên không cần một vi điều khiển nhanh hơn thế
      Thay vào đó, việc tăng thời lượng pin là rất đáng hoan nghênh, và việc dùng vi điều khiển Bluetooth tích hợp lần này có vẻ là lý do lớn giúp cải thiện từ khoảng 1 tuần pin lên khoảng 1 tháng
    • Nó chỉ là một chiếc đồng hồ thôi
      Không cần một máy tính UNIX hoàn chỉnh cho những việc như hiển thị giờ, ghi nhịp tim, gửi tín hiệu lên AWS
  • Thật vui khi cuối cùng cũng thấy có nỗ lực đi theo hướng open source trong ngành chip tiết kiệm điện
    Ngay khi thấy công bố rePebble tôi đã đăng ký ngay, nhưng sau đó nhận ra rằng thứ mình thật sự muốn không phải smartwatch, mà là một chiếc đồng hồ đơn giản có thông báo rung
    Tôi biết đây là gu thiểu số, nhưng là một ngách có những người khá nhiệt thành [0] [1] [2]
    Sau 2 năm đeo Casio F105, rất khó quay lại với sản phẩm nào lớn hơn, nặng hơn hoặc dày hơn nó
    Nếu có thêm một chút chức năng Bluetooth thì tôi có thể chấp nhận sạc mỗi tuần một lần
    Dạo này tôi đang tìm một chip Bluetooth siêu nhỏ có thể điều khiển một mô-tơ rung nhỏ và nhận mọi thông báo từ iPhone
    Thử nghiệm cho thấy dù gắn chip, mô-tơ và một viên pin lithium nhỏ vào giữa hai đầu dây đeo của F105, phần trọng lượng tăng thêm ở vị trí đó cũng không dễ cảm nhận
    Tôi vẫn nhớ chiếc Mi Band 1 đầu tiên mình từng dùng
    Đó là một vòng tay fitness bị lãng quên, không có màn hình mà chỉ có 3 đèn LED RGB; nó có thể hiển thị màu cụ thể tùy theo ứng dụng gửi thông báo, nên tôi lập tức biết chat Messenger màu xanh thì cần trả lời ngay, còn thông báo Google Keep màu vàng thì có thể bỏ qua cho đến khi quay lại máy tính
    [0] https://www.reddit.com/r/pebble/comments/9xw2j2/im_looking_f...
    [1] https://www.reddit.com/r/smartwatch/comments/174hq9x/need_a_...
    [2] https://tildes.net/~tech/18nf/smartwatch_primarily_for_notif...

    • Có thể hơi ngoài phạm vi, nhưng có W770 của Citizen
      Gần đây tôi mua được một chiếc cũ tình trạng tốt với giá dưới 200 USD; nó là một chiếc chronograph khá ổn, có BLE, báo thức, mô-tơ rung, và cả một hệ sinh thái thông báo có thể viết script hơi kỳ lạ, có vẻ như bị bỏ bê phần nào
      Là một chiếc đồng hồ, bạn phải đọc hết hướng dẫn để hiểu các cách giao diện khác nhau, nhưng xét đến việc nó phải hiển thị mọi thông tin chỉ bằng kim mà không có màn hình thì điều đó hợp lý
      Khi thiết lập lần đầu có thể cần đồng bộ kim, lúc đầu khá bối rối
      Nó dùng cơ chế chạy bằng năng lượng mặt trời hiệu quả với siêu tụ điện, nên để trong bóng tối vẫn dùng được vài tháng; nếu đeo thì thực tế không phải lo về pin
      Siêu tụ điện có thể thay khi hao mòn, và nhìn các trường hợp đồng hồ Citizen khác thì có vẻ chạy ổn khoảng 15–20 năm
      Tôi khá thích vì nó là một chiếc đồng hồ thật được làm tốt, và nếu muốn thì cứ đeo rồi quên nó đi, năm này qua năm khác nó vẫn làm đúng việc của mình
      Có thể Citizen còn có các lựa chọn khác có BLE
      Nếu ai đó reverse engineer giao thức thông báo và giao tiếp BLE để tạo một ứng dụng đồng hành open source, tôi nghĩ nó sẽ mở ra những khả năng khá thú vị cho những người có thiên hướng hacker
    • Tôi vẫn đang dùng OG Pebble, và dù rất vui khi nghe tin nó quay lại, tôi không có kế hoạch nâng cấp
      Yêu cầu của tôi cũng đơn giản
      Tôi cần báo thức rung, thông báo, và quan trọng nhất là một màn hình đọc được dưới nắng gắt, đồng thời dễ nhìn với đôi mắt bị lão thị
      Màn hình eInk của OG Pebble vừa khớp
      Việc có thể đọc tin nhắn mà không cần lấy điện thoại ra cũng rất tiện
      Hơn nữa, có thể mua trên eBay khoảng 30 USD và pin mới cũng khoảng 15 USD, nên không quá nặng ví
      Công sức của cộng đồng Rebble.io vẫn hoạt động đủ tốt cho nhu cầu của tôi
    • Đồng ý
      Tôi từng tìm một dây đeo hoặc khóa đồng hồ “thông minh” có thể dùng với đồng hồ Seiko vintage
      Tôi chỉ cần thông báo rung khi có một việc rất cụ thể xảy ra trên điện thoại, ví dụ chỉ khi vợ tôi gọi
      Tôi không cần mọi tính năng hay màn hình của smartwatch thông thường; chúng quá gây xao nhãng
    • Tôi cũng trong tình huống tương tự
      UX của Apple Watch thật tệ
      Màn hình 2 cm mà đầu ngón tay 1 cm, lại còn cố làm quá nhiều thứ, không hợp gu tôi
      Pebble cho phép tôi nhận thông báo tin nhắn hoặc cuộc gọi cả khi ở xa điện thoại, và xem đủ để quyết định có phản hồi hay không
      Pebble khá nhẹ, và nếu cài watchface này thì sẽ có cảm giác quen thuộc:
      https://store-beta.rebble.io/app/52f0939b1ac7948708001fc9
    • Tôi đồng ý với việc muốn “một chiếc đồng hồ đơn giản có thông báo rung”
      Thông báo thường không quá nhạy về thời gian
      Vài năm trước, tôi nhận ra điện thoại cứ liên tục kêu vì những thông báo chẳng mấy ý nghĩa và kéo mất sự chú ý, nên tôi đã tắt hết mọi thông báo
      Tôi chỉ kiểm tra vài giờ một lần và trả lời các tin nhắn đã đến
      Smartwatch thông thường gần như vô dụng với tôi, và việc thông báo tin nhắn xuất hiện trên cổ tay gần như là một phản tác dụng lớn
      Tuy vậy, sẽ rất hay nếu có thể đặt báo thức một cách tiện lợi và đến giờ thì cổ tay rung
      Những thông báo kiểu “muốn kịp xe buýt thì đi ngay” hoặc “giờ nghỉ đi” là đủ
      Tôi không cần gì hơn thế, cũng không cần các cảm biến hào nhoáng
  • Tôi đã bắt đầu nghịch Freqchip SoC giá rẻ của Trung Quốc:
    https://github.com/zoobab/FR801xH
    Trên Ali có thể mua smartwatch dùng chip này với giá 3 euro

    • Chà, một số chip trong số này có giá 2,6 nhân dân tệ, tức 0,36 USD, với MOQ 3.000 chiếc mà lại hỗ trợ Arm Cortex-M3 và BLE, cả sig-mesh nữa
      Rẻ đến mức thật khó tin
      SDK dùng được đến đâu?
    • Bạn có thể gửi link một trong những chiếc đồng hồ đó không?
      Tôi đã thử tìm nhanh hai lần nhưng không thấy
  • Bài viết hay, và thật tuyệt khi thấy PebbleOS chạy được trên phần cứng open source ở mức nào đó
    Nhưng đến năm 2025 rồi mà vẫn phải xem blog căn trái sao?
    Màn hình rộng đã có từ lâu, và nó chỉ làm việc đọc khó hơn một cách không cần thiết

  • “Ràng buộc thú vị và khó nhất thực ra là khả năng tương thích phần mềm”, nhưng có lẽ đây lại là ràng buộc dễ đi đường vòng nhất
    Có lẽ tôi sẽ đặt nó ở phía sau hơn trong danh sách

    • Có hai lý do lớn khiến khả năng tương thích phần mềm đặc biệt quan trọng với sản phẩm này
      Thứ nhất, đội ngũ hiện tại rõ ràng nhỏ hơn đội Pebble trước đây, nên càng ít việc phần mềm càng tốt
      Thứ hai, các ứng dụng và mặt đồng hồ dành cho Pebble vốn được phân phối dưới dạng binary ARM đã biên dịch, nên nếu chọn một vi điều khiển dùng tập lệnh hoàn toàn khác thì sẽ mất khả năng tương thích ngược
      Ví dụ ESP32 thuộc nhóm đó, dù ngay từ đầu có lẽ nó cũng không phải là lựa chọn tốt
    • Hoàn toàn không phải vậy
      Nếu mọi thứ đều độc quyền, bạn sẽ gặp rất nhiều ngõ cụt
      Trường hợp này hoàn toàn khác với phần cứng PC tiêu chuẩn
  • Tôi thích bài viết này
    nimBLE là một Bluetooth stack tuyệt vời, và có vẻ sẽ mở ra những cơ hội thú vị cho Core Devices trong tương lai