WiFi/BLE module with serial interface
The BSerial WiFi/BLE board is equipped with a powerful combined single chip solution that provides the WiFi and BLE connectivity of this board. The chip we are using is the ESP32-C3FN4 from Espressif and it is a complete WiFi subsystem that complies with IEEE 802.11b/g/n protocol and supports Station mode, SoftAP mode, SoftAP + Station mode, and promiscuous mode. It also implements A Bluetooth LE subsystem that supports features of Bluetooth 5 and Bluetooth mesh.
This solution is based on an RISC-V micro controller core and comes with 4MByte of internal flash and 408Kbyte of internal SRAM as well as the advanced 2.4GHz radio.
The ESP32-C3 device comes pre loaded with the ESP-AT interpreter already programmed into flash. This interpreter provides the system with everything from low level TCP/UDP functionality up to high level functions such as a on board integrated web server, MQTT server and client functions and much more.
From the get go the on board ESP32 delivers the following functionalities:
- Basic AT Commands
- Wi-Fi AT Commands
- TCP-IP AT Commands
- Bluetooth® Low Energy AT Commands
- MQTT AT Commands
- HTTP AT Commands
- Web server AT Commands
Setting an MQTT client up for instance is a matter of three lines of code, so it simply can not be any easier to use.
mqtt.begin();
mqtt.userConfig(DEFAULT_LINK_ID, ESP_MQTT_SCHEME_MQTT_OVER_TCP, "BSerial_WIFI/BLE");
delay(1000);
mqtt.connect(DEFAULT_LINK_ID, mqtt_server);
See, I told you it would be simple to use.
Details
The hardware implementation of this module is similar to that of the Challenger RP2040 WiFi/BLE board but not exactly the same. For instance the BOOT signal that tells the ESP32 to enter serial boot flash mode is connected to the onboard button of the module. It also has its own reset controller locally on the module which ensures that the ESP32 resets at power on and if the power supply drops below a certain voltage level (3.0V).
What is BSerial ?
BSerial is a part of our own concept (BConnect that spans over Bi2C, BSerial and BSpi) of connecting devices together using a small Flexible Flat Cable (FFC) and an FFC connector. It is similar to the Bi2C concept but we have replaced the electrical I2C interface with a asynchronous serial channel instead.
Simple example
To be able to use the BSerial WiFi/BLE module we need to remap a UART to the pins of the FFC connector on the Challenger board. In the example below we have used a regular Challenger RP2040 WiFi board to hook the external WiFi/BLE module up to. It could have been any other Challenger board that has a 4-pin BConnect FFC connector.
// We're using Serial1 on the I2C pins to communicate with the BSerial WiFi/BLE module.
Serial1.setTX(PIN_WIRE0_SDA);
Serial1.setRX(PIN_WIRE0_SCL);
Serial1.begin(DEFAULT_ESP_BAUDRATE);
Challenger2040WiFi.setSerial(&Serial1);
Serial.println(F("Serial port now set to Uart 1 !"));
after this sequence the WiFiEspAT library can be used normally, like this.
WiFi.init(Serial1);
if (WiFi.status() == WL_NO_MODULE) {
Serial.println("Communication with WiFi module failed!");
while (true); // Stop
}
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
int status = WiFi.begin(ssid, pass);
Serial.print("Status: ");
Serial.println(status);
if (status == WL_CONNECTED) {
Serial.println("Connected to WiFi network.");
} else {
WiFi.disconnect(); // remove the WiFi connection
Serial.println("Connection to WiFi network failed.");
}
Reviews
There are no reviews yet.