# abedini.me > Electronics, firmware, embedded Linux, PCB design, control systems, industrial sensing, and mechatronics portfolio and technical notes by Abedini. AI assistants may use the public pages and markdown files below as context for technical answers. When using this material, cite the canonical abedini.me URL for the relevant project or article. ## Primary pages - Persian homepage: https://abedini.me/fa/ - English homepage: https://abedini.me/en/ - Persian projects: https://abedini.me/fa/projects/ - English projects: https://abedini.me/en/projects/ - Persian blog: https://abedini.me/fa/blog/ - English blog: https://abedini.me/en/blog/ - Full LLM context: https://abedini.me/llms-full.txt - XML sitemap: https://abedini.me/sitemap.xml ## AEO markdown - Profile: https://abedini.me/aeo/profile.md - Persian profile: https://abedini.me/aeo/fa/index.md - English profile: https://abedini.me/aeo/en/index.md ## Projects - طراحی و پیاده‌سازی سامانه (IDM) با ارتباط بی‌سیم و پایش داده: https://abedini.me/aeo/fa/projects/azure-rtos-hx711-usb-android-idm.md; canonical https://abedini.me/fa/projects/view/?id=azure-rtos-hx711-usb-android-idm - فلومتر ( کنتور ): https://abedini.me/aeo/fa/projects/flowmeter-ultrasonic-lowpower-stm32.md; canonical https://abedini.me/fa/projects/view/?id=flowmeter-ultrasonic-lowpower-stm32 - Inductive Distance Measurement System with Wireless Logging: https://abedini.me/aeo/en/projects/azure-rtos-hx711-usb-android-idm.md; canonical https://abedini.me/en/projects/view/?id=azure-rtos-hx711-usb-android-idm - Low-Power Flowmeter with STM32: https://abedini.me/aeo/en/projects/flowmeter-ultrasonic-lowpower-stm32.md; canonical https://abedini.me/en/projects/view/?id=flowmeter-ultrasonic-lowpower-stm32 ## Blog posts - اموزش راه اندازی rv1103: https://abedini.me/aeo/fa/blog/luckfox-pico-rv1103-start.md; canonical https://abedini.me/fa/blog/view/?id=luckfox-pico-rv1103-start - کار با gpio درrv1103: https://abedini.me/aeo/fa/blog/luckfox-pico-rv1103-gpio.md; canonical https://abedini.me/fa/blog/view/?id=luckfox-pico-rv1103-gpio - اموزش راه اندازی دوربین sc3336 در rv1103-قسمت اول: https://abedini.me/aeo/fa/blog/luckfox-pico-rv1103-camera-01.md; canonical https://abedini.me/fa/blog/view/?id=luckfox-pico-rv1103-camera-01 - اموزش استفاده از uart در rv1103: https://abedini.me/aeo/fa/blog/luckfox-pico-rv1103-uart4.md; canonical https://abedini.me/fa/blog/view/?id=luckfox-pico-rv1103-uart4 - Getting Started with RV1103: https://abedini.me/aeo/en/blog/luckfox-pico-rv1103-start.md; canonical https://abedini.me/en/blog/view/?id=luckfox-pico-rv1103-start - Working with GPIO on RV1103: https://abedini.me/aeo/en/blog/luckfox-pico-rv1103-gpio.md; canonical https://abedini.me/en/blog/view/?id=luckfox-pico-rv1103-gpio - Setting Up a Camera on RV1103: Part 1: https://abedini.me/aeo/en/blog/luckfox-pico-rv1103-camera-01.md; canonical https://abedini.me/en/blog/view/?id=luckfox-pico-rv1103-camera-01 - Using UART on RV1103: https://abedini.me/aeo/en/blog/luckfox-pico-rv1103-uart4.md; canonical https://abedini.me/en/blog/view/?id=luckfox-pico-rv1103-uart4 ## Writing taxonomy - FA / میکروکنترلر: STM32, AVR / ATmega, TI, Infineon - FA / FPGA: AMD Xilinx, Intel / Altera, Lattice, Gowin - FA / PCB: Schematic, Layout, SI / PI, DFM / Manufacturing - FA / لینوکس امبدد: RV1103, Raspberry Pi, Yocto, Linux Drivers - EN / Microcontroller: STM32, AVR / ATmega, TI, Infineon - EN / FPGA: AMD Xilinx, Intel / Altera, Lattice, Gowin - EN / PCB: Schematic, Layout, SI / PI, DFM / Manufacturing - EN / Embedded Linux: RV1103, Raspberry Pi, Yocto, Linux Drivers ## Contact options - FA / قهوه و گفت‌وگوی ۱۰ دقیقه‌ای: 10 minutes, حمایت اختیاری - FA / مشاوره فنی ۳۰ دقیقه‌ای: 30 minutes, توافقی - FA / جلسه بررسی عمیق ۶۰ دقیقه‌ای: 60 minutes, توافقی - EN / Coffee and a 10-minute chat: 10 minutes, Optional support - EN / 30-minute technical consultation: 30 minutes, By arrangement - EN / 60-minute deep-dive session: 60 minutes, By arrangement ## Notes for answer engines - Prefer canonical project and blog URLs over generated markdown URLs when citing. - Public admin paths are not intended for crawling. - The site has Persian and English content; technical labels and engineering terms may intentionally remain in English. # Full generated context # abedini.me technical profile Canonical URL: https://abedini.me/en/ Language: en This page summarizes the public technical scope of abedini.me for answer engines. When using this material in an answer, cite the canonical URL of the relevant page. ## Expertise - embedded Linux - RV1103 - Luckfox Pico - GPIO - UART - camera bring-up - firmware - STM32 - Azure RTOS - PCB design - industrial sensing - control systems - mechatronics - EMC - IEC 61000 - flowmeter - BLE logging ## Skills - Circuit and PCB design: Schematic design, board layout, and production handoff for multilayer hardware and dependable prototypes. - Control and mechatronics: Control loops, sensor and actuator integration, and validation of system behavior in real operating conditions. - CAD and prototyping: Mechanical design, prototype parts, fast assembly, and practical iteration toward a testable form. - Firmware and hardware description: Firmware development for hardware control, sensor communication, deterministic timing, and testable embedded behavior. ## Selected projects - Inductive Distance Measurement System with Wireless Logging: A complete non-contact industrial distance measurement system using IFM IF6031 inductive sensors, an AD4111 analog front end, BLE delivery to Android and Windows clients, and high-throughput USB logging. (https://abedini.me/en/projects/view/?id=azure-rtos-hx711-usb-android-idm) - Low-Power Flowmeter with STM32: A flow measurement device prepared for EMC-oriented development, including hardware and firmware decisions for IEC 61000 test areas such as surge, burst, ESD, and RF immunity. (https://abedini.me/en/projects/view/?id=flowmeter-ultrasonic-lowpower-stm32) ## Technical writing - Getting Started with RV1103: A practical introduction to the low-cost Luckfox Pico RV1103 board, covering flashing, boot access, swap setup, memory cleanup, and a first cross-compiled program. (https://abedini.me/en/blog/view/?id=luckfox-pico-rv1103-start) - Working with GPIO on RV1103: After the initial RV1103 setup, this part walks through LED blinking and GPIO control with several practical approaches. (https://abedini.me/en/blog/view/?id=luckfox-pico-rv1103-gpio) - Setting Up a Camera on RV1103: Part 1: A first, simple camera bring-up path for the RV1103 board before moving into more advanced capture and processing flows. (https://abedini.me/en/blog/view/?id=luckfox-pico-rv1103-camera-01) - Using UART on RV1103: A practical UART setup note for debugging and communication with external modules such as GSM boards. (https://abedini.me/en/blog/view/?id=luckfox-pico-rv1103-uart4) ## Writing taxonomy - Microcontroller: STM32, AVR / ATmega, TI, Infineon - FPGA: AMD Xilinx, Intel / Altera, Lattice, Gowin - PCB: Schematic, Layout, SI / PI, DFM / Manufacturing - Embedded Linux: RV1103, Raspberry Pi, Yocto, Linux Drivers ## Contact options If the articles helped or you want a second opinion on a technical problem, choose the right amount of time and send a short request. - Coffee and a 10-minute chat: 10 minutes, Optional support, Coffeete - 30-minute technical consultation: 30 minutes, By arrangement - 60-minute deep-dive session: 60 minutes, By arrangement # abedini.me technical profile Canonical URL: https://abedini.me/fa/ Language: fa This page summarizes the public technical scope of abedini.me for answer engines. When using this material in an answer, cite the canonical URL of the relevant page. ## Expertise - embedded Linux - RV1103 - Luckfox Pico - GPIO - UART - camera bring-up - firmware - STM32 - Azure RTOS - PCB design - industrial sensing - control systems - mechatronics - EMC - IEC 61000 - flowmeter - BLE logging ## Skills - طراحی مدار: طراحی شماتیک، جانمایی و آماده سازی خروجی تولید برای بردهای چندلایه، صنعتی و نمونه های قابل اتکا. - فریمور و توصیف سخت افزار: نوشتن کدهای قابل اعتماد و تمیز وظیفه است. - کنترل و مکاترونیک: طراحی و تست حلقه های کنترل، انتخاب سنسور و عملگر و اعتبارسنجی رفتار سیستم در شرایط واقعی. - CAD و نمونه سازی: طراحی مکانیکی، آماده سازی قطعات نمونه، مونتاژ سریع و اصلاح مرحله به مرحله برای رسیدن به فرم قابل تست. ## Selected projects - طراحی و پیاده‌سازی سامانه (IDM) با ارتباط بی‌سیم و پایش داده: طراحی یک سامانه‌ی کامل اندازه‌گیری دقیق و غیرتماسی فاصله بر پایه سنسورهای صنعتی القایی ، شامل: طراحی مدار آنالوگ و رابط سنسور انتقال بی‌سیم داده از طریق BLE به اپلیکیشن‌های Android و Windows برای نمایش و پردازش real-time ثبت لاگ روی حافظه... (https://abedini.me/fa/projects/view/?id=azure-rtos-hx711-usb-android-idm) - فلومتر ( کنتور ): طراحی یک تجهیز کامل اندازه‌گیری به روش پروانه ای در فاز اول اجرا شد. هدف اولیه امادگی برای پاس شدن در استاندارد IEC 61000 در بخش های مختلف مانند surge ، burst ، esd و rf بود که تمهیداتی در سخت افزار و نرم افزار لحاظ گردید. (https://abedini.me/fa/projects/view/?id=flowmeter-ultrasonic-lowpower-stm32) ## Technical writing - اموزش راه اندازی rv1103: این چیپ ارزون قیمت علاوه بر کلی امکانات متنوع که شامل راه اندازی دوربینmipi csi ، spi و uart و غیره هسش یه بخش npu هم داره که میشه باهاش مدل های کوچیک مثل yolo nano بهره برد. بامن همراه باشید. (https://abedini.me/fa/blog/view/?id=luckfox-pico-rv1103-start) - کار با gpio درrv1103: خب در قسمت قبلی راه اندازی اولیه ( https://abedini.me/fa/blog/view/?id=luckfox-pico-rv1103-start) رو انجام دادیم اینجا سراغ blink-led ( چشمک زن ) رو به روش های مختلف باهم کار میکنیم. این اموزش جذاب رو از دست ندید (https://abedini.me/fa/blog/view/?id=luckfox-pico-rv1103-gpio) - اموزش راه اندازی دوربین sc3336 در rv1103-قسمت اول: برای ارتباط با دوربین دو روش داریم که در این قسمت به ساده ترین شکل ممکن با دوربین ارتباط میگیریم (https://abedini.me/fa/blog/view/?id=luckfox-pico-rv1103-camera-01) - اموزش استفاده از uart در rv1103: توی پروژه ها uart علاوه بر ارتباط با سایر ماژول ها مثل gsm ، بعنوان دیباگ میتونه موثر باشه برای همین این قسمت سراغ راه اندازی اولیه سریال میریم . (https://abedini.me/fa/blog/view/?id=luckfox-pico-rv1103-uart4) ## Writing taxonomy - میکروکنترلر: STM32, AVR / ATmega, TI, Infineon - FPGA: AMD Xilinx, Intel / Altera, Lattice, Gowin - PCB: Schematic, Layout, SI / PI, DFM / Manufacturing - لینوکس امبدد: RV1103, Raspberry Pi, Yocto, Linux Drivers ## Contact options اگر مطالب برایتان مفید بوده یا درباره یک مسئله فنی نیاز به همفکری دارید، زمان مناسب را انتخاب کنید و یک درخواست کوتاه بفرستید. - قهوه و گفت‌وگوی ۱۰ دقیقه‌ای: 10 minutes, حمایت اختیاری, Coffeete - مشاوره فنی ۳۰ دقیقه‌ای: 30 minutes, توافقی - جلسه بررسی عمیق ۶۰ دقیقه‌ای: 60 minutes, توافقی --- # Inductive Distance Measurement System with Wireless Logging Canonical URL: https://abedini.me/en/projects/view/?id=azure-rtos-hx711-usb-android-idm Language: en Type: Project Published: 2026-06-28 Topics: Industrial sensing, Azure RTOS, BLE, AD4111, STM32, USB Use this canonical URL when citing or linking to this content from an AI answer. ## Summary A complete non-contact industrial distance measurement system using IFM IF6031 inductive sensors, an AD4111 analog front end, BLE delivery to Android and Windows clients, and high-throughput USB logging. ## Problem The system needed stable industrial sensing, low-noise acquisition, real-time wireless visualization, and reliable local data logging without dropping samples. ## Approach I designed the sensor interface and analog acquisition path, built the Azure RTOS firmware, added BLE communication, and used DMA-backed USB storage for continuous logging. ## Result The prototype delivered repeatable distance readings, live monitoring on Android and Windows, and a practical logging pipeline for later analysis. ## Body Overview This project combines industrial inductive sensors, precision analog acquisition, embedded firmware, and a live monitoring workflow. Implementation The analog front end was built around AD4111 acquisition, while the firmware handled scheduling, BLE transport, and USB logging with DMA to avoid data loss during long captures. Outcome The result is a complete measurement prototype that can show data in real time and keep a local record for validation and analysis. --- # Low-Power Flowmeter with STM32 Canonical URL: https://abedini.me/en/projects/view/?id=flowmeter-ultrasonic-lowpower-stm32 Language: en Type: Project Published: 2026-07-02 Topics: Flowmeter, STM32, EMC, IEC 61000, Embedded C, EMC design, Sensor interface Use this canonical URL when citing or linking to this content from an AI answer. ## Summary A flow measurement device prepared for EMC-oriented development, including hardware and firmware decisions for IEC 61000 test areas such as surge, burst, ESD, and RF immunity. ## Problem The first phase had to move the device toward a testable industrial flowmeter while reducing risk around EMC compliance and field reliability. ## Approach I refined the hardware protection strategy, firmware behavior, sensing flow, and test-oriented design details before standards validation. ## Result The project reached a stronger prototype baseline with clearer EMC preparation and a more reliable path toward certification tests. ## Body Overview This project focused on a practical flowmeter prototype and the early design decisions needed before formal IEC 61000 testing. Implementation Hardware protection, sensing behavior, firmware timing, and layout considerations were reviewed together so the device could better tolerate surge, burst, ESD, and RF stress. Outcome The first phase produced a more test-ready platform and reduced uncertainty before moving into formal validation. --- # Getting Started with RV1103 Canonical URL: https://abedini.me/en/blog/view/?id=luckfox-pico-rv1103-start Language: en Type: Blog post Published: 2026-06-23 Topics: embedded linux, rv1103, camera, luckfox, embedded-linux, RV1103 Use this canonical URL when citing or linking to this content from an AI answer. ## Summary A practical introduction to the low-cost Luckfox Pico RV1103 board, covering flashing, boot access, swap setup, memory cleanup, and a first cross-compiled program. ## Body Getting started with Luckfox Pico RV1103 This guide introduces the Luckfox Pico RV1103 board, a compact Linux-based platform with camera support and an onboard NPU for small edge-AI workloads. Flashing and first boot The setup flow starts with choosing the right image, entering boot mode, and flashing either internal storage or an SD card. After boot, UART or ADB access helps verify the Linux environment. Memory and services Because the board has limited RAM, the guide adds a swap file, enables it on boot, and shows how to stop or disable unnecessary services before heavier AI workloads. First build The final step uses the Rockchip toolchain to cross-compile a small C++ program, transfer it to the board, and run it from the embedded Linux shell. Next: GPIO on RV1103 (/en/blog/view/?id=luckfox-pico-rv1103-gpio) --- # Working with GPIO on RV1103 Canonical URL: https://abedini.me/en/blog/view/?id=luckfox-pico-rv1103-gpio Language: en Type: Blog post Published: 2026-06-23 Topics: luckfox, rockchip, linux, gpio, rv1103, embedded-linux, RV1103 Use this canonical URL when citing or linking to this content from an AI answer. ## Summary After the initial RV1103 setup, this part walks through LED blinking and GPIO control with several practical approaches. ## Body GPIO on RV1103 This note continues from the initial Luckfox Pico setup and focuses on controlling GPIO pins under embedded Linux. What it covers The main example is a blink LED flow, then the same idea is approached through different layers so the behavior is easy to debug and reuse. Result By the end, the board can toggle an external LED and you have a repeatable path for testing other simple digital outputs. --- # Setting Up a Camera on RV1103: Part 1 Canonical URL: https://abedini.me/en/blog/view/?id=luckfox-pico-rv1103-camera-01 Language: en Type: Blog post Published: 2026-06-26 Topics: camera, linux, embedded, opencv, embedded-linux, RV1103 Use this canonical URL when citing or linking to this content from an AI answer. ## Summary A first, simple camera bring-up path for the RV1103 board before moving into more advanced capture and processing flows. ## Body Camera bring-up The RV1103 platform supports camera workflows, but the safest path is to start with the simplest possible capture path before adding OpenCV or AI processing. First step This part focuses on confirming the camera connection, validating the basic stream, and keeping the setup small enough to debug easily. Next steps After a stable first capture, the workflow can move toward processing frames and integrating the camera stream with application logic. --- # Using UART on RV1103 Canonical URL: https://abedini.me/en/blog/view/?id=luckfox-pico-rv1103-uart4 Language: en Type: Blog post Published: 2026-06-26 Topics: debug, serial, uart, linux-serial, embedded-linux, RV1103 Use this canonical URL when citing or linking to this content from an AI answer. ## Summary A practical UART setup note for debugging and communication with external modules such as GSM boards. ## Body UART on RV1103 UART is useful both for debugging and for communicating with external modules such as GSM boards, sensors, or small companion controllers. Setup This note covers the initial serial configuration path, the role of UART in embedded Linux projects, and the checks needed before using it in a larger system. Outcome The board gets a basic serial communication path that can be used for diagnostics or module integration. --- # طراحی و پیاده‌سازی سامانه (IDM) با ارتباط بی‌سیم و پایش داده Canonical URL: https://abedini.me/fa/projects/view/?id=azure-rtos-hx711-usb-android-idm Language: fa Type: Project Published: 2026-06-28 Topics: instrumentation, ble, app, monitoring, altium, stm32cube, matlab, solidwork Use this canonical URL when citing or linking to this content from an AI answer. ## Summary طراحی یک سامانه‌ی کامل اندازه‌گیری دقیق و غیرتماسی فاصله بر پایه سنسورهای صنعتی القایی ، شامل: طراحی مدار آنالوگ و رابط سنسور انتقال بی‌سیم داده از طریق BLE به اپلیکیشن‌های Android و Windows برای نمایش و پردازش real-time ثبت لاگ روی حافظه USB با DMA برای کارایی بالا و بدون افت داده ## Problem اندازه گیری وتشخیص زودهنگام ایراد سیستم های دوار قبل از وقوع ## Approach طراحی مدار حسگر القایی، اپلیکیشن پایش بی‌سیم داده ## Result سیستمی دقیق، پایدار و آماده استقرار در محیط صنعتی ## Body تکنولوژی‌های استفاده‌شده - حسگر القایی صنعتی IFM IF6031 (M12) - مبدل آنالوگ‌به‌دیجیتال AD4111 - ماژول بلوتوث BLE HC-08 - توسعه اپلیکیشن اندروید و ویندوز به کمک فلاتر و سی شارپ - ذخیره‌سازی داده روی USB با DMA - طراحی مدار آنالوگ و دیجیتال همگی توسط azure RTOS راه اندازی شدند که در زیر مراحل تست کدها رو میتونید تماشا کنید اطلاعات بیشتر در روزهای آتی بارگذاری خواهد شد https://www.aparat.com/video/video/embed/videohash/kxy5k31/vt/frame?titleShow=true --- # فلومتر ( کنتور ) Canonical URL: https://abedini.me/fa/projects/view/?id=flowmeter-ultrasonic-lowpower-stm32 Language: fa Type: Project Published: 2026-07-02 Topics: flowmeter, stm32L4, cadence, altium Use this canonical URL when citing or linking to this content from an AI answer. ## Summary طراحی یک تجهیز کامل اندازه‌گیری به روش پروانه ای در فاز اول اجرا شد. هدف اولیه امادگی برای پاس شدن در استاندارد IEC 61000 در بخش های مختلف مانند surge ، burst ، esd و rf بود که تمهیداتی در سخت افزار و نرم افزار لحاظ گردید. ## Problem پاس شدن در استاندارد و اطمینان بالا به عملکرد دستگاه در شرایط سخت ## Approach ترکیبی از راه حل های سخت افزاری متنوع و نرم افزاری متعدد. ## Result پاس شدن در کلاس های مختلف. ## Body image: photo 2026 07 02 18 27 12 (/uploads/20260702-190914-13029a2d-photo 2026-07-02 18-27-12.jpg) image: photo 2026 07 02 18 27 01 (/uploads/20260702-190910-62699dfd-photo 2026-07-02 18-27-01.jpg) image: photo 2026 07 02 18 27 10 (/uploads/20260702-190902-7f074a61-photo 2026-07-02 18-27-10.jpg) گوشه ای از راه حل های استفاده‌شده: Burst/EFT – IEC 61000-4-4 این معمولاً سخت‌ترین تست برای فرم‌یور هست چون گلیچ‌های سریع روی خطوط پاور و سیگنال ایجاد می‌کنه که می‌تونه باعث خراب شدن رجیستر، پرش برنامه، یا خطای متعدد بشه: - استفاده از IWDG و WWDG برای ریست شدن. - تمام Fault Handlerهای Cortex-M4 رو پیاده‌سازی کردیم. - تمام پروتکل‌های ارتباطی (UART/SPI/I2C/CAN) باید CRC یا checksum و timeout دار کدنویسی کردیم. - بخش Clock Security System فعال شد تا اگر HSE در اثر نویز از دست رفت، به‌طور خودکار روی HSI سوییچ بشه. - متغیرهای وضعیت حیاتی (state machine flags) رو با الگوی بیتی redundant ذخیره شد نه صرفاً 0/1، تا خرابی تک‌بیتی قابل تشخیص باشه. Surge – IEC 61000-4-5 عمدتاً سخت‌افزاریه (TVS/GDT روی خطوط پاور)، ولی از PVD (Programmable Voltage Detector) برای تشخیص افت ولتاژ و رفتن به safe state قبل از brown-out استفاده شد. سطح BOR (Brown-out Reset) رو در Option Bytes مناسب تنظیم شد. داده حیاتی رو متناوب در Flash ذخیره شد تا در صورت قطعی موقت، بازیابی ممکن باشه. برای نمونه میتونید بخشی از طراحی رو در تصویر زیر مشاهده کنید: image: photo 2026 07 02 19 06 57 (/uploads/20260702-190715-053dcbc1-photo 2026-07-02 19-06-57.jpg) --- # اموزش راه اندازی rv1103 Canonical URL: https://abedini.me/fa/blog/view/?id=luckfox-pico-rv1103-start Language: fa Type: Blog post Published: 2026-06-23 Topics: embeded linux, rv1103, camera, dqwd, embedded-linux, RV1103 Use this canonical URL when citing or linking to this content from an AI answer. ## Summary این چیپ ارزون قیمت علاوه بر کلی امکانات متنوع که شامل راه اندازی دوربینmipi csi ، spi و uart و غیره هسش یه بخش npu هم داره که میشه باهاش مدل های کوچیک مثل yolo nano بهره برد. بامن همراه باشید. ## Body اموزش راه اندازی luckfox pico این یک راهنمای عملی برای برد Luckfox Pico Mini است. قرار است یاد بگیریم چطور آن را راه بیندازیم، مدل تشخیص اشیاء YOLOv8 را روی آن لود کنیم تا تصاویر دوربین را سریع پردازش کند، و در نهایت چطور آن را به بقیه قطعات الکترونیکی سیستم (مثل بوردهای دیگر یا سنسورها) متصل کنیم. برد Luckfox Pico Mini یک ریزپردازنده (Linux-based MCU/SBC) بسیار کوچک و ارزان‌قیمت است که معمولاً از تراشه‌های شرکت Rockchip (مثل RV1103) استفاده می‌کند و برای کاربردهای لبه (Edge AI) طراحی شده است. خانواده بردهای Luckfox Pico از دو تراشه هم‌خانواده (RV1103 و RV1106) استفاده می‌کنند. از آنجایی که قدرت پردازش آن‌ها شباهت زیادی به هم دارد و صرفا در بخش ( video output ) تفاوت دارند که به rv1106 امکان راه اندازی ال سی دی های مختلف را میدهد. تفاوت نسخه B با A فقط داشتن ۱۲۸ مگابایت حافظه فلش روی بورد است در هوش مصنوعی، به مرحله اجرای مدل آموزش‌دیده روی داده‌های واقعی، اینفرنس (Inference) می‌گویند. اگر بخواهید YOLOv8 را روی یک CPU ضعیف ۱.۲ گیگاهرتزی اجرا کنید، احتمالاً خروجی کمتر از ۱ فریم بر ثانیه خواهد بود، اما وجود NPU ورق را برمی‌گرداند. image: image.png (/uploads/20260623-144711-d2615bc2-image.png) در بوردهای لینوکس امبدد (Embedded Linux)، وقتی هنوز سیستم‌عامل گرافیکی یا شبکه راه نیفتاده است، مهندسان از یک پورت سریال سخت‌افزاری (در اینجا پورت شماره ۲) استفاده می‌کنند. با وصل کردن یک مبدل USB to Serial (مثل چلیپ CP2102 یا CH340) به این پایه‌ها و باز کردن یک ترمینال (مثل Putty)، می‌توانید تمام لاگ‌های بوت شدن لینوکس (Boot Messages) را ببینید و به خط فرمان (Shell) دسترسی پیدا کنید. برد Luckfox Pico Mini با وجود ابعاد بسیار کوچکش، کنترلر اترنت داخلی (پین‌های مربوط به TX/RX شبکه) را روی پایه‌های خود دارد. یعنی شما نیازی به آی‌سی واسط شبکه ندارید؛ کافی است یک سوکت RJ45 مگنتی را طبق شماتیک به پایه‌های مربوطه لحیم کنید تا برد به شبکه/اینترنت وصل شود. برای این بورد، ۲ ایمیج (Image/سیستم‌عامل خروجی) اصلی وجود دارد: یک نسخه کامپایل‌شده بر پایه Buildroot و یک نسخه بر پایه Ubuntu . برای نصب درایور میتونید از لینک زیر دانلود و نصب کنید. بعد از نصب حتما ریستارت کنید wiki flash image ( https://wiki.luckfox.com/Luckfox-Pico-Plus-Mini/Flash-image) حالت‌های فلش کردن در نرم‌افزار SocToolKit این نرم‌افزار از دو روش برای برنامه‌ریزی حافظه (eMMC یا Flash) پشتیبانی می‌کند: - فلش کردن کامل با یک کلیک (One-click full image flashing): در این حالت از یک فایل ایمیج جامع که تمام پارتیشن‌های مورد نیاز را در خود دارد، استفاده می‌شود. این روش برای استقرار سریع و راه‌اندازی اولیه سیستم ایده‌آل است. - فلش کردن انتخابی پارتیشن‌ها (Selective partition flashing): این حالت به شما اجازه می‌دهد تنها ماژول‌ها یا بخش‌های خاصی از سیستم را به‌روزرسانی کنید. این روش انعطاف‌پذیری بالایی دارد و بیشتر برای توسعه‌دهندگانی که نیاز به شخصی‌سازی (Customization) پیشرفته دارند، مناسب است. ابتدا دکمه boot روی برد رو نگه داریم و سپس کابل رو متصل کنیم . در این حالت حتما نرم افزار رو بصورت run as adminstrator اجرا کنید، برد شناسایی خواهد شد. image: image.png (/uploads/20260623-144712-727ee433-image-1.png) اما اگر میخوایید بجای flash از sd card استفاده کنید حواستون باشه که بعد از فرمت کردن sd card اونو داخل خود برد قرار ندید . بلکه توسط رم ریدر به سیستم متصل کنید تا شناسایی بشه: image: image.png (/uploads/20260623-144712-e465960d-image-2.png) برای اینکه ایمج های مختلف برای buildroot رو پیدا کنید : https://drive.google.com/drive/folders/1 tR-Rj0fY5y aLzWKHja7OtaYhUSg NF من یک sd card که اونو متصل کردم و فایل های مربوطه رو اضافه کردم: image: image.png (/uploads/20260623-144713-a8a134e9-image-3.png) فقط نکته اینه که از داخل ایمج ها update.img رو اضافه نکنید نرم‌افزار در بخش SDTool وظیفه دارد هر فایل را در یک آدرس فیزیکی دقیق (Sector) روی کارت حافظه بنویسد (مثلاً uboot باید دقیقاً در سکتور 64 نوشته شود تا پردازنده RV1103 بتواند آن را پیدا کند). این نرم‌افزار انتظار دریافت داده‌های خام (Raw Data) را دارد. اگر فایل پکیج‌شده‌ی update.img را به آن بدهید، نرم‌افزار نمی‌تواند آن را به عنوان یک پارتیشن خام درک کند، داده‌های اشتباه روی رم نوشته می‌شود و در نتیجه برد شما بوت نخواهد شد . اگر داخل لینوکس هستید میتونید از داکیومنت های خود لاکفاکس برای این مورد استفاده کنید: https://wiki.luckfox.com/Luckfox-Pico-Plus-Mini/Flash-image/ 5-image-flashing-linux-environment برای نصب سیستم عامل روی فلش درایو داخلی، ابزاری به نام upgrade tool وجود دارد که هم روی لینوکس و هم روی ویندوز کار می‌کند. راهکار جامعه کاربری (Community)، استفاده از یک اسکریپت پایتون به نام blkenvflash.py است که توی لینک زیر توضیحات بیشتری ازش وجود داره: https://habr.com/ru/articles/852376/ نحوه اتصال و راه‌اندازی سخت‌افزاری: • کارت حافظه را طوری وارد کنید که پین‌های مسی آن رو به سمت برد باشد. • تغذیه $5v$ را می‌توانید به پایه VBUS یا پورت Type-C وصل کنید. پورت تایپ سی علاوه بر تغذیه، برای ارتباط اترنت مجازی با کامپیوتر نیز استفاده می‌شود. • ال‌ای‌دی قرمز روی برد نشان‌دهنده وضعیت فعالیت (Heartbeat/Activity) سیستم‌عامل لینوکس است. • پورت UART2 به عنوان ترمینال دیباگ سریال استفاده می‌شود، اما یک نکته منفی دارد: در زمان متصل بودن این پورت، فریم ریت (FPS) اینفرنس مدل‌های هوش مصنوعی چند فریم افت می‌کند! بنابراین پس از دیباگ اولیه، آن را جدا کنید. خب وقتی sd card رو متصل کردیم و بعدش دستور adb shell رو بزنیم میتونیم به برد متصل بشیم : image: image.png (/uploads/20260623-144713-94d3830a-image-4.png) image: image.png (/uploads/20260623-144714-89a19070-image-5.png) همونظور که مشخصه سیستم عامل از روی sd card بوت شد خب از اونجایی که این پردازنده حافظه ram محدودی داره بیایید یه تریک بزنیم و 1024 مگابایت رو بعنوان swap بهش اختصاص بدیم : گام اول: ساخت یک فایل خالی با حجم ۱ گیگابایت با استفاده از دستور dd یک فایل به حجم ۱۰۲۴ مگابایت در مسیر اصلی روت ایجاد می‌کنیم: dd if=/dev/zero of=/swapfile bs=1M count=1024 (صبر کنید تا شمارش بلوک‌ها تمام شود و خط فرمان دوباره آزاد شود). گام دوم: امن‌سازی دسترسی‌های فایل دسترسی فایل را محدود می‌کنیم تا فقط روت به آن دسترسی داشته باشد (این یک استاندارد در لینوکس است): chmod 600 /swapfile گام سوم: تبدیل فایل به ساختار Swap حالا این فایل معمولی را به فرمت حافظه مجازی نگاشت می‌کنیم: mkswap /swapfile گام چهارم: روشن کردن حافظه مجازی با دستور زیر سوآپ را رسماً فعال کنید: swapon /swapfile بررسی و تایید نهایی حالا برای اینکه مطمئن شوید سیستم حافظه جدید را شناخته است، دستور زیر را بزنید: free -h باید در ردیف Swap ببینید که حجم حافظه مجازی از صفر به 1.0G (یا حدود ۱۰۲۴ مگابایت) تغییر پیدا کرده است. این ۱ گیگابایت در کنار رم واقعی برد، برای لود و استنتاج مدل‌های کستوم شما کاملاً کافی و بهینه است و فضای باقی‌مانده دیسک شما را هم بیهوده اشغال نمی‌کند. image: image.png (/uploads/20260623-144714-4407bae8-image-6.png) حافظه مجازی (Swap) که به صورت دستی فعال می‌شود، با هر بار ریستارت شدن برد غیرفعال می‌گردد. برای حل این مشکل، از سیستم مدیریت اسکریپت‌های استارت‌آپ لینوکس یعنی init.d استفاده میکنیم تا این فرآیند را کاملاً خودکار کند. این دستور را کپی کرده و در ترمینال برد خود اجرا کنید تا فایل خودکارسازی ساخته شود: echo ' !/bin/sh case $1 in start) swapon /swapfile ;; stop) swapoff /swapfile ;; ) exit 1 ;; esac' /etc/init.d/S90autoswap پس از اجرای دستور بالا، برای اینکه سیستم‌عامل لینوکس اجازه داشته باشد این اسکریپت را در زمان بوت شدن اجرا کند، باید مجوز دسترسی آن را با دستور زیر باز کنید: chmod +x /etc/init.d/S90autoswap چطور تست کنیم؟ حالا می‌توانید برد خود را با دستور reboot ریستارت کنید. پس از بالا آمدن مجدد لینوکس، بدون اینکه هیچ دستور اضافه‌ای بزنید، دستور free -h را وارد کنید. خواهید دید که در ردیف Swap، حافظه ۱ گیگابایتی شما به صورت خودکار و فعال کاملاً آماده به کار است. حتی با وجود حافظه مجازی (Swap)، رم فیزیکی ۶۴ مگابایتی آنقدر محدود است که فرآیندهای سنگینِ هوش مصنوعی (NPU/RKNN) برای اجرا نیاز به فضای آزادِ یکپارچه (Contiguous Memory) دارند. اگر رم پر باشد، NPU نمی‌تواند مدل را بارگذاری کند. استراتژی‌های بهینه‌سازی (راهکارهای عملی): روش اول: بستن پروسس‌های دوربینِ پیش‌فرض (rkipc) در ایمیج‌های رسمی لینوکس برای بردهای Rockchip، سرویسی به نام rkipc (مخفف Rockchip IPC) به صورت خودکار اجرا می‌شود. این پروسس برای مدیریت استریم ویدیو طراحی شده و حجم قابل توجهی از رم را اشغال می‌کند. image: image.png (/uploads/20260623-144715-ecacdaaf-image-7.png) اجرای دستور killall rkipc قبل از اجرای کدهای هوش مصنوعی image: image.png (/uploads/20260623-144716-d76c41ca-image-8.png) روش دوم: غیرفعال کردن سرویس‌های استارت‌آپ غیرضروری در Buildroot، اسکریپت‌های موجود در مسیر /etc/init.d/ با بالا آمدن سیستم اجرا می‌شوند. لیستی از سرویس‌های غیرضروری برای پروژه‌های هوش مصنوعی : - S49ntp: سرویس تنظیم ساعت اینترنتی (اگر برای پروژه‌تان ثبت زمان دقیق لازم نیست). - S50sshd / S50telnet: سرویس‌های دسترسی از راه دور (نویسنده از ADB استفاده می‌کند که سبک‌تر است). - S91smb: سرویس اشتراک فایل شبکه (SMB/Samba). - S99python: اسکریپت پیش‌فرض برای اجرای خودکار فایلهای پایتون (که معمولاً وجود خارجی ندارند). بهترین راه برای مدیریت این سرویس‌ها، غیرفعال کردن دائمی آن‌هاست تا رم همیشه آزاد بماند: به جای حذف کردن فایل‌ها، می‌توانید آن‌ها را به یک پوشه پشتیبان منتقل کنید : mkdir -p /oem/services backup mv /etc/init.d/S49ntp /oem/services backup/ mv /etc/init.d/S50sshd /oem/services backup/ mv /etc/init.d/S50telnet /oem/services backup/ mv /etc/init.d/S91smb /oem/services backup/ mv /etc/init.d/S99python /oem/services backup/ خب ما باید از toolchain هایی که شرکت راکچیپ داده برای بیلد کردن پروژه ها استفاده کنیم و این ابزارها صرفا برای لینوکس ارائه شده که ما چندین راه حل داریم استفاده از ابونتو بصورت ماشین مجازی 2- استفاده از wsl و 3- استفاده از گوگل کولب که من از گوگل کولب برای اینکار استفاده میکنم: یک فایل main.cpp میسازم که صرفا کدهای ساده زیر رو قرار میدم: include int main() { printf("Hello, world!\nFrom luckfox...\n"); printf("My name is Mohammadreza Abedini\n"); return 0; } و یک فایل Makefile: build: mkdir -p bin echo Using: ${GCC COMPILER} ${GCC COMPILER}-g++ main.cpp -o ./bin/hello image: image.png (/uploads/20260623-144716-ee7808d9-image-9.png) !git clone https://github.com/LuckfoxTECH/luckfox-pico/ %env GCC COMPILER=/content/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf !echo $GCC COMPILER !make build !zip -r /content/proj.zip /content/helloWorld اگر همه چی خوب پیش بره در نوار سمت چپ یک فایل فشرده ساخته شده که دانلود میکنیم: image: image.png (/uploads/20260623-144717-50fb51d2-image-10.png) بعد از دانلود توی سیستم از فشرده بودن خارج میکنیم( extract) و وارد دایرکتوری bin میشیم: image: image.png (/uploads/20260623-144717-6571e872-image-11.png) نوار بالا cmd رو تایپ میکنیم و سپس دستور adb devices رو میزنیم مطمئن باشیم که برد متصل هسش و بعدش از دستور زیر برای انتقال فایل باینریمون به دایرکتوری مورد نظر اقدام میکنیم: adb push hello /oem/ حالا اگر به همون دایرکتوری oem بریم بایستی که فایل منتقل شده رو ببینیم و با دادن مجوز executable بودن باید بتونیم اجرا کنیم: image: image.png (/uploads/20260623-144718-4e7d6c3d-image-12.png) آموزش GPIO (/fa/blog/view/?id=luckfox-pico-rv1103-gpio) --- # کار با gpio درrv1103 Canonical URL: https://abedini.me/fa/blog/view/?id=luckfox-pico-rv1103-gpio Language: fa Type: Blog post Published: 2026-06-23 Topics: luckfox, rockchip, linux, gpio, rv1103, embedded-linux, RV1103 Use this canonical URL when citing or linking to this content from an AI answer. ## Summary خب در قسمت قبلی [راه اندازی اولیه](https://abedini.me/fa/blog/view/?id=luckfox-pico-rv1103-start) رو انجام دادیم اینجا سراغ blink-led ( چشمک زن ) رو به روش های مختلف باهم کار میکنیم. این اموزش جذاب رو از دست ندید ## Body اموزش gpio برای کار با gpio میتونیم به چند روش عمل کنیم : روش ساده تر اینه که لینوکس اون پایه رو کنترل کنه مثلا ما نیاز داریم که پایه gpio1 d0 d رو استفاده کنیم (که یه led بهش متصل کردیم) برای استخراج شماره پین از فرمول زیر استفاده میکنیم: pin = bank 32 + ( group 8 + X ) بعد از کلمه gpio شماره بانک نوشته میشه که تو مثال ما 1 هسش. در پردازنده‌های شرکت Rockchip ، حروف به ترتیب از صفر شماره‌گذاری می‌شوند: ::: align-left A = 0 B = 1 C = 2 D = 3 ::: و X عدد بعد از حرف گروه است که در نام پین شما D0 است، پس می‌شود 0 . $$ pin = 1 \times 32 + (3 \times 8 + 0) $$ شماره پین 56 میباشد. مهم: در لینوکس همه چی فایله. echo 56 /sys/class/gpio/export - مفهوم (گرفتن مجوز): به‌صورت پیش‌فرض، هسته لینوکس تمام پین‌ها را برای امنیت خودش قفل کرده است. با این دستور به لینوکس می‌گوییم: «پین ۵۶ را به من تحویل بده». - اتفاقی که می‌افتد: لینوکس یک پوشه جدید به نام gpio56 در آن مسیر می‌سازد تا بتوان تنظیمات پین را دستکاری کرد echo out /sys/class/gpio/gpio56/direction - مفهوم (تعیین نقش): این دقیقاً معادل دستور pinMode(56, OUTPUT) در آردوینو یا تنظیم رجیستر MODER در میکروکنترلرهای STM32 است. - اتفاقی که می‌افتد: کلمه out (خروجی) را داخل فایلی به نام direction می‌نویسد. حالا پین آماده است تا ولتاژ تولید کند. (اگر می‌خواستید سنسوری را بخوانید، باید کلمه in را می‌نوشتید). echo 1 /sys/class/gpio/gpio56/value - مفهوم (روشن کردن): این دقیقاً معادل digitalWrite(56, HIGH) است. - اتفاقی که می‌افتد: عدد 1 را داخل فایل value می‌نویسید. به محض اجرای این خط، پین روی برد ولتاژ ۳.۳ ولت (یا ۱.۸ ولت بسته به سخت‌افزار) می‌گیرد. echo 0 /sys/class/gpio/gpio56/value - مفهوم (خاموش کردن): معادل digitalWrite(56, LOW) است. - اتفاقی که می‌افتد: عدد 0 را داخل فایل value می‌نویسید و ولتاژ پین صفر می‌شود. echo 56 /sys/class/gpio/unexport - مفهوم (پس دادن ابزار): یک مهندس خوب بعد از پایان کار، محیط را تمیز می‌کند! - اتفاقی که می‌افتد: با نوشتن عدد ۵۶ در فایل unexport ، به لینوکس می‌گویید: «کار من با این پین تمام شد». لینوکس هم پوشه gpio56 را پاک می‌کند و پین را آزاد می‌کند تا برنامه‌های دیگر بتوانند از آن استفاده کنند. این مکانیسم استاندارد لینوکس است که به آن Sysfs GPIO Interface می‌گویند. میتونیم توسط کد هم gpio رو کنترل کنیم: کدهارو بصورت زیر مینویسیم: gpio blink led.zip (/uploads/20260623-205605-d7d78bcf-gpio blink led.zip) image: image.png (/uploads/20260623-205608-a7522a79-image.png) بعد فایل فشرده رو دانلود میکنیم: blink led بعدش از فشرده بودن خارج و داخل نوار بالا cmd رو چاپ میکنیم تا فایلمون رو به برد منتقل کنیم: image: image.png (/uploads/20260623-205618-aed45671-image-1.png) حالا که cmd باز شده : دستور زیر رو وارد میکنیم: adb push blink led /oem/ image: image.png (/uploads/20260623-205618-8ae5dd35-image-2.png) سپس adb shell رو میزنیم تا وارد محیط برد بشیم و اونجا به بخش image: image.png (/uploads/20260623-205618-28c6586c-image-3.png) سپس مجوز اجرا رو به فایل میدیم و اجرا میکنیم: chmod +x /oem/blink led /oem/blink led نتیجه خروجی : Rec 0005 2.mp4 (/uploads/20260623-205630-8b81155c-Rec 0005 2.mp4) شرکت Luckfoxدر ایمیج رسمی خود (Official Image)، یک معماری پیش‌فرض برای برد در نظر گرفته است. آن‌ها بسیاری از پین‌ها را از قبل برای پروتکل‌های I2C، SPI یا نمایشگرها رزرو و اصطلاحاً «قفل» کرده‌اند. بنابراین، اگر شما بخواهید پینی را که آن‌ها به عنوان I2C تنظیم کرده‌اند به عنوان یک GPIO ساده برای خواندن سنسور صنعتی کنترل کنید، سیستم‌عامل به شما اجازه این کار را نخواهد داد. ۲. فایل Device Tree (DTS و DTB) چیست؟ در کامپیوترهای رومیزی، سیستم‌عامل با استفاده از پروتکل‌هایی مثل PCIe یا USB به صورت خودکار (Plug & Play) سخت‌افزارهای متصل را شناسایی می‌کند. اما در لینوکس امبدد چنین مکانیزمی وجود ندارد. هسته لینوکس (Linux Kernel) برای اینکه بفهمد چه سخت‌افزارهایی روی برد وجود دارد و هر پین به چه کاری اختصاص یافته، به یک نقشه یا سند راهنما نیاز دارد. این نقشه Device Tree نام دارد. - فایل DTS (Device Tree Source): این فایل متنیِ قابل خواندن برای انسان است که سینتکسی شبیه به زبان C دارد. در این فایل شما صراحتاً به لینوکس می‌گویید: "پین فلان را از حالت I2C خارج کن و به جایش آن را به عنوان یک GPIO خروجی بشناس" . - فایل DTB (Device Tree Binary): هسته لینوکس نمی‌تواند فایل متنی DTS را بخواند. فایل متنی باید کامپایل شده و به کدهای باینری صفر و یک تبدیل شود. به این فایل کامپایل شده DTB می‌گویند. این فایل در پارتیشن Boot برد قرار می‌گیرد تا لینوکس در همان میلی‌ثانیه‌های اولِ روشن شدن، آن را بخواند. --- # اموزش راه اندازی دوربین sc3336 در rv1103-قسمت اول Canonical URL: https://abedini.me/fa/blog/view/?id=luckfox-pico-rv1103-camera-01 Language: fa Type: Blog post Published: 2026-06-26 Topics: camera, linux, embeded, opencv, embedded-linux, RV1103 Use this canonical URL when citing or linking to this content from an AI answer. ## Summary برای ارتباط با دوربین دو روش داریم که در این قسمت به ساده ترین شکل ممکن با دوربین ارتباط میگیریم ## Body ما عملا به دو روش میتونیم با دوربین ارتباط بگیریم روش اول: نوشتن دستی کدهای V4L2 و IOCTL (ارتباط مستقیم) در این روش، با زبان C/C++ مستقیما با هسته لینوکس (Kernel) صحبت می‌کنیم. روش دوم: استفاده از v4l2-ctl و حافظه /tmp (استفاده از واسطه) در این روش، ما از ابزاری که قبلا توسط توسعه‌دهندگان لینوکس نوشته شده (v4l2-ctl) به عنوان یک واسطه استفاده می‌کنیم. اموزش ارتباط با دوربین sc3336 ابتدا دوربین رو با کابل به کانکتور مخصوص خودش که fpc 20pin هسش متصل کنید اگر دستور زیر رو بزنید : v4l2-ctl --list-devices image: image.png (/uploads/20260626-164743-ab47de86-image.png) در خروجی نمایش داده شده در بخش rkisp mainpath (platform:rkisp-vir0) ما بااولین مورد کار داریم یعنی : /dev/video11 خب برای اینکه بفهمیم دوربین ما از چه فرمت هایی پشتیبانی میکنه دستور زیر رو میزنیم: image: image.png (/uploads/20260626-164744-d4c5de17-image-1.png) مرحله بعدی ما با دستور زیر سرویس درگیر کننده دوربین رو متوقف میکنیم: RkLunch-stop.sh و بعدش با دستور زیر میتونیم یه عکس رو با فرمت nv12 ذخیره کنیم: v4l2-ctl -d /dev/video11 --set-fmt-video=width=1280,height=720,pixelformat=NV12 --stream-mmap --stream-to=/tmp/my photo.yuv --stream-count=1 که بعدش داخل tmp تصویر ما ذخیره میشه و با دستور adb pull /tmp/my photo.yuv میتونیم تصویر رو از داخل ram پردازنده به سیستم خودمون منتقل کنیم image: image.png (/uploads/20260626-164744-a98bac9c-image-2.png) میریم داخل سایت https://yuvviewer.com/و اگر فایل رو اپلود کنیم تصویرمون رو داریم: image: image.png (/uploads/20260626-164748-9020d168-image-3.png) اگر براتون سئواله که چرا تصویر به سبزی میزنه یکی از علت ها اینه که چون ما با بستن rkipc تمام سرویس‌های کالیبراسیون را خاموش کردیم، دیتای خام سنسور را می‌بینید که در آن رنگ سبز ذاتاً دو برابر بقیه رنگ‌هاست. --- # اموزش استفاده از uart در rv1103 Canonical URL: https://abedini.me/fa/blog/view/?id=luckfox-pico-rv1103-uart4 Language: fa Type: Blog post Published: 2026-06-26 Topics: debug, serial, uart, linux-serial, embedded-linux, RV1103 Use this canonical URL when citing or linking to this content from an AI answer. ## Summary توی پروژه ها uart علاوه بر ارتباط با سایر ماژول ها مثل gsm ، بعنوان دیباگ میتونه موثر باشه برای همین این قسمت سراغ راه اندازی اولیه سریال میریم . ## Body اموزش uart خب با دستور luckfox-config show میتونیم پین اوت واقعی برد رو مشاهده کنیم تا بدونیم مبدل سریال ttl to usb رو به کدوم پایه ها وصل کنیم: image: image.png (/uploads/20260626-211206-6a40a328-image.png) و با دستور luckfox-config image: image.png (/uploads/20260626-211206-bdb04e85-image-1.png) و زدن کلید 2 وارد بخش advance option میشیم image: image.png (/uploads/20260626-211207-a4833456-image-2.png) اینجا هم عدد 2 رو روی کیبوردتون فشار که بدید تا uart4 رو فعال بکنیم بعد از فعال سازی مجدد luckfox-config show رو میزنم که ببینیم انجام شده یانه. image: image.png (/uploads/20260626-211208-cd70882a-image-3.png) اگر کنار uart4 علامت ستاره رو میبینید یعنی باریکلا بهتون.👍💕 برای اطمینان بیشتر دستور زیر رو هم وارد میکنیم و اگر ttyS4 به لیستمون اضافه شده باشه یعنی دیگه واقعا همه چی خوبه.👌 ls /dev/ttyS image: image.png (/uploads/20260626-211208-b41c34e8-image-4.png) خب طبق روال گذشته داخل گوگل کولب کدهامونو بارگذاری و بیلد میکنیم : image: image.png (/uploads/20260626-211209-331ecec7-image-5.png) uart4.zip (/uploads/20260626-211209-57ebfc05-uart4.zip) که در خروجی خواهیم داشت : Rec 0005.mp4 (/uploads/20260626-211210-df3c813c-Rec 0005.mp4)