Development Board: BW20-12F Development Environment: Ubuntu 22.04 (VMware Virtual Machine) 1. Project Overview This project implements a Wi-Fi connection status indicator system based on FreeRTOS. The RGB LED on the BW20-12F development board displays different colors depending on the Wi-Fi connection status: Fast blinking red: Wi-Fi not connected Slow blinking yellow: Connecting Solid green: Connected and IP acquired Solid red: Connection lost Blinking purple: Connection error
This project is ideal for learning embedded development fundamentals, including GPIO control, Wi-Fi connectivity, and FreeRTOS task management.
First, we must resolve a common issue: Python package installation timeout. Because the default PyPI mirror is overseas, the download is slow. So we first configure the Tsinghua University mirror:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
After configuration, enter the SDK directory and initialize the environment: cd ~/Desktop/ameba/ameba-rtos
source ameba.sh
The first run will automatically install Python dependencies. Please wait patiently.
When using a USB serial port inside a virtual machine, the device may fail to be recognized. This is because a service called brltty (Braille device tool) occupies the USB port.
Disable it using:
sudo systemctl stop brltty-udev.service sudo systemctl mask brltty-udev.service sudo systemctl disable brltty.service
Then connect the USB device in VMware:
VM -> Removable Devices -> QinHeng Electronics CH340 -> Connect
mkdir -p ~/Desktop/ameba/ameba-rtos/my_project/wifi_led_component cd ~/Desktop/ameba/ameba-rtos/my_project/wifi_led_component
This file instructs the build system on how to compile the project.
There are two sections:
At first, my source file path was incorrect. I put files in the root directory but wrote:
find ~/Desktop/ameba/ameba-rtos/component/wifi/api -name "*.h" LED pin mapping on the board: