Bluetrum AB32VG1 is a development board based on AB5301A RISC-V microcontroller designed for Bluetooth audio applications as well as general-purpose projects that works with RT-Thread real-time operating system.
RT-Thread sent me a board for review, and I’ll write about my experience in a getting started guide for Bluetutm AB32VG1 trying out the RT-Thread Studio IDE with the LED blink and audio samples, as there’s no Bluetooth sample at this time…
The board ships with a USB-C cable for power and programming.
It offers Arduino UNO headers for expansion, a MicroSD card slot, a USB host port, a 3.5mm audio jack, an IR receiver, and a few buttons.
There’s nothing to do on the bottom of the board apart from a QR Core for the WeChat app.
There are also several configuration jumpers, but I could not find any documentation about these and did not mess with the jumpers’ position in this guide.
We’ll start with the documentation that sadly is only available in Chinese right now. It will also link to tools in the Chinese website (rt-thread.org), but you can switch to the English website (rt-thread.io) to find the tools we’ll need namely RT-Thread Studio IDE and Downloader v2.2.0 for flashing the binary to the board and get access to the console.
Here’s the download link for the IDE that sadly, considering I’m a Ubuntu user, is only available for Windows, although the company told me they are working on a Linux version.
That’s a fairly large 804MB download. It will take some time, so you may want to get Downloader 2.2.0 as well. There’s also a USB driver for CP210x, but it’s not needed for Version 2.0 of the board used in this review as it is based on CH340G USB to TLL chip. Note the Downloader is hosted on Gitee which requires an account for download. I already have an account, but IMHO this is a very poor way to share files for those that don’t.
I have to fire up a Windows 7 virtual machine to install RT-Thread Studio. The first time I waited for what feels like forever until I got the following message.
I closed every other program I had running at the time, I tried again, and could finally complete the installation which took me about one hour and a half to complete. Then upon starting the RT-Thread Studio IDE I was greeted by an Account Login screen.
It does not make sense for an IDE unless there’s user-specific data that needs to be stored in the Cloud. I never had to login to use the Arduino IDE for example. I felt lazy creating an account, so I attempt a Github login but then I was asked to create a new account or associate it with an existing account with plenty of personal details. The phone number and email above look optional above, but they are not and at least one must be used. I never received the confirmation email, even in my Spam folder.
So I tried to cancel the login process, but they won’t let you and simply close the application if you don’t register. So eventually I ended up creating a new RT-Thread Club account with just an email and password. Note that the form will not allow emails with the “+” sign which I use to track email leaks and spammers. (for example firstname.lastname@example.org or email@example.com).
Nevertheless, I finally managed to use the RT-Thread Studio, and now we need to configure the system for the board. We’ll need to launch the RT-Thread SDK Manager and install the latest RT-Thread source code from the master branch, as stable releases do not support the Bluetrum boards yet.
After that, we can scroll down, select the latest package for Bluetrum AV32VG1-AB-PROUGEN, in my case version 1.0.8, and click Install.
If you wonder why we did not select the latest RT-Thread code AND Bluetrum package at the same time, and install them both together, that’s because the SDK Manager can only install one package at once.
For reference, the application takes about 5 minutes to start in my virtual machine and takes 500MB of RAM.
We can now create our first project by going to File->New->RT-Thread Project, give a project name like ab32vg1, select “Base on Board”, and it will automatically select “PROUGEN G1” board for which we installed the packages. There’s no need to change other settings, so we can click on Finish.
The new project is not actually empty, but it has a small sample program that prints “Hello World” in the console and blinks the red LED close to the USB host port on the board:
uint8_t pin = rt_pin_get("PE.1");
Success! We can now connect the board to our computer via USB and a CH340 COM port should soon show up in the Device Manager.
We can’t flash the program to the board from RT-Thread Studio IDE, and instead, we’ll do this with Downloader 2.2.0 program. You can change the language to English, although the program is not entirely translated into English.
We’ll need to make sure COM is not greyed out and COM2 is selected, load rtthread.dcf files from your projects, and click on Start to flash the program to the board. Note that I had to click on “Info” to reset and board and start the program. We should now see the LED blink every second.
It’s also possible to switch to the serial console by clicking on the Develop icon. It will show some information about the system with a mixture of English and Chinese language. Somehow “Hello, world” does not show entirely. It will just show “Hell” in my case, which is an over-dramatic way of expressing my experience so far 🙂
Since we’ve got our hello world working let’s try another more complicated project with the audio play sample from the WiFi. I connected some speakers to the 3.5mm audio jack and the USB port for power.
I first tried to build upon our new project by adding packages and configuring the IDE as per the Wiki. We need to clickRT-Thread Setting in the Project Explorer panel, and then the “More…” button to access additional settings.
But then some part of the documentation only has screenshots in Chinese like…
I was unable to easily locate these settings in the English version. In theory, I could use Google Lens to translate the text and find my way around, but I’ve already spent enough time on this review, so instead, I just downloaded the wav-player_rom project, extracted the ZIP file into the workspace folder, and imported it through the RT-Thread Studio IDE.
I could build the project without issues. Note it took about 50 seconds to complete or five times faster than launching RT-Thread Studio;). Let’s try to flash it with the Downloader, but I got the following error messages:
[COM2] 9/11/2021 8:58:14 PM: 扫描中...
[COM2] 9/11/2021 8:59:26 PM: 错误 串口发送数据错误
which translates into:
[COM2] 9/11/2021 8:58:14 PM: Scanning...
[COM2] 9/11/2021 8:59:26 PM: Error The serial port sends data error
Since most of the information is in Chinese in the program and Wiki, I ended up clicking randomly in the program (a well-known, time-tested debugging technique by experienced developers) to find a solution, and selecting “Tools->Mass Mode” appears to have fixed the issue.
At this point in time, Bluetrum AB32VG1 board and RT-Thread are quite a pain to use, at least for people not able to read Chinese. I was also not impressed by the Windows-only IDE and the need to login to download files and use the IDE. A Linux version of the IDE is being worked on, but I’ve not been told when it should be released. Not having a Bluetooth sample to play with on a Bluetooth board is also a problem, but I assume it is something that will become available in the near future.
If you’d like to try it out yourself, the board is available for $17 and up on Aliexpress. People interested in RT-Thread RTOS in general, and/or Bluetrum AB32VG1 in particular, can also attend the RT-Thread IoT OS Global Tech Conference 2021 which will take place online on September 16-17.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.