
Hello, I will present here how the DT-BL10 development board looks in practice, offering BL602 from Bouffalo Lab, i.e. a Wi-Fi + BLE microcontroller clocked up to 192MH.
I became interested in BL602 because it started to appear in various types of IoT devices, such as smart LEDs, WiFi controlled relays, LED strip controllers, etc. It is not as common as ESP8266 or BK7231T / BK7231N, but still begins to appear in some smart devices. I find Bl602 somewhat more or less as often as Realtek systems (RTL8710BN, WBR2 modules and similar). My OpenBeken already supports it, but I still thought it would be worth presenting this module here.
Purchasing the development board
I managed to get the board from China for about 8$ (it seems that's was not possible to get that board to Poland for less). There were no problems with the customs, but I waited several weeks for the package. Here is a screenshot of the auction where I was buying:

Received kit:




On the board, in addition to the main BL module, there is an LDO regulator that gives us 3.3V from 5V from USB and CH340N, i.e. a USB to UART converter, for which you may need to install drivers.
The "DX" pin corresponds to "GPIOX" (where X is the pin index), so there are no pin mapping problems.
SDL BL602, compiling, flashing firmware
The required SDK is available for free on Github:
https://github.com/bouffalolab/bl_iot_sdk
The SDK also includes a program for flashing the firmware via USB (or, actually, via UART, there is CH340 on the board, which is virtual COM port controller), BLDevCube.exe.
I have already presented the description of compiling and uploading the firmware in this topic:
Tasmota replacement for BL602, programming, pairing with Home Assistant.
The compilation is done in Msys from the Mingw package.
To upload a firmware :
1.release the UART port (if we have it open in Realterm to read logs)
2. keep the Boot button pressed
3. momentarily press En
4. release the Boot button
5. in BLDevCube.exe turn on firmware upload (our binary is firmware.bin)


6.After loading the firmware, to start the program normally, press the En button briefly
In addition, for about 9 months, we also have a framework for PlatformIO and VSCode available:
https://github.com/Community-BL-IOT/pio-bl602-boufallo-arduino-test
This allows you to program this module similar to Arduino:

Personally, I have not tested it, but I think that it is a great alternative for beginners and it will certainly make the adventure with this platform much easier for many people.
Examples available
SDK includes examples of peripherals and available libraries, including ADC, DAC, Flash memory access, GPIO, I2C, PWM, RNG (pseudo-random number generation), RTC, SPI, timers, UART, watchdog), OTA, sockets, HTTP, DNS and a lot more:



Working environment
The module from DT-BL10 is easiest to set on two prototyping boards from one of them we have to disconnect one of the power / ground rails. It is very easy to do with standard prototyping boards:


It simply will not fit on one contact plate. Therefore, it is worth remembering to buy two when we are just starting our adventure.
BL602 in IoT devices
BL602 is used in various 'smart' devices, for example Magic Home LED strip controllers:


In Sonoff MINIR3:


source: https://notenoughtech.com/home-automation-review/sonoff-minir3/
In LED bulb smart as BL-200 (DT-BL200):





(by the way, in the photo you have signed BL-200 pins)
And here is another LED lamp, completely different then previous one, featuring a mini-pcb with BL602 (here I2C protocol is used for control with RGB LED support via SM2135):




Summary and impressions
The board is quite comfortable to use, but I think there are a few things that could be improved.
- there is one CH340 on board,that is, one UART port, which is used both for printing (and receiving) information on the terminal and for programming. In the case of the basic SDK there is no integrated environment for BL, so I have Realterm as a terminal and I use BLDevCube.exe for flashing. For this reason, before each flashing, I have to manually release the Realterm port and open it again after programming. Apparently it's only two clicks, but always ...
However, this problem is solved by uploading the firmware via WiFi - OTA: https://github.com/bouffalolab/bl_iot_sdk/tree/master/customer_app/system/ota/demo_ota
Perhaps it is also solved in the framework from PlatformIO mentioned earlier, there everything is together in one IDE.
- it's a pity that you have to press these buttons at all to upload the firmware. As if the USB to UART converter used had a GPIO, this could be avoided. A similar mechanism is in Arduino. In my projects, I used the MCP2221 and the appropriate driver for this. Even in the case of PIC32MZ via GPIO MCP2221, I was able to shorten the RESET pin of the PIC to ground and cause a reboot.
- I do not know why some of the derived pins are N / C, after all, when it is free, they could route GND there, it is always more convenient ...
Despite everything, the module is quite handy and cheap, the title "$5" did not turn out to be correct for me in Poland, but "less than $8" also sounds good.
This board really made it easier for me to develop OpenBeken (or there: OpenBL602), but it's much easier to test on a development board than on an IoT device.
I have not activated Bluetooth from this board yet, but if something moves, maybe I will show it on the forum.
I invite you to read the BL602 documentation:
https://pine64.github.io/bl602-docs/
Cool? Ranking DIY