Glider, màn hình eInk mã nguồn mở nhấn mạnh độ trễ thấp
(github.com/Modos-Labs)- Glider là một dự án mã nguồn mở dành cho màn hình EPD độ trễ thấp, tần số quét cao; kho lưu trữ này chứa thiết kế phần cứng và firmware, còn gateware chạy trên FPGA sử dụng thiết kế Caster EPDC mã nguồn mở riêng
- Đối tượng hỗ trợ là tấm nền hiển thị điện di có giao diện song song, có thể xử lý cả tấm nền đen trắng lẫn màn hình màu dựa trên mảng bộ lọc màu như Kaleido
- Bo mạch gồm FPGA Xilinx Spartan-6 LX16, framebuffer DDR3-800, MCU STM32H750, đầu vào USB-C DisplayPort Alt Mode hoặc DVI, và nguồn E-paper cung cấp dòng đỉnh 1A trên các rail tối đa ±15V
- Caster xử lý từng pixel như một vùng cập nhật độc lập và áp dụng early cancellation, giảm độ trễ xử lý xuống dưới 20µs, hướng tới độ trễ thấp ở chế độ nhị phân và grayscale 4 mức
- Thiết kế độ trễ thấp đòi hỏi băng thông bộ nhớ lớn hơn và các giao diện video độ trễ thấp thực sự như DVI/DisplayPort; trong ví dụ 1080p, phương pháp Caster cần 540MB/s so với 120MB/s của cách truyền thống
Vai trò của Glider và Caster
- Glider là dự án phần cứng mã nguồn mở dành cho màn hình EPD độ trễ thấp
- Kho lưu trữ này có thiết kế phần cứng và mã nguồn firmware; RTL chạy trên FPGA là thiết kế Caster EPDC ở kho lưu trữ riêng
- README không chỉ nói về Glider mà còn bao gồm nội dung về tấm nền E Ink, waveform, hiển thị màu, dithering và các màn hình tương thích
- Người dùng quan tâm đến việc mua bo mạch có thể xem trang sản phẩm Modos Paper Monitor trên Crowd Supply
- Các nhãn hiệu và nội dung liên quan đến E Ink không được E Ink Corporation bảo chứng, dựa trên thông tin công khai và nghiên cứu riêng nên có thể có lỗi hoặc điểm chưa chính xác
Tính năng chính
- Tổ hợp Glider/Caster hướng tới một giải pháp hoàn chỉnh cho màn hình EPD độ trễ thấp, tần số quét cao
- Tính năng hỗ trợ
- Hỗ trợ tấm nền EPD có giao diện song song
- Hỗ trợ các dòng tấm nền E Ink, OED, DES
- Hỗ trợ màn hình đen trắng và màn hình màu dựa trên CFA như Kaleido
- Độ trễ xử lý dưới 20µs
- Chế độ đầu ra nhị phân, grayscale 4 mức, grayscale 16 mức
- Chế độ điều khiển nhị phân và grayscale 4 mức tối ưu độ trễ
- Chế độ hybrid nhị phân và grayscale 16 mức tự động
- Phần mềm host có thể điều khiển cập nhật vùng và chuyển chế độ trong runtime
- Dithering Bayer phần cứng, dithering blue-noise, dithering khuếch tán lỗi mà không tăng thêm độ trễ
- Đầu vào HVsync tiêu chuẩn
- Ở cấp bo mạch hỗ trợ đầu vào USB-C DisplayPort Alt Mode và DVI
Cấu hình phần cứng
- Bo mạch được thiết kế bằng KiCad; để mở các tệp nguồn có thể cần phiên bản KiCad ổn định mới nhất
- Thành phần chính
- Chạy Caster trên FPGA Xilinx Spartan-6 LX16
- Bộ nhớ framebuffer DDR3-800
- Đầu vào Type-C DisplayPort Alt Mode qua cầu PTN3460 DP-LVDS
- Đầu vào DVI dựa trên đầu nối microHDMI qua decoder ADV7611
- Khối nguồn E-paper hỗ trợ tấm nền lớn
- Dòng đỉnh tối đa 1A trên rail ±15V
- Hỗ trợ đo điện áp VCOM kick-back
- MCU STM32H750 cho giao tiếp USB và nâng cấp firmware
- Thông lượng tối đa 133MP/s khi bật dithering khuếch tán lỗi
- Thông lượng trên 200MP/s khi tắt dithering
Cấu trúc tấm nền E Ink và controller
- E Ink là thương hiệu của dòng màn hình điện di giống giấy, hoạt động bằng cách đặt điện trường lên các hạt để tạo trạng thái đen trắng hoặc trung gian
- Khác với LCD, EPD có tính song ổn định, duy trì trạng thái sau khi điện trường bị loại bỏ, nên chỉ cần làm mới cho đến khi pixel được điều khiển hoàn toàn
- Ưu và nhược điểm của EPD
- Vì phản xạ ánh sáng thay vì phát sáng nên tiêu thụ điện thấp và có thể dùng ngoài trời
- Giữ hình ảnh ngay cả sau khi ngắt nguồn
- So với IPS LCD hiện đại, bất lợi về chất lượng hiển thị, dải màu và thời gian đáp ứng
- Trong số liệu ví dụ, EPD đen trắng có độ tương phản khoảng 17:1 và thời gian đáp ứng khoảng 150ms
- EPD màu dựa trên CFA có độ tương phản khoảng 14:1, dải màu khoảng 1,5% sRGB và thời gian đáp ứng khoảng 150ms
- Controller E Ink đóng vai trò gần giống display controller và timing controller trong hệ thống LCD, chuyển dữ liệu ảnh gốc thành tín hiệu điều khiển tấm nền
- Controller quyết định điện áp dựa trên trạng thái pixel hiện tại và trạng thái mục tiêu, thường dùng LUT gọi là waveform để chọn chuỗi điều khiển cho từng chuyển đổi trạng thái
Tấm nền có controller tích hợp và không tích hợp
- Tấm nền E-paper được chia broadly thành hai loại tùy theo có tích hợp controller hay không
- Tấm nền có controller tích hợp
- Có thể kết nối với MCU qua các giao diện phổ biến như SPI hoặc I2C
- Thường tích hợp khối nguồn nên chi phí hệ thống thấp
- Độ trễ cập nhật toàn màn hình có thể từ 100ms đến vài giây
- Tấm nền không có controller
- Có thể điều khiển bằng controller chuyên dụng, SoC tích hợp controller E Ink, hoặc TCON phần mềm trên MCU/SoC nhanh
- Controller chuyên dụng có thể ứng dụng rộng rãi cho IoT, máy đọc sách, điện thoại, màn hình E Ink và cả khả năng laptop E Ink
- Có thể thiết kế cấu trúc điều khiển nhanh, nhưng thiết kế hệ thống phải bảo đảm độ trễ thấp
- Ví dụ controller chuyên dụng mã nguồn mở hiện có gồm Caster + Glider, màn hình E-paper desktop Paperback và FPGA E Ink controller
- Caster + Glider là controller dựa trên FPGA, cung cấp nhiều chế độ cập nhật, xử lý độ trễ siêu thấp và phạm vi hỗ trợ màn hình rộng
Waveform và grayscale
- Waveform là bảng tra cứu quyết định cách controller E Ink điều khiển pixel
- Đầu vào LUT gồm số thứ tự frame, mức grayscale xuất phát và mức grayscale mục tiêu
- Controller tra LUT ở mỗi frame cho tất cả pixel, lặp lại bằng cách tăng bộ đếm frame cho đến khi pixel được điều khiển hoàn toàn
- Tệp waveform chỉ xử lý chuyển đổi của một pixel đơn lẻ nên độc lập với độ phân giải
- Kho lưu trữ cung cấp công cụ để làm việc với nhiều định dạng waveform
- Chuyển từ
iwfsangfwcho i.MX6/7 EPDC:./mxc_wvfm_asm v1/v2 input.iwf output.fw - Chuyển từ
fwsangiwf:./mxc_wvfm_dump v1/v2 input.fw output_prefix - Chuyển từ
wbfsangiwf:./wbf_wvfm_dump input.wbf output_prefix
- Chuyển từ
- Các tấm nền E Ink và DES thường hỗ trợ tối đa 16 mức grayscale theo waveform do vendor cung cấp
- Grayscale có thể được tạo bằng cách thay đổi thời gian frame, hoặc thay đổi số frame áp dụng ở tốc độ frame cố định
- Điều khiển grayscale trong triển khai thương mại chậm hơn hiển thị đen trắng và có thể xuất hiện nhấp nháy trong khi làm mới
EPD màu và dithering
- Triển khai EPD màu chủ yếu được chia thành mảng bộ lọc màu (CFA) hoặc màn hình màu đa sắc tố
- Phương thức CFA
- E Ink Kaleido, E Ink Triton và color DES thuộc phương thức này
- Điều khiển cấp thấp giống tấm nền grayscale, có thể dùng thời gian làm mới khoảng 100–200ms và grayscale 16 mức
- Grayscale 16 mức dẫn đến 16³ = 4096 màu
- Nhược điểm là bộ lọc màu lọc ánh sáng khiến màn hình tối hơn
- Glider/Caster hỗ trợ color DES, E Ink Triton, E Ink Kaleido
- Màn hình màu đa sắc tố
- Bao gồm các dòng E Ink Gallery và E Ink Spectra
- Không có CFA nên không giảm độ phân giải và không mất ánh sáng, có thể đạt độ phản xạ và độ bão hòa cao hơn
- Điều khiển khó hơn và chậm hơn; Gallery thế hệ 1/2 được giới thiệu với thời gian làm mới 30 giây, thiết bị Spectra 6 Plus là 7 giây
- Dithering được dùng để tạo hình ảnh tốt hơn trong hiển thị grayscale hạn chế hoặc nhị phân
- ordered dithering thêm texture hoặc noise đã tính trước vào ảnh rồi xử lý ngưỡng
- error-diffusion dithering truyền lỗi làm tròn sang các pixel lân cận
- Các phương pháp như Bayer, blue-noise, Floyd-Steinberg, Stucki, Sierra được đề cập
- Trên màn hình màu dựa trên CFA, khuếch tán lỗi thông thường không xét màu của pixel lân cận có thể không phù hợp; có thể điều chỉnh kernel để gửi lỗi đến pixel cùng màu
- Hiệu chỉnh gamma cũng quan trọng; làm tròn đơn giản trong không gian sRGB có thể khiến việc chọn màu gần nhất và tính lỗi bị sai
Kiến trúc Caster/Glider
- Gateware FPGA được chia thành nhiều module, trong đó
caster.vlà thiết kế top-level của lõi EPDC - Toàn bộ hệ thống xử lý ảnh được cấu thành bằng cách kết nối các thành phần bổ sung dưới
top.v - Các miền clock chính
clk_vi: miền clock video đầu vào, bằng 1/2 tốc độ pixelclk_epdc: miền clock EPDC, bằng 1/4 tốc độ pixelclk_mem: miền clock bộ nhớ, bằng 1/4 tốc độ truyền bộ nhớ
- Luồng xử lý pixel
memifđọc trạng thái pixel cục bộ từ DDR SDRAM và đưa vàobi_fifo- Luồng video đầu vào đi vào
vi_fifo - Khi bộ tạo timing cục bộ của EPDC chuẩn bị xuất pixel, nó lấy đồng thời đầu vào video và giá trị trạng thái ra để xử lý
- Ảnh đầu vào 8-bit được dithering thành 1-bit và 4-bit
- Ở chế độ grayscale 16 mức, việc tra waveform được thực hiện
- Trạng thái mới và giá trị chọn điện áp được quyết định
- Trạng thái mới đi vào
bo_fifo, còn giá trị chọn điện áp được truyền tới màn hình
- EPDC luôn xử lý 4 pixel mỗi clock; nếu độ rộng giao diện màn hình khác thì sau đầu ra sẽ gắn rate adapter
Chức năng firmware MCU
- MCU dùng FreeRTOS để đảm nhiệm các chức năng housekeeping của bo mạch
- Quản lý nguồn EPD
- Cung cấp nguồn chung, nguồn source và nguồn gate
- Điều chỉnh điện áp VCOM và đo điện áp VCOM tối ưu của tấm nền đã lắp
- Giám sát nguồn
- Theo dõi điện áp và dòng điện của nhiều rail, kiểm tra xem chúng có nằm trong phạm vi dự kiến không
- Nạp bitstream FPGA
- FPGA không có flash riêng; khi cấp nguồn, MCU truyền bitstream tới FPGA qua SPI
- Có thể gói chung bitstream FPGA và firmware MCU để cập nhật
- Đàm phán USB-C
- Hỗ trợ nguồn cho bo mạch và đầu vào video qua USB-C DisplayPort Alt Mode
- Thông báo khả năng đầu vào video cho thiết bị nguồn qua giao thức USB PD
- Điều khiển Type-C signal mux theo hướng cắm cáp
- Khởi tạo video decoder
- Vì FPGA không có deserializer tốc độ cao để kết nối trực tiếp với giao diện video tốc độ cao như DisplayPort hoặc DVI, nó khởi tạo chip decoder chuyên dụng
- Giao tiếp PC
- Caster có thể áp dụng chế độ cập nhật cũng như forced update/clear theo từng pixel
- MCU dùng TinyUSB để hoạt động như thiết bị HID và chuyển tiếp thông điệp giữa host PC và FPGA
Phương thức điều khiển độ trễ thấp
- Phương thức điều khiển cơ bản truyền thống có hạn chế là tra bảng waveform bằng bộ đếm toàn cục, chỉ nhận ảnh mới sau khi cập nhật trước đó kết thúc
- Nếu cập nhật mất khoảng 100ms, tốc độ ảnh là 10Hz và có thể phải chờ tối đa 100ms trước khi ảnh mới được xử lý trong controller
- Caster coi mọi pixel như một vùng cập nhật độc lập
- Phần mềm không cần đặt vùng theo ranh giới ký tự hoặc phân bổ lại số lượng vùng hạn chế
- Nếu một pixel đang cập nhật lại thay đổi, early cancellation được áp dụng
- Không chờ đến khi pixel được điều khiển hoàn toàn
- Điều khiển về phía trạng thái yêu cầu mới và cập nhật bộ đếm frame theo thời gian điều khiển mới tính
- Kết hợp hai kỹ thuật này để triển khai chế độ nhị phân và grayscale 4 mức độ trễ thấp
- Caster cho biết đánh đổi giữa tốc độ frame và tỷ lệ tương phản cũng không còn liên quan, đồng thời tự động đạt tốc độ frame cao và tỷ lệ tương phản cao
Chế độ grayscale hybrid và giới hạn
- Caster tự động chuyển đổi theo từng pixel giữa chế độ nhị phân nhanh và chế độ grayscale chậm
- Khi ảnh đầu vào thay đổi, cập nhật bằng chế độ nhị phân; nếu ảnh không đổi trong một thời gian, render lại bằng grayscale
- Cách này đòi hỏi băng thông bộ nhớ lớn hơn
- Trong ví dụ tấm nền 1080p, tính khoảng 120MP/s
- Phương pháp truyền thống cần 120MB/s với 1 byte đọc trên mỗi pixel
- Caster chỉ riêng buffer trạng thái pixel đã cần đọc 2 byte và ghi 2 byte trên mỗi pixel, cộng thêm 0,5 byte trên mỗi pixel để đọc giá trị ảnh mới
- Kết quả là cần 120MP/s × 4,5B/pixel = 540MB/s
- Phần cứng Glider dùng bộ nhớ DDR3-800 cho độ phân giải cao hơn
- Khi controller nằm bên trong màn hình chứ không phải một phần CPU/GPU của PC, cần giao diện video độ trễ thấp thực sự như DVI hoặc DP thay vì các giao diện đơn giản nhưng chậm như USB hay I80/SPI
- Các kỹ thuật này không hữu ích cho trường hợp sử dụng như đọc sách, nên tác giả cho biết các giải pháp máy đọc sách thương mại ít có lý do để triển khai
Build và flash
- PCB được thiết kế bằng KiCad 8.0; stackup 4 lớp khuyến nghị là lớp 1080 PP
- Build bitstream FPGA
- Cần Xilinx ISE 14.7
- Không hỗ trợ chính thức các hệ điều hành mới; khuyến nghị dùng máy ảo RHEL chính thức của Xilinx
- Có thể lấy kho Caster bằng
git clone --recursive https://gitlab.com/zephray/Caster.git COLORMODEtrongrtl/spartan6/top.vchọn một trongMONO,RGBW,DESOUTPUT_16Btrongrtl/defines.vhđược định nghĩa khi dùng tấm nền 16-bit- Bộ kit Modos 6 inch và 13 inch phù hợp với giá trị mặc định
MONOvà cấu hình 8-bit
- Build firmware MCU
- Cần STM32CubeIDE
- Có thể lấy kho Glider bằng
git clone --recursive https://gitlab.com/zephray/Glider.git - Mở
Glider/fwnhư một dự án STM32CubeIDE để build
- Flash
- Cài
dfu-util, giữ nút gần cổng USB trong khi cắm cáp USB - Công cụ flash được cung cấp dùng Python 3 và gói
hidapi - Cách thủ công là ghi firmware MCU bằng
dfu-util, rồi truyền bitstream FPGA bằng XMODEM trong shell của bo mạch
- Cài
Màn hình tương thích và giới hạn hiệu năng
- Modos Dev Kit cung cấp tùy chọn màn hình 13,3 inch 1600×1200 và 6 inch 1404×1072
- Bo mạch cũng có thể điều khiển các tấm nền khác, nhưng mỗi màn hình có đầu nối khác nhau nên cần adapter
- Bo mạch chính dùng đầu nối 50 chân + 16 chân
- Một đầu nối 50 chân là đủ cho màn hình 8-bit và 16-bit
- Đầu nối 16 chân bổ sung hỗ trợ màn hình LVDS và màn hình 32-bit/64-bit
- Màn hình có thể hỗ trợ bị giới hạn bởi giao thức đầu vào, thông lượng xử lý và giao diện bộ nhớ
- Thông lượng khi bật dithering: 133MP/s
- Thông lượng khi tắt dithering: 280MP/s
- Thông lượng ước tính của thiết kế 8-wide: 500MP/s
- Tốc độ pixel tối đa DVI dựa trên ADV7611: 165MP/s
- Tốc độ pixel tối đa DisplayPort dựa trên PTN3460: 224MP/s
- Ví dụ giao diện bộ nhớ DDR2/3-800 ×16: 360MP/s
- Ví dụ tốc độ pixel đỉnh theo các độ phân giải phổ biến
- 1600×1200 13,3 inch 60Hz: 125MP/s
- 1600×1200 13,3 inch 85Hz: 178MP/s
- 2200×1650 13,3 inch 60Hz: 232MP/s
- 2560×1920 13,3 inch 60Hz: 313MP/s
- 3200×1800 25,3 inch 60Hz: 364MP/s
- Render grayscale cần làm mới màn hình ở 85Hz; 85Hz là tần số làm mới mà E Ink hỗ trợ
- Bo mạch không tự động phát hiện độ phân giải của màn hình được kết nối, nên phải cấu hình thủ công trong shell của bo mạch hoặc dùng công cụ tạo cấu hình
- Có thể dùng Video Timings Calculator by Tom Verbeure để tính thủ công
Giấy phép và tài liệu tham khảo
- Tài liệu được phát hành ở public domain, ngoại trừ các tài liệu tham khảo có giấy phép riêng được nêu rõ
- Thiết kế phần cứng được phát hành theo CERN-OHL-S, biến thể strongly-reciprocal của CERN Open Source Hardware License
- Mã firmware dùng giấy phép MIT; thư viện USB PD có nguồn gốc từ dự án Chromium OS và reclamier labs, tuân theo giấy phép BSD
- Tài liệu tham khảo bao gồm tư liệu reverse engineering điều khiển EPD, các dự án E Ink DIY thời kỳ đầu, driver grayscale dựa trên STM32, EPDiy dựa trên ESP32, và công cụ cũng như parser cho định dạng tệp WBF
1 bình luận
Các ý kiến trên Hacker News
Mọi bộ điều khiển mực điện tử đều khá tệ, nên người này quyết định tự sửa, công bố thành quả dưới dạng phần cứng mã nguồn mở, và giờ nó đã đạt mức hiện đại
Mình rất thích những người và dự án như thế này
Chỉ đọc README thôi cũng đã thấy ấn tượng về độ rộng và chiều sâu của thông tin
Khi những tài liệu như thế này được công khai, có vẻ cộng đồng sẽ tạo ra đổi mới nhanh và những thay đổi mang tính phá vỡ
Tôi theo dõi Discord của họ, tiến độ khá chậm và họ cũng đang vật lộn với nhiều phần rất cơ bản
Chi tiết hơn tôi tưởng rất nhiều, đến mức còn bàn cả lý thuyết vật lý về cách nó hoạt động
Tôi đã dùng Kindle hơn 10 năm, nhưng thiếu độ phản hồi luôn khiến tôi khó chịu
Không rõ đó là vấn đề phần cứng hay phần mềm, nhưng thật vui khi dự án này tập trung giảm độ trễ ở phía phần cứng
Tôi tò mò liệu có ai biết vì sao Kindle lại là một sản phẩm kém như vậy không. Tôi dùng vì mực điện tử tốt và thị trường ebook bao quát, nhưng tôi không nghĩ bản thân thiết bị thực sự tốt
Nó có thể làm những việc khác, nhưng không được thiết kế hay tiếp thị cho các việc đó, nên họ giữ chi phí thấp thay vì đổi mới về độ phản hồi
Thay vào đó, họ cải thiện các tiện ích sử dụng khác như cách cầm, cách điều hướng và đèn nền
Kindle luôn là chuẩn tham chiếu của thiết bị đọc ebook và là sản phẩm dùng công nghệ mực điện tử phổ biến nhất mà bạn thực sự có thể mua
Xét theo các khía cạnh quan trọng từ góc nhìn kinh doanh, rất khó gọi nó là sản phẩm tệ
Sau đó có thể chép sách bằng Calibre hoặc qua SFTP
Có thiết bị chỉ vài ngày là hết pin, không giữ được lời hứa về thời lượng pin dài; có thiết bị chất lượng tệ đến mức hỏng sau vài tháng
Với mức dùng của tôi, Kindle đọc 1–2 giờ mỗi ngày thì một lần sạc dùng được vài tuần, lại chống nước nên có thể đọc trong bồn tắm, điều đó rất đáng giá. Tôi chưa từng gặp vấn đề đặc biệt nào
UI có vẻ được tối ưu để quảng bá Amazon Store, nhưng tôi không dùng nó; tôi gửi sách qua email, đọc xong rồi xóa nên không sao
Sẽ tốt hơn nếu thư viện có thư mục, và nếu có thể kết nối như USB memory để sắp xếp tùy ý từ PC như các máy đọc ebook khác, nhưng đó không phải điều bắt buộc
Kindle có thể là sản phẩm tệ, nhưng có vẻ phần còn lại còn tệ hơn. Tôi không biết thương hiệu thiết bị đọc ebook nào có quy mô như Amazon, và tất cả trông giống những thương hiệu vô danh Trung Quốc không đầu tư vào chất lượng và danh tiếng
Gần như mọi mặt như tốc độ làm mới, độ trễ, hiệu năng tính toán và độ phản hồi đều đã được cải thiện
Việc nó có tên Glider là một sự trùng hợp thú vị
Khá nhiều phi công glider, tức sailplane, dùng màn hình mực điện tử vì dễ đọc dưới nắng gắt, thường chạy thứ như XCSoar trên Kobo hoặc Kindle đã root: https://www.xcsoar.org/hardware/
Khiến tôi tự hỏi còn những công nghệ nào khác đang được tái sử dụng trong các phương tiện giao thông ngách
Vì mỏi mắt và khô mắt, tôi đã quan tâm đến các giải pháp mực điện tử trong một thời gian dài
Hóa ra tôi bị loạn thị rất nhẹ. Bác sĩ mắt không khuyến nghị chỉnh, nhưng sau khi chỉnh thì khô mắt và mỏi mắt biến mất hoàn toàn
Vì vậy, bất kể thông lệ về mức độ kê đơn tối thiểu của bác sĩ mắt ra sao, bạn nên thử chỉnh loạn thị nhẹ bằng kính dùng cho máy tính
Mắt phải của tôi bị loạn thị rất nhẹ, và khi chỉnh bằng kính đọc sách đặt riêng thay vì kính lão thông thường, sự khác biệt về mỏi mắt và đau đầu là hoàn toàn rõ rệt
Kính rẻ tiền cũng cho cảm giác khá ổn, nhưng tôi thật sự ngạc nhiên khi nhận ra khác biệt lớn đến mức nào
Khô mắt và mỏi mắt thường đi cùng nhau, và cũng có diễn đàn riêng bàn về mỏi mắt do màn hình dùng LED
Những ai có vấn đề tương tự có thể ghé xem: https://ledstrain.org/
Thật sự cảm ơn zephray vì đã công khai dưới dạng mã nguồn mở lượng kiến thức về E Ink trong đầu như thế này
README có rất nhiều thông tin xuất sắc về mực điện tử, tôi đã đọc kha khá và có lẽ sẽ còn tham khảo trong nhiều năm tới
Đây là tài liệu thật sự tuyệt vời
Từ lâu tôi đã muốn làm một thiết bị dùng màn hình mực điện tử cho mục đích học tập, nhưng vì chỉ từng làm phần mềm nên không biết bắt đầu từ đâu
Tài liệu này có vẻ sẽ giúp ích khá nhiều cho việc học đó
GitHub được liên kết là mirror của kho GitLab gốc: https://gitlab.com/zephray/glider
Tôi tự hỏi đã có ai nghiên cứu ý tưởng thêm điều khiển phản hồi vào màn hình mực điện tử chưa
Tôi có cảm giác hiện tượng nhấp nháy và độ trễ của mực điện tử hoàn toàn là do bộ điều khiển hoạt động theo kiểu vòng hở
Tôi muốn tạo một bản sao Compact Mac bằng loại màn hình mực điện tử này
Có thể tưởng tượng nó sẽ trông tuyệt thế nào
Nhưng tôi vẫn chưa thấy tốc độ làm mới của mực điện tử đủ để xử lý con trỏ đang di chuyển. Có lẽ giờ đây điều đó khả thi nếu có driver đúng
[1] https://engineersneedart.com/systemsix/systemsix.html
Thời lượng pin có lẽ cũng sẽ tính bằng tuần