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…
Bluetrum AV32VG1 Unboxing
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.
Development tools installation and configuration
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 [email protected] or [email protected]).
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.
We are not quite done with the last step being the installation of the RISC-V GCC toolchain. All good.
For reference, the application takes about 5 minutes to start in my virtual machine and takes 500MB of RAM.
Bluetrum AB32VG1 Hello World Project
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <rtthread.h> #include "board.h" int main(void) { uint8_t pin = rt_pin_get("PE.1"); rt_pin_mode(pin, PIN_MODE_OUTPUT); rt_kprintf("Hello, world\n"); while (1) { rt_pin_write(pin, PIN_LOW); rt_thread_mdelay(500); rt_pin_write(pin, PIN_HIGH); rt_thread_mdelay(500); } } |
We can click on the “Build” or “Rebuild” icon to compile the project.
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 🙂
RT-Thread RISC-V Audio Project
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.
I could find some of the settings like “Enable Audio Device”…
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:
1 2 |
[COM2] 9/11/2021 8:58:14 PM: 扫描中... [COM2] 9/11/2021 8:59:26 PM: 错误 串口发送数据错误 |
which translates into:
1 2 |
[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.
Here’s a short video demo to show what it looks and sounds like.
Final words
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.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Hey guys, RT-Thread dev here. Let me try to clarify a bit. RT-Thread is a community-driven open-source project from the beginning and will remain that way in the foreseeable future. The RTOS kernel and almost everything running on it are licensed on Apache V2. The Studio IDE on the other hand is a side project with the intention of helping people get started using RT-Thread OS. We have zero interest in collecting user privacy or anything like that. Currently, it requires registration is because it’s still in the testing phase and the user’s feedback is really valuable for us. That’s… Read more »
Thanks for clarifying all this! It’s nice to know their are reasons for some of the aspects some of us do not like and that it’s not just because it was dumped like this without giving it a thought.
“a pain to use”, no open source, not GDPR compliant … I’ll skip.
The OS is open-source and several repos can be found @ https://github.com/RT-Thread-Studio. I’m not sure RT-Thread Studio IDE is open-source, although it may be fetching resources that are hosted on Github.
In the end, did you find any single aspect of it that was well thought or well designed ? It looks like a huge collection of all the worst practices of the software industry at the moment…
If I was a Windows user and could read Chinese, I would probably have had a much better experience. The good thing is that the samples work. RT-Thread initially focused only on the Chinese market, but since earlier 2020, they’ve decided to expand to the rest of the world. I was actually told documentation was very good, but after I point out it’s pretty awful if you can’t read Chinese, they told me they thought I could read Chinese (maybe because of CNX Software China website). So the ecosystem inherits some of the Chinese attributes like the login to the… Read more »
OK but quite frankly, requiring a login to use an application on your computer, the laughable error messages, the monstrous size of the stuff to download and install, the extreme startup time, the fact that the “IDE” does not even include the upload part, etc. Nothing at all in all of this sounds either serious nor usable. I mean, anyone using such solutions definitely wants to pay their developers to play games while waiting for the PC to do basic tasks such as starting an editor! You were brave, really, I would have given up much faster!
For anyone stuck with foreign language documents, if the documents are in PDF format, then there are websites that will machine translate the PDF to another language for you.
A service some at the moment provide free.
Update
Just checked and the translation service has gone past just PDF
“Instantly translate and preserve the layout of any document format into any language Free. “
Maybe CNXsoft could do a article on how well such services cope with technical language, of embedded hardware, software and diagrams ? Just a idea ?
Wow, thanks Jean-Luc for taking one for the team. This article should serve as a warning to people to avoid this company like the plague it is!
Thanks for giving me a reason not to use RT-Thread.
Does the same company (rt-thread) make the chip? If I don’t like the rt-thread OS is there any bare metal alternative?
RT-Thread is just an open-source community. The company that makes the chip is Bluetrum and they may have their own SDK for baremetal development, but I have not seen any public documentation about it.
Thanks, btw the chip name is AB5301A, not AN5301A.
IDE only runs on Windows and requires login – No Thanks. I guess I don’t understand why they couldn’t just use the Arduino IDE?
Hello!
Do you have any experience in development with AB5301A SDK?