6 poin oleh GN⁺ 2023-12-28 | 1 komentar | Bagikan ke WhatsApp

DeskHop - perpindahan desktop cepat

  • Gratis dan open source
  • Hampir tidak ada jeda saat berpindah
  • Bisa berpindah dengan menyeret pointer mouse antar komputer
  • Tidak perlu instalasi perangkat lunak
  • Menggunakan komponen murah dan mudah didapat (kurang dari 15 euro)
  • Casing snap-fit yang bisa dicetak dengan printer 3D
  • Isolasi galvanik penuh antar output
  • Berfungsi di Linux, macOS, dan Windows

Cara kerja

  • Perangkat ini berperan sebagai perantara antara keyboard/mouse dan komputer, sambil mempertahankan koneksi ke dua komputer secara bersamaan
  • Berdasarkan pilihan pengguna, perangkat menentukan ke komputer mana input mouse dan keyboard akan diteruskan
  • Saat mouse diseret ke desktop lain, keyboard juga otomatis berpindah

Mouse

  • Descriptor laporan HID mouse diubah agar menggunakan koordinat absolut, lalu laporan mouse (pergerakan relatif) diakumulasikan secara internal untuk mempertahankan posisi yang akurat
  • Saat mencoba keluar dari area monitor ke arah monitor lain, koordinat Y dipertahankan dan X maksimum diubah menjadi X minimum, lalu output dialihkan
  • Kursor dibuat muncul di ketinggian yang sama pada monitor lain agar perpindahan terasa mulus

Keyboard

  • Sebagai host USB, perangkat secara berkala melakukan polling keyboard, mencari shortcut yang sudah ditentukan sebelumnya (seperti Caps Lock), lalu meneruskan input ke output lain
  • LED keyboard dimanfaatkan ulang sebagai umpan balik visual agar pengguna bisa mengetahui output mana yang sedang aktif
  • Status LED masing-masing komputer diingat sehingga pekerjaan bisa dilanjutkan dengan kondisi sebelumnya

Menggunakan image yang sudah dibangun

  • Bisa menggunakan image yang sudah dibangun sebelumnya
  • Sambungkan board Pico ke slot A pada PCB, lalu saat menyambungkan kabel tahan tombol pada board agar muncul sebagai drive USB di sistem
  • Salin file board_A.uf2 yang sesuai dan ulangi hal yang sama untuk B

Upgrade firmware

  • Opsi 1: buka casing, lalu saat menyambungkan tiap Pico sambil menahan tombol, salin file uf2 yang benar
  • Opsi 2: gunakan kombinasi tombol tertentu (Right Shift, P, H, X, Left Shift) untuk masuk ke mode BOOTSEL dan mengalihkan Picos ke mode upgrade bootloader

Fitur lain

  • Saat perlu menggerakkan mouse dengan sangat presisi, tahan Right ALT sambil menggerakkan mouse agar kecepatan mouse turun drastis sehingga pekerjaan detail lebih mudah dilakukan

Hardware

  • Rangkaian ini murah (4,10 euro per unit), bisa disolder manual, dan berbasis dua board Raspberry Pi Pico yang sebagian besar pemasok masih punya stoknya
  • Kedua Pico terhubung melalui UART menggunakan ADuM1201 dual-channel digital isolator dari Analog Devices (~3 euro)
  • Berkat proyek luar biasa yang mengimplementasikan USB dengan keajaiban programmable IO pada RP2040, perangkat ini bisa berfungsi sebagai host USB sekaligus device

PCB

  • Untuk menjaga build DIY sesederhana mungkin, trace hanya ditempatkan pada satu sisi dan jumlah komponen dijaga seminimal mungkin
  • Jalur diferensial USB D+/D- harus memiliki panjang yang sama, tetapi sengaja dibuat sedikit asimetris untuk mengompensasi perbedaan panjang trace GPIO terkait pada PCB PICO itu sendiri agar total panjangnya cocok

Casing

  • Karena tidak terlalu mahir dalam pemodelan 3D, casing dibuat sederhana dan dasar, tetapi tetap memenuhi tujuannya
  • Mudah dicetak, menggunakan sekitar 33g filamen, dan selesai dalam beberapa jam
  • Pergerakan horizontal PCB ditahan oleh pin yang melewati lubang, dan pergerakan vertikal ditahan oleh tonjolan snap-fit di sisi casing sehingga tidak memerlukan sekrup
  • Konektor micro USB menonjol dari sisi casing, jadi perlu dibuat lubang yang sedikit lebih besar agar kabel bisa masuk
  • Tutupnya menggunakan desain snap-fit dan memiliki slot obeng agar bisa dibuka
  • Penanda di bagian atas dibuat cekung sehingga bisa diisi krayon atau sejenisnya untuk meningkatkan kontras (atau dibiarkan apa adanya)

Daftar material

  • 2 Raspberry Pi Pico, 1 ADuM1201BRZ, 2 Cap 1206 SMD 100nF, 2 konektor USB-A PCB, 2 Headers 2.54 1x03
  • Total harga: 11,53 euro
  • Konektor USB-A bisa memakai Molex MX-67643-0910 atau alternatif lebih murah dengan dimensi yang sama
  • Langkah tambahan: pembuatan PCB (Gerber disediakan, JLC bisa membuatnya dengan biaya beberapa dolar, pilih ketebalan 1,6mm), pencetakan 3D casing (file stl disediakan, membutuhkan sekitar 33g filamen)

FAQ

  1. Apakah ini bisa berfungsi hanya dengan dua Pico tanpa PCB dan isolator?
    • Isolator direkomendasikan, tetapi tanpa itu pun mungkin tetap bisa berfungsi.
  2. Bagaimana jika resolusi monitornya berbeda?
    • Pergerakan mouse dilakukan dalam ruang koordinat abstrak, dan komputer menghitung pemetaannya ke layar fisik, jadi seharusnya tetap berfungsi tanpa masalah.
  3. Di mana saya bisa membeli produk ini?
    • Tidak dijual; ini adalah proyek hobi pribadi nonkomersial.
  4. Saat layar aktif berubah karena mouse, apakah keyboard juga ikut berpindah (dan sebaliknya)?
    • Ya, dibuat agar berfungsi seolah-olah hanya ada satu komputer.
  5. Apakah ini bekerja dengan dongle combo keyboard/mouse seperti Logitech Unifying Receiver?
    • Pada versi saat ini tidak berfungsi karena diasumsikan mouse terhubung ke port lain. Perlu diteliti bagaimana Logitech Unifying Receiver bekerja lalu menambahkan dukungannya.
  6. Apakah ini bekerja dengan mouse dan keyboard nirkabel yang masing-masing punya receiver terpisah?
    • Belum diuji untuk kasus seperti ini, jadi mungkin ada masalah tak terduga, tetapi secara teori seharusnya langsung bisa berfungsi.

Kekurangan

  • Perhatian: untuk menggunakan fitur ini, kedua komputer harus terhubung dan menyala (setiap board mendapat daya dari komputer yang terhubung).
  • Kode masih perlu dirapikan, direfaktor, dan sebagainya.
  • Kadang masih ada bug dan perilaku aneh.
  • Belum diuji dengan berbagai perangkat, jadi tidak diketahui bagaimana hasilnya pada hardware pengguna.
  • Pico-PIO-USB telah dipatch untuk mendukung kontrol LED keyboard, yang biasanya ditangani oleh TinyUSB dalam mode host.

Penafian

  • Siapa pun yang mencoba proyek ini harus memahami dan mengakui bahwa penulis tidak bertanggung jawab atas cedera, kerusakan, atau konsekuensi lain apa pun.
  • Keselamatan itu penting, jadi penting untuk mengambil tindakan pencegahan yang diperlukan dan bertanggung jawab atas keselamatan diri sendiri sepanjang proyek.
  • Hindari sengatan listrik, luka bakar, stres, atau marah; kerjakan dengan santai dan nikmati prosesnya.

Pendapat GN⁺:

  • Artikel ini bisa sangat berguna bagi orang yang menggunakan dua komputer. Terutama menarik bagi pengguna yang ingin meningkatkan efisiensi kerja sambil berbagi satu keyboard dan mouse.
  • Karena open source dan menggunakan pendekatan DIY, ini bisa menjadi proyek yang menarik bagi orang yang tertarik pada teknologi. Pengguna dapat menyesuaikan dan meningkatkan sistem sesuai kebutuhan mereka.
  • Proyek ini menunjukkan semangat inovatif komunitas dalam memecahkan masalah teknis. Dengan pengguna menyelesaikan masalahnya sendiri dan membagikan prosesnya, orang lain juga bisa mendapatkan manfaatnya.

1 komentar

 
GN⁺ 2023-12-28
Opini Hacker News
  • Menarik bahwa ini bisa mendeteksi tepi layar tanpa perangkat lunak klien.

    • Agar kursor mouse bisa berpindah antar layar seperti sulap, deskriptor laporan HID mouse diubah agar menggunakan koordinat absolut, dan laporan mouse yang masuk sebagai gerakan relatif diakumulasi secara internal untuk menjaga posisi tetap akurat.
    • Cara kerjanya mirip SynergyKM/Barrier, tetapi tidak memerlukan fungsi clipboard atau perangkat lunak klien.
  • Sudah lebih dari sepuluh tahun menggunakan solusi perangkat lunak bernama Synergy. Perpindahan terjadi seketika lewat Wi‑Fi dan juga bekerja lintas Windows/Mac/Linux.

  • Saat mencoba memindahkan slider YouTube dengan tepat ke posisi tertentu, kadang mouse bergerak terlalu sensitif sehingga tangan harus digerakkan dengan sangat hati-hati.

    • Di YouTube, tanpa perangkat keras khusus pun kita bisa menggunakan tombol koma (,) dan titik (.) untuk scrub video per frame.
  • Di Windows, ada alat bernama Mouse Without Borders yang dikembangkan oleh Microsoft Garage dan kini menjadi bagian dari Windows PowerToys.

  • Terinspirasi dari proyek-proyek serupa lain, seseorang membuat versinya sendiri.

    • Satu program dijalankan di desktop Linux dan menerima event input dari subsistem input Linux (evdev). Saat tombol tertentu ditekan, semua event akan dikonsumsi lalu dikirim ke RPI Pico melalui USB serial. Saat tombol itu ditekan lagi, sistem beralih ke mode mendengarkan pasif.
    • RPI Pico diprogram untuk mengubah event evdev Linux menjadi event USB HID dan mengirimkannya ke PC Windows lain.
    • Hasilnya adalah sebuah switch KM yang memungkinkan perpindahan instan antara PC Linux dan PC lain yang menjalankan OS pilihan.
    • Sebagai pemula di bidang hardware, ia merasa proyek ini cocok sebagai proyek awal bagi pemula hardware lain karena hanya membutuhkan 2 kabel.
  • Pernah membeli 4 USB hub untuk memindahkan keyboard dan mouse, tetapi kebanyakan perangkatnya sangat buruk sehingga harus mencabut hub secara fisik beberapa kali sehari.

    • Saat ini menggunakan perangkat lunak Synergy dan itu bekerja dengan baik, tetapi tetap menginginkan KVM yang proper untuk webcam, mikrofon, audio, dan sebagainya.
    • Pengguna KVM jelas layak mendapatkan solusi yang lebih baik.
  • Salah satu keluhan besar adalah saat memakai switch USB 3.0 untuk memindahkan input mouse dan keyboard antara dua PC.

    • Saat sedang dalam meeting call Teams lalu nama disebut atau menerima pesan, tiba-tiba harus mencari-cari tombol untuk memindahkan input ke PC yang menjalankan Teams.
    • Pernah ada ide untuk menghubungkan ESP32 atau Rpi Pico W ke pin tombol pada switch USB dan memindahkan input antar dua mesin melalui endpoint HTTP, tetapi ide itu ditinggalkan karena tidak menemukan cara untuk menentukan input mana yang sedang aktif.
  • Saat ini memakai switch KVM, dan karena butuh 2–3 detik untuk berpindah, sebagian besar waktu justru SSH ke komputer lain dan memakai sesi tmux.

  • Ini perkembangan yang luar biasa.

    • Sebagai pengguna yang sudah lama memakai setup desktop dengan kotak Lin-Mac-Win disusun dari kiri ke kanan, penyebaran desain SoC dalam beberapa tahun terakhir membuat setup seperti ini menjadi lebih mudah.
    • Setup saat ini terdiri dari 2x replika Mac-mini Ryzen SoC seharga $250 yang datang langsung dari Shenzhen dan sebuah M1 MBP.
    • Sangat disayangkan bahwa dunia solusi KVM open source yang dulu sempat berkembang kini merosot menjadi mimpi buruk rekursif penuh fork, sehingga sulit mendapatkan KVM perangkat lunak open source multiplatform yang bisa berjalan tanpa biaya.
    • Setup saat ini memakai switch KVM 'jadul' yang bagus, tetapi harus menekan tombol tetap terasa mengganggu.
  • Synergy menyelesaikan masalah ini dengan baik hanya lewat perangkat lunak. Memang bukan gratis atau open source, tetapi harganya relatif terjangkau.