=Introduction= =Hardware= {| border="0" cellpadding="10" width="100%" |- |width="32%" valign="top" align="left"| ==Blue Print== ===Block Diagram=== ===Specifications=== ===Module Size=== ===Layout=== # U8207 Fix PCB footprint # SMT Column change to 2mm(3.7mm PCB footprint) # Add Bead B1 to M.2 RF module VDD from Battery # Add nmos Q5009,Q5010 to D1,D2 signal # Add R9338 for NTC on board # change MCU VDD from VBAT to VCC_SYSIN # change Battery CONN from 1.25mm Pitch to 1.5mm Pitch(1511) # add R9339 0402 # change R9332,R9338 PCB footprint from 0402 to 0603 # move J54 0.3mm in PCB board # Add Q5011,Q5012,R9340,R9341,C9998 for Disable Charger # Add D5011,R9342,R9343,C9999 for Charger wakeup MCU # del U103,C526,C287,C288 # Add J55,J56,J57 # change J7 Hole to 0.9mm ===BOM=== # change Battery CONN to 1.5mm Pitch(1511) # add Q5009,Q5010 # change R9327,R3928 from 22R to 10K # change R113 from 270K to 180K # change R9330 from 120K to 180K # del R9318 # del L6101 # add R9339 510R # change R9294 from 240K to 110K # change R9296 from 51K to 18K # del L12 # del U103,C526,C287,C288 ===GPIO Description=== {| class="wikitable" style="text-align:center" |+RF Module !Function !GPIO !Direction !Description |- |RF_RST |GPIO0_B0 |Output |Active:H |- |RF_PWR_EN |GPIO4_C2 |Output |Active:H |- |RF_Airplane-mode_EN |GPIO4_C4 |Output |Active:L |- |RF_wakeup |GPIO4_C3 |Output |Active:H |- |} {| class="wikitable" style="text-align:center" |+5V Boost for USB HOST and HDMI !Function !GPIO !Direction !Description |- |Boost_EN |GPIO4_D2 |Output |Active:H |- |USB_PWR_EN |GPIO0_A5 |Output |Active:H |- |} {| class="wikitable" style="text-align:center" |+WiFi/BT !Function !GPIO !Direction !Description |- |WiFi_REG_EN |GPIO2_B1 |Output |Active:H |- |WiFi_Wake_Host |GPIO2_B2 |Input |Active:H |- |BT_Wake_Host |GPIO2_C0 |Input |Active:H |- |Host_Wake_BT |GPIO2_C1 |Output |Active:H |- |BT_RST |GPIO2_B7 |Output |Active:L |- |32K_CLK_OUT |GPIO2_C6 |Output |Active:Edge |- |SDIO_CLK |GPIO2_B0 |Output |Active:Edge |- |SDIO_CMD |GPIO2_A7 |Input/Output |Active:H |- |SDIO_D0 |GPIO2_A3 |Input/Output |Active:H |- |SDIO_D1 |GPIO2_A4 |Input/Output |Active:H |- |SDIO_D2 |GPIO2_A5 |Input/Output |Active:H |- |SDIO_D3 |GPIO2_A6 |Input/Output |Active:H |- |UART1_RX |GPIO2_B3 |Input |Active:L |- |UART1_TX |GPIO2_B4 |Output |Active:L |- |UART1_RTS |GPIO2_B5 |Input |Active:L |- |UART1_CTS |GPIO2_B6 |Output |Active:L |- |} {| class="wikitable" style="text-align:center" |+RGMII !Function !GPIO !Direction !Description |- |RGMII_MDC |GPIO4_B6 |Output |Active:Edge |- |RGMII_MDIO |GPIO4_B7 |Input/Output |Active:L |- |RGMII_INT |GPIO3_D3 |Input |Active:H |- |RGMII_RST |GPIO4_C0 |Output |Active:L |- |RGMII_MCLK |GPIO4_C1 |Input |Active:Edge |- |RGMII_TXEN |GPIO4_A6 |Output |Active:H |- |RGMII_TXCLK |GPIO4_A0 |Output |Active:Edge |- |RGMII_TXD0 |GPIO4_A4 |Output |Active:H |- |RGMII_TXD1 |GPIO4_A5 |Output |Active:H |- |RGMII_TXD2 |GPIO3_D6 |Output |Active:H |- |RGMII_TXD3 |GPIO3_D7 |Output |Active:H |- |RGMII_RXDV |GPIO4_B1 |Input |Active:H |- |RGMII_RXCLK |GPIO4_A3 |Input |Active:Edge |- |RGMII_RXD0 |GPIO4_A7 |Input |Active:H |- |RGMII_RXD1 |GPIO4_B0 |Input |Active:H |- |RGMII_RXD2 |GPIO4_A1 |Input |Active:H |- |RGMII_RXD3 |GPIO4_A2 |Input |Active:H |- |} {| class="wikitable" style="text-align:center" |+SGMII !Function !GPIO !Direction !Description |- |SGMII_MDC |GPIO2_C3 |Output |Active:Edge |- |SGMII_MDIO |GPIO2_C4 |Input/Output |Active:L |- |SGMII_INT |GPIO3_C7 |Input |Active:H |- |SGMII_RST |GPIO3_C6 |Output |Active:L |- |} {| class="wikitable" style="text-align:center" |+I2C !Function !GPIO !Direction !Description |- |I2C4_SCL |GPIO4_B3 |Output |Active:Edge |- |I2C4_SDA |GPIO4_B2 |Input/Output |Active:L |- |} {| class="wikitable" style="text-align:center" |+CAN !Function !GPIO !Direction !Description |- |CAN2_TX |GPIO4_B5 |Output |Active:L |- |CAN2_RX |GPIO4_B4 |Input |Active:L |- |} {| class="wikitable" style="text-align:center" |+UART !Function !GPIO !Direction !Description |- |UART9_TX |GPIO4_C5 |Output |Active:L |- |UART9_RX |GPIO4_C6 |Input |Active:L |- |UART3_TX |GPIO1_A1 |Output |Active:L |- |UART3_RX |GPIO1_A0 |Input |Active:L |- |} {| class="wikitable" style="text-align:center" |+LED !Function !GPIO !Direction !Description |- |LED1_PWM |GPIO0_C7 |Output |Active:H |- |LED2_PWM |GPIO0_C4 |Output |Active:H |- |} {| class="wikitable" style="text-align:center" |+IRDA !Function !GPIO !Direction !Description |- |IR_RX |GPIO0_C6 |Output |Active:H |- |} {| class="wikitable" style="text-align:center" |+Vcore PWM !Function !GPIO !Direction !Description |- |CPU_CORE_PWM |GPIO0_C0 |Output |Active:H |- |GPU_CORE_PWM |GPIO0_C1 |Output |Active:H |- |} {| class="wikitable" style="text-align:center" |+MCU !Function !GPIO !Direction !Description |- |UART4_TXD |GPIO1_A6 |Output |Active:L |- |UART4_RXD |GPIO1_A4 |Input |Active:L |- |PWR ON/#OFF STAT |GPIO1_B2 |Output |Active:H |- |} {| class="wikitable" style="text-align:center" |+Home Lite LED GPIO !Function !GPIO !Direction !Description |- |LINK_LED |GPIO0_C4 |Output |Active:H |- |Charge_LED |GPIO0_C7 |Output |Active:H |- |} ===Front View=== ===Backend View=== ===Side View=== ==Test== ===Power Consumption=== {| class="wikitable" style="text-align:center" |+Idle Mode(unit:Watt) !w/o HDMI, Ethernet, WIFI, 4G !add HDMI !add USB Hub(Mouse+Keyboard) !add Ethernet 1 !add Ethernet 0 !add WIFI !add 4G |- |1.65 |2.35 |.285 |3.6 |4.5 |5.2 |/ |- |} {| class="wikitable" style="text-align:center" |+Work Mode(unit:Watt) - w/ HDMI, Ethernet, WIFI, USB Hub !CPU Full Load(stress -c 4) !GPU Heavy Load(glmark2 x3) !Iperf Test(Ethernet) !Iperf Test(Wifi) !4G Download !CPU + GPU + Iperf |- |7 |5.5 |5.5 |3.85 |/ |/ |- |} {| class="wikitable" style="text-align:center" |+Power Consumption Benchmark(unit:Watt) !G2L !RK3328 !RK3399 |- |2.4 |1.56 |2.3 |- |} ===Iperf Throughput=== {| class="wikitable" style="text-align:center" |+Ethernet 0 port(unit:Mbits/s)-TCP !colspan="5"|Send !colspan="5"|Receive |- |1 |2 |3 |4 |5 |1 |2 |3 |4 |5 |- |- |936 |925 |927 |928 |928 |937 |937 |937 |938 |938 |- |} {| class="wikitable" style="text-align:center" |+Ethernet 1 port(unit:Mbits/s)-TCP !colspan="5"|Send !colspan="5"|Receive |- |1 |2 |3 |4 |5 |1 |2 |3 |4 |5 |- |- |927 |927 |926 |925 |929 |926 |937 |938 |937 |938 |} {| class="wikitable" style="text-align:center" |+Wifi(unit:Mbits/s)-TCP !colspan="5"|Send !colspan="5"|Receive |- |1 |2 |3 |4 |5 |1 |2 |3 |4 |5 |- |- |28.3 |25.8 |28.3 |26.8 |27.5 |26.5 |27.8 |28.5 |26.7 |28.9 |- |} {| class="wikitable" style="text-align:center" |+Ethernet 0 port(unit:Mbits/s)-UDP(BER < 1%) !colspan="5"|Send !colspan="5"|Receive |- |1 |2 |3 |4 |5 |1 |2 |3 |4 |5 |- |- |898 |876 |836 |888 |845 |946 |948 |944 |946 |945 |- |} {| class="wikitable" style="text-align:center" |+Ethernet 1 port(unit:Mbits/s)-UDP(BER < 1%) !colspan="5"|Send !colspan="5"|Receive |- |1 |2 |3 |4 |5 |1 |2 |3 |4 |5 |- |- |719 |709 |694 |518 |939 |953 |954 |953 |952 |952 |- |} {| class="wikitable" style="text-align:center" |+Wifi(unit:Mbits/s)-UDP(BER < 1%) !colspan="5"|Send !colspan="5"|Receive |- |1 |2 |3 |4 |5 |1 |2 |3 |4 |5 |- |- | | | | | |31.1 |28.6 |21.8 |32.1 |26.7 |- |} {| class="wikitable" style="text-align:center" |+4G DL(unit:Mbps) !colspan="5"|SpeedTest |- |1 |2 |3 |4 |5 |- |- |16.09 |25.99 |13.63 |25.25 |22.1 |- |} {| class="wikitable" style="text-align:center" |+4G UL(unit:Mbps) !colspan="5"|SpeedTest |- |1 |2 |3 |4 |5 |- |- |41.37 |41.05 |43.75 |39.94 |42.43 |- |} ===PCIE Speed=== {| class="wikitable" style="text-align:center" |+NVME(unit:MB/s) !Brand !Model !Type !Write !Read |- |Samsung |MZ-VLW1280 |PM961 |190 |800 |- |- |Samsung |MZ-VL22560 |PM9A1 |580 |800 |- |} ===Environment Test=== {| class="wikitable" style="text-align:center" |+High Temperature Operate |- |硬件版本 |NT2109A1 |- |- |软件版本 |Linux OpenWrt 4.19.172-pcat #1 SMP Sat Oct 9 17:02:20 CST 2021 aarch64 GNU/Linux |- |- |测试设备 |TEMI580 |- |- |测试条件 |高温60度/湿度95% - 8小时 |- |- |供电 |5V Input |- |- |待测物状态 |正常工作(无WIFI/4G,无电池) |- |- |测试项目 |1.高温状态下冷启动20次 2.高温状态下上网功能正常 |- |- |测试结果 |PASS |- |} {| class="wikitable" style="text-align:center" |+Low Temperature Operate |- |硬件版本 |NT2109A1 |- |- |软件版本 |Linux OpenWrt 4.19.172-pcat #1 SMP Sat Oct 9 17:02:20 CST 2021 aarch64 GNU/Linux |- |- |测试设备 |TEMI580 |- |- |测试条件 |低温零下35度 - 8小时 |- |- |供电 |5V Input |- |- |待测物状态 |正常工作(无WIFI/4G,无电池) |- |- |测试项目 |1.低温状态下冷启动20次 2.低温状态下上网功能正常 |- |- |测试结果 |PASS |- |} {| class="wikitable" style="text-align:center" |+High Temperature Storage |- |硬件版本 |NT2109A1 |- |- |软件版本 |Linux OpenWrt 4.19.172-pcat #1 SMP Sat Oct 9 17:02:20 CST 2021 aarch64 GNU/Linux |- |- |测试设备 |TEMI580 |- |- |测试条件 |高温70度/湿度95% - 8小时 |- |- |供电 |无 |- |- |待测物状态 |未上电(无包装,有电池) |- |- |测试项目 |1.高温存储后取出静置2小时,测试功能和电池 |- |- |测试结果 |PASS |- |} ==Tips== ===Set usb mode to host=== #otg_mode switching echo host > /sys/devices/platform/fe8a0000.usb2-phy/otg_mode ===Battery protection board=== [[File:保护板.png]] ===Battery Connector=== #[[File:1D25.png]] #[[File:1511.png]] #[[File:XT30.png]] ===Fix samba not working on OpenWRT using kernel 4.19=== Use commands below:
uci set samba4.@samba[0].disable_async_io=1 uci commit==build Android== get rk3568_android image on ubuntu 18.04 #ref1: https://source.android.com/setup/build/initializing #ref2: https://t.rock-chips.com/wiki.php?filename=%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91/Android ===pre install (u18)=== sudo apt-get update sudo apt-get install -y device-tree-compiler openjdk-8-jdk git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig liblz4-tool libssl-dev bc expect #if you are on ubuntu20.04 sudo apt-get install python-is-python3 install `repo` command mkdir -p ~/bin curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo echo 'PATH=~/bin:$PATH' >> .bashrc ===fetch code=== repo init --repo-url https://github.com/aosp-mirror/tools_repo.git -u https://github.com/rockchip-toybrick/manifests.git -b develop-11.0 -m default.xml --depth=1 .repo/repo/repo sync ===build=== source build/envsetup.sh lunch #choose 24 ./build.sh -AUCKu -d rk3568-gw =Resource= *[[User Manual]] =Modem Firmware Update= Please DON'T POWER OFF the device during the firmware updating! And make sure the device has enough battery power to finish the updating (above 30%). ===Quectel EM05=== cd /tmp wget https://dl.photonicat.com/firmware/Quectel-EM05-update.tar.gz tar -xzf Quectel-EM05-update.tar.gz cd Quectel-EM05-update ./update.sh ===Quectel RM500U=== cd /tmp wget https://dl.photonicat.com/firmware/RM500U-update.tar.gz tar -xzf RM500U-update.tar.gz cd RM500U-update ./update.sh = 通讯协议 = == RK3568 与 电源充电控制板卡通讯协议 == ===物理层协议=== *通过串口通讯,115200波特率,校验位无,数据位8位,停止位1位 ====帧格式表==== {| class="wikitable sortable" |- ! 起始位 !! 数据位 !! 校验位置 !! 结束位置 |- |0xA5,一个字节长度||见数据位表,变长||数据位(从数据位开始到数据位结束)的CRC校验,2个字节长度,低位在前,高位在后||0x5A,一个字节长度 |} =====数据位表===== {| class="wikitable sortable" |- ! 数据来源地址 !! 目的地址 !! 帧序号 !! 数据长度 (第5-6位) !! 数据命令以及数据内容 |- |0x01表示第一块CPU板,0x02表示第二块CPU板,0x03表示第三块CPU板,'''目前只有一块RK3568 CPU 板子,只用到0x01''';
echo 0 > /sys/devices/system/cpu/cpu1/online
**开启:echo 1 > /sys/devices/system/cpu/cpu1/online
= 无电池改装 =
*删除B1(下图红框内)MPZ2012S300AT000 0805 30ohm@100MHz 6A
*增加L12(下图蓝框内) 2.2uH 4mmx4mm 饱和电流>3A
[[File:no-battery-wiki.png]]