109 views
## hardware ### debug header 1.25mm jst ![](https://m3.lane-fu.com/codimd/uploads/6e82f898-3b24-4b35-bcd7-99cc187a4e87.png) ![](https://m3.lane-fu.com/codimd/uploads/35659a27-3fb2-4b85-893b-fc55d9c3226e.png) ``` | gnd | tx | rx | 3.3v | ``` ### GPIO Pinout unconfirmed ![](https://m3.lane-fu.com/codimd/uploads/255cb72c-3182-4e61-a7fd-fe7b2e3d229d.png) ## software ### BT firmware activation #### reference commits https://github.com/stvhay/kernel/commit/f83ff6c84ab8082a67ddb02f06bb1cb0fa652175 https://github.com/stvhay/kernel/commit/d983e97bcf64a69defca66c4f6f654177f79b5e1 this may be needed--I was having kernel panics when wifi was using kernel's AES https://github.com/stvhay/kernel/commit/fe45c1db9671a29855ed323d6c5d44f130b49d83 probably more than one way to do this: https://github.com/stvhay/rkwifibt/commits/rkwifibt this is the little script i wrote to detect and load the driver.. probably other ways to do this too https://github.com/batocera-linux/batocera.linux/blob/master/package/batocera/firmwares/firmware-radxa-rkwifibt/S29rtk_bt #### notes reference ```bash if [[ "$BOARD" == "indiedroid-nova" ]]; then cd ~ echo "" echo "Installing ${DEFAULT_MOTD} bluetooth support ..." git clone https://github.com/stvhay/rkwifibt # build the hci driver cd rkwifibt make -C realtek/rtk_hciattach # Install the firmware and utility mkdir -p /lib/firmware/rtl_bt cp -fr realtek/RTL8821CS/* /lib/firmware/rtl_bt/ cp -f realtek/rtk_hciattach/rtk_hciattach /usr/bin/ cp -f bt_load_rtk_firmware /usr/bin/ chmod +x /usr/bin/{rtk_hciattach,bt_load_rtk_firmware} echo hci_uart >> /etc/modules cd ~; rm -fdr rkwifibt fi ``` another concept ```bash #!/bin/bash shopt -s nullglob dt="/sys/firmware/devicetree/base" log="/var/log/realtek.log" start() { [ -f "$dt/compatible" ] || { echo "No device tree! $0 should not be installed on this architecture"; exit 1; } # check for SDIO bluetooth support in device tree echo "Checking for SDIO bluetooth support" if [ -d "$dt/pinctrl/wireless-bluetooth" ]; then # Search devices for the specific adapter for path in /sys/bus/sdio/devices/*; do if grep -q 0xc821 "$path/device"; then # RTK8821CS found echo "RTK8821CS Found." # Find the serial tty number using the device tree, which has a # single file of the form uartN-gpios. ttynum=$(printf "%s" $dt/pinctrl/wireless-bluetooth/uart*-gpios | sed -r 's/.*uart([0-9]+)-gpios/\1/') tty=/dev/ttyS${ttynum} echo "TTY Found: $tty" # Run the userspace driver echo "Starting userspace driver on $tty." BT_TTY_DEV="$tty" nohup /usr/bin/bt_load_rtk_firmware 2>&1 > "$log" & echo "Check $log for more information." exit 0 fi done fi } stop() { killall rtk_hciattach } case "$1" in start) start ;; stop) stop ;; restart) start ;; status) ps | grep rtk_hciattach | grep -v grep cat "$log" # code to check status of app comes here # example: status program_name ;; *) echo "Usage: $0 {start|stop|status|restart}" esac ``` ### images http://respectech.com/CurrentProjects/Indiedroid/ ### kernels https://github.com/stvhay/kernel ### firmware blobs https://github.com/JustEnoughLinuxOS/distribution/blob/main/projects/Rockchip/devices/RK3588/options#L40 ### uboot ## documentation possible schematic but maybe just a rockchip reference? https://1drv.ms/b/s!AmY8JCaZbE-RhaNsty6aNog8eY-RVQ?e=gkCkcq ### schematics [they promise its hte board and not a tablet](https://armbian.lane-fu.com/linx/8ut9hqfn.pdf)