#Implementasi RTC di DBAI Docking Board untuk OpenWRT

1 messages · Page 1 of 1 (latest)

sinful hound
#

PERSIAPAN

  1. Pastikan menggunakan firmware yang I2C pada DTB/DTS Kernel yang ON/Menyala, atau juga bisa mengedit DTB/DTS pada Kernel anda (Sebagai Percobaan saya menggunakan firmware dari Mbah Wisnu yang ada di #1341370129090609162 message dikarenakan pada firmware tersebut I2Cnya sudah ON)
  2. Pasang DBAI Docking Board ke Orange PI Zero3

Credit:

#

STEP 1: Install Package Yang Dibutuhkan

opkg update
opkg install kmod-i2c-gpio-custom i2c-tools
#

STEP 2: Mengecek RTC di Terminal OpenWRT

  • Pastikan Device sudah terpasang DBAI Docking Board
  • Buka Terminal OpenWRT di Browser atau bisa dengan SSH
  • Mengecek bahwa RTC Tersambung dengan command dibawah
i2cdetect 1

Jika Tersambung, maka Output dari terminal tersebut akan seperti ini

root@A2OS:~# i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x08-0x77.
Continue? [Y/n]
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
  • Jika sudah terdeteksi seperti diatas, maka kita cek DUMP port I2C nya
i2cdump -y 1 0x68

Apabila Output sudah terdeteksi seperti dibawah, maka RTC sudah siap digunakan

root@A2OS:~# i2cdump -y 1 0x68
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 80 00 00 01 01 01 00 b3 b3 95 36 3e e5 da 8f 5d    ?..???.???6>???]
10: 93 df 85 5a 1d bf 56 f7 a5 9d 16 e7 73 56 17 d5    ???Z??V?????sV??
20: d3 4e d3 57 1b 85 c1 dd f4 d1 b4 ad 9f e7 43 37    ?N?W??????????C7
30: c8 eb e7 8e 3f b7 7e d1 75 f5 f6 dd bd 57 4d 95    ??????~?u????WM?
40: 80 00 00 01 01 01 00 b3 b3 95 36 3e e5 da 8f 5d    ?..???.???6>???]
50: 93 df 85 5a 1d 00 56 f7 a5 9d 16 e7 73 56 17 d5    ???Z?.V?????sV??
60: d3 4e d3 57 1b 85 c1 dd f4 d1 b4 ad 9f e7 43 37    ?N?W??????????C7
70: c8 eb e7 8e 3f b7 7e d1 75 f5 f6 dd bd 57 4d 95    ??????~?u????WM?
80: 80 00 00 01 01 01 00 b3 b3 95 36 3e e5 da 8f 5d    ?..???.???6>???]
dst....
#

STEP 3: Mengkoneksikan RTC ke System di OpenWRT

  • Load Module Kernel RTC dengan Menjalankan command dibawah
insmod rtc-ds1307
  • Jalankan command dibawah untuk mendeskripsikan alamat RTC ke system
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
  • Mengecek RTC Sudah terhubung
ls /dev | grep rtc

Belum Terhubung :

root@A2OS:~# ls /dev | grep rtc
rtc0

Terhubung :

root@A2OS:~# ls /dev | grep rtc
rtc0
rtc1

rtc0 : Bawaan CPU/RTC Internal
rtc1 : RTC Eksternal

#

STEP 4: Menggunakan RTC di OpenWRT

  • Mengecek waktu pada RTC Eksternal
hwclock -r -f /dev/rtc1

Apabila Output seperti dibawah, maka RTC tersebut belum tersinkronkan waktunya

root@A2OS:~# hwclock -r -f /dev/rtc1
hwclock: ioctl(RTC_RD_TIME) to /dev/rtc1 to read the time failed: Invalid argument
  • Mensinkronkan waktu RTC
    • Buka LuCI, dan menuju ke System > System
    • Klik Tombol Sync with browser
    • Jika Waktu sudah sinkron, masuk ke terminal OpenWRT atau SSH
    • Ketik hwclock -w -f /dev/rtc1 di terminal, lalu enter
    • Waktu telah tersinkron
  • Jika waktu telah tersinkron, maka coba cek lagi waktu RTC nya
hwclock -r -f /dev/rtc1

Apabila Output seperti dibawah, berarti waktu dibawah sudah tersinkron, dan RTC Siap digunakan

root@A2OS:~# hwclock -r -f /dev/rtc1
2025-05-13 00:53:20.367789+07:00
#

STEP 5: Setting RTC Agar Running setelah booting

  • Menambahkan file di /etc/modules.d agar module RTC otomatis ter-load setelah booting
echo rtc-ds1307 | tee /etc/modules.d/rtc-ds1307
  • Edit file /etc/init.d/sysfixtime dengan menggunakan tinyfilemanager atau FTP pada fungsi boot()
    hwclock_load
    local maxtime="$(find_max_time)"
    local curtime="$(date +%s)"
    if [ $curtime -lt $maxtime ]; then
        date -s @$maxtime
        hwclock_save
    fi

Atas sebelum diedit, Bawah Setelah diedit

    insmod rtc-ds1307
    echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

    hwclock_load
    $HWCLOCK -s -f $RTC_DEV
    local maxtime="$(find_max_time)"
    local curtime="$(date +%s)"
    #if [ $curtime -lt $maxtime ]; then
    #    date -s @$maxtime
    #    hwclock_save
    #fi
  • Reboot device untuk mengecek bahwa script tersebut berjalan normal
#

*file setelah diedit

slender owl
#

suwon mbah 🤝

sinful hound
quasi island
#

ijin tanya mbah. cara untuk restart opiz yg pakai ups selain melalui web ui. apakah bisa di tambah tombol power on off, supaya tidak perlu buka baterai.

sinful hound
#

berbeda dengan raspberrypi series, udah ada pin reset atau boot nya,, mungkin bisa aja sih, modifikasi bootloadernya,
cc. mbah @merry kiln

merry kiln
#

ttambah dts buat reset itu gak se

sinful hound
merry kiln
#

lah, yo gak iso nu?

long sphinx
#

Pak, orange pi zero 3 saya ko ga ad lampu nyala yach pas di colok power,..
Tdinyanya mau tu, boot di open wrt, pas saya colokin modem rakitan via usb mlah mati, smpai skrang ga hidup sma skali

#

Bantuannya donk

slender owl