Target Board: Luckfox Pico Pro Max (RV1106) Version: 2.1 Author: Becube Last Updated: November 23, 2025
- Project Overview
- Quick Start (Flash & Play)
- Build Instructions
- Web Interface & APIs
- Troubleshooting
- Development Notes
📄 Single Source: detailed build/flash, runtime layout, and troubleshooting notes now live in
docs/PROJECT_SUMMARY.md. Reference it whenever you need deeper context than this quick README.
This project provides a custom firmware for the Luckfox Pico Pro Max. It includes a safe, read-only Web Status Monitor (luckfox_web_config) that allows users to:
- View system status (uptime, memory, SD-card usage).
- Confirm RTSP + recording health with LED indicators.
- Review persistent debug logs stored on the SD card.
The firmware is built using the Luckfox Buildroot SDK and includes automated scripts for compilation and packaging.
- Web UI: Port 8080 (Modern, Dark Theme).
- RTSP Stream: Port 554 (Standard
rkipc). - Architecture: ARM 32-bit EABI5 (Optimized for RV1106).
- Auto-Start: Services start automatically on boot via
/etc/init.d/S99luckfox_video.
Locate the latest firmware file in the project directory. It follows the naming convention:
update_v2.1_YYYYMMDD_HHMMSS_xxxxx.img
(where xxxxx is the MD5 suffix of the file).
Use the SocToolKit or RKDevTool on Windows to flash the .img file to your board.
- Connect Network: Ensure the board is connected via Ethernet/USB (RNDIS).
- Check IP: Default IP is usually
172.32.0.93(USB) or assigned via DHCP (Ethernet). - Access Web UI: Open
http://172.32.0.93:8080in your browser. - Verify Binary (Optional):
ssh root@172.32.0.93 "md5sum /oem/usr/bin/luckfox_web_config" # Expected MD5: b0e6f1931a463e42347938a5404a8674
We use a consolidated script to handle everything: compilation, cleaning, and packaging.
- Luckfox SDK installed at
/home/becube/luckfox-pico. sudoaccess (for cleaning rootfs).
Run the following command from the project root:
./scripts/build_firmware.sh- Compiles
src/web_config.cusing the ARM cross-compiler. - Cleans old rootfs and Buildroot caches to ensure no stale files.
- Builds the rootfs using the SDK's
build.sh. - Installs the new binary and overlay files (init scripts, configs).
- Packages the final
update.img. - Renames the file with a timestamp and MD5 hash.
- URL:
http://<BOARD_IP>:8080 - Sections: Status card, LED card, Logs card.
- Auth: Basic (admin / luckfox).
| Endpoint | Method | Description | Example |
|---|---|---|---|
/api/status |
GET | System snapshot | curl http://.../api/status |
/api/logs |
GET | Last log lines | curl http://.../api/logs |
Recording control, FPS changes, and other risky actions were removed to keep the device stable. Apply configuration updates manually via
/userdata/rkipc.iniif needed.
- Check if process is running:
ssh root@<IP> "ps aux | grep luckfox_web_config"
- Check if port 8080 is open:
ssh root@<IP> "netstat -tuln | grep 8080"
- Manually start it to see errors:
ssh root@<IP> killall luckfox_web_config /oem/usr/bin/luckfox_web_config
- Ensure you are using the latest
.imgfile generated bybuild_firmware.sh. - Check the MD5 of the binary inside the board (
/oem/usr/bin/luckfox_web_config). It should be 33KB (not 42KB).
- Binary:
/oem/usr/bin/luckfox_web_config - Init Script:
/etc/init.d/S99luckfox_video - Config:
/userdata/rkipc.ini - Logs:
/tmp/(system logs)
Instead of rebuilding the whole firmware, you can just update the binary:
# 1. Compile (Step 1 inside build script)
./scripts/build_firmware.sh # Ctrl+C after compilation if you only need the binary
# 2. Upload
scp luckfox_web_config root@<IP>:/oem/usr/bin/
# 3. Restart just the monitor
ssh root@<IP> "killall luckfox_web_config; /oem/usr/bin/luckfox_web_config &"