3 poin oleh GN⁺ 2025-11-01 | 1 komentar | Bagikan ke WhatsApp
  • Raspberry Pi Pico menunjukkan implementasi transmisi Ethernet 100 Mbit/s lewat perangkat lunak tanpa perangkat keras khusus
  • Pengembang Steve Markgraf menggunakan PIO dan DMA untuk menjalankan enkode MLT-3, line coding 4B5B, dan scrambling
  • Implementasi ini bekerja pada laju simbol 125 MHz dan mencapai transfer sekitar 11MB/s melalui UDP
  • Contohnya mencakup ADC streamer, counter, dan demo audio berbasis PCM1802, serta mendukung RP2040 dan RP2350
  • Ini merupakan kemajuan teknis yang menunjukkan potensi streaming data berkecepatan tinggi dan aplikasi instrumentasi dengan mikrokontroler berbiaya rendah

Implementasi Ethernet bit-bang 100 Mbit/s pada RP2040 dan RP2350

  • Steve Markgraf mengimplementasikan pemancar Fast Ethernet 100 Mbit/s sepenuhnya dengan pendekatan perangkat lunak melalui proyek Pico-100BASE-TX
    • Mendukung RP2040 dan RP2350 (Pico 2)
    • Menggunakan PIO (Programmable I/O) dan DMA untuk menangani enkode MLT-3, line coding 4B5B, dan scrambling
  • Hasilnya, streaming sekitar 11MB/s melalui UDP dimungkinkan, dan transmisi audio real-time serta data ADC telah didemonstrasikan
  • Implementasi ini bersifat khusus transmisi (proof of concept), dan jangan sambungkan langsung ke perangkat PoE
    • Disarankan menggunakan isolasi melalui pulse transformer atau switch Ethernet
Iklan

Latar belakang proyek

  • Tiga tahun lalu, proyek Pico-10BASE-T dari kingyoPiyo menarik perhatian karena mengimplementasikan Ethernet 10 Mbit/s hanya dengan beberapa resistor
  • Pada 2023, implementasi USB bit-bang memperluas batas performa PIO RP2040
  • Proyek kali ini merupakan kelanjutan dari upaya tersebut, dengan mengeksplorasi kemungkinan hardware terdefinisi perangkat lunak melalui pencapaian kecepatan 100 Mbit/s

Repositori GitHub dan contoh

  • Repositori GitHub: Pico-100BASE-TX
  • Contoh yang disertakan:
    • Counter
    • Built-in ADC streamer
    • Demo audio PCM1802 (75 kHz)
  • Dapat di-build dengan Pico SDK standar dan kompatibel dengan RP2040 maupun RP2350

Signifikansi teknis

  • Poin utamanya adalah implementasi transmisi Ethernet 100 Mbit/s hanya dengan mikrokontroler, tanpa chip PHY khusus
  • Menunjukkan potensi pengembangan perangkat akuisisi data berkecepatan tinggi dan streaming berbiaya rendah
  • Mengangkat kemungkinan perluasan pendekatan software-defined hardware

1 komentar

 
GN⁺ 2025-11-01
Komentar Hacker News
  • Ini tipikal cerita tentang struktur siklus komputasi
    Awalnya diproses di CPU, lalu dipindahkan ke kartu khusus di luar bus, ketika kartu itu jadi lambat CPU kembali dimasukkan ke dalam kartu, dan pada akhirnya logika khusus dimasukkan ke dalam CPU untuk mengoptimalkan komunikasi antarbus
    Mungkin 10 tahun lagi kita akan mengecilkan inti RPi, menaruhnya ke dalam chiplet, lalu memprogram driver jaringan terabit dengan model CPU serbaguna

    • Benar, ini konsep Wheel of Reincarnation. Hanya saja yang pertama merumuskannya bukan Bell, melainkan Sutherland dan Myer, dalam makalah yang terbit pada 1968
      Design of Display Processors (1968)
    • Jujur saja, saya cuma paham setengah dari kata-kata itu
  • MCU zaman sekarang benar-benar luar biasa. Dengan beberapa dolar saja kita bisa membeli mikrokontroler yang kuat
    Dulu perlu kartu khusus seperti TCP Offload Engine (TOE), sekarang sebagian besar fungsi itu bisa dijalankan oleh chip kecil

    • Sekarang bahkan MCU seharga beberapa sen pun memungkinkan. Hanya saja era ini mungkin tidak akan bertahan lama karena masalah perang Taiwan atau komponen palsu
    • Saya penasaran apakah ada proyek pemula yang layak direkomendasikan untuk orang yang belum akrab dengan hardware. Ingin bikin sesuatu, tapi kehabisan ide
    • Tetap menakjubkan. Dulu chip hanya mampu melakukan pekerjaan setingkat PIC, sekarang MCU dengan WiFi bawaan bisa didapat hanya dengan beberapa dolar. Khususnya IO coprocessing pada Pico benar-benar kuat
    • Bukankah NIC modern juga banyak menjalankan peran serupa sekarang?
  • Proyek membaca mikrofon PDM langsung dengan PIO benar-benar keren
    microphone-library-for-pico
    Ini lebih mendekati kontrol berkecepatan tinggi dengan PIO daripada sekadar ‘bit-banging’

    • Tetap saja, dalam arti luas ini masih bit-banging. Hanya saja PIO membuatnya lebih cepat dan lebih stabil
  • Sepertinya ini hanya menangani transmisi (TX). Penerimaan (RX) pasti bagian yang jauh lebih sulit, kan?

    • Benar, ini hanya TX. Itu tertulis jelas di tengah artikel. Saya juga sempat melewatkannya pada awalnya
  • Menarik juga kalau ini dipakai sebagai dasar untuk membuat USB Ethernet NIC
    Terutama dengan meniru NIC gigabit yang didukung Nintendo Switch, lalu membuatnya berjalan pada 100Mbps saat negosiasi gagal

  • Sebagai referensi, RPi awal (rev B) dulu menghasilkan sekitar 6MB/s lewat SSH. Menarik sebagai pembanding

  • Karya Steve Markgraf benar-benar mengesankan.
    Ia terkenal lewat proyek High Speed Data Acquisition over HDMI, dan menggunakan Pico2 sebagai pemancar untuk mencapai hingga 175MB/s
    Ada juga versi hsdaoh-rp2350
    Namun untuk bit-banging, 100Mbit tampaknya batas atasnya. 1Gbit memakai clock 125MHz, tetapi karena full duplex maka diperlukan echo cancellation.
    Tantangan berikutnya tampaknya adalah mengimplementasikan PHY RGMII dengan RTL8211 PHY seharga $1

    • Karena RGMII memakai bus 4-bit, dibutuhkan 250 juta perubahan keadaan per detik.
      Clock-nya memang 125MHz, tetapi karena memakai DDR, PIO harus berjalan di 250MHz. Sepertinya masih mungkin dengan sedikit overclock
    • Proyek yang keren. Terima kasih!
  • Apakah ini mungkin tanpa PIO?

    • Di Pico, tidak mungkin. Tanpa PIO, secara realistis sulit mengubah pin GPIO setiap 3~4 clock CPU
      PIO pada dasarnya adalah ‘periferal terkuat’, jadi agak meragukan kalau disebut bit-banging.
      Untuk menangani 100Mbit/s hanya dengan CPU, mungkin dibutuhkan MCU kelas 500MHz, dan saat itu akan muncul masalah seperti karakteristik bus atau latensi cache
    • Bahkan protokol umum seperti SPI biasanya ada di kisaran 10MHz, jadi ini sulit dibandingkan secara langsung
  • “Raspberry Pi Pico Bit-Bangs 100 Mbit/S Ethernet” — daripada satuan Siemens, Ohm rasanya lebih cocok

  • Saya sempat bingung karena ada GNU Radio di layar. RPi terlihat punya daya, dua jalur TX, dan satu jalur ketiga; itu apa?

    • Itu adalah jalur input sinyal yang sedang dikonversi ke Ethernet. Bagian itu mendigitalkan sinyal WBFM IF dengan ADC internal, tetapi saya juga tidak tahu persis sinyal apa itu