The problem might be related to the breaking changes that espressif made to the ESP32-core when moving on to core-version 3.X
install core 2.0.17 and try again
if this does not help Two things do do:
Adjust the Arduino-IDE to print the maximum detailed compiler-log by following this tutorial
Just an hour ago I tested this code
#include "BluetoothSerial.h"
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif
BluetoothSerial SerialBT;
unsigned long MyTestTimer = 0; // Timer-variables MUST be of type unsigned long
const byte OnBoard_LED = 2; // onboard-LEDESP32 / ESP8266
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("Setup-Start");
PrintFileNameDateTime();
//This example code is in the Public Domain (or CC0 licensed, at your option.)
//By Evandro Copercini - 2018
//
//This example creates a bridge between Serial and Classical Bluetooth (SPP)
//and also demonstrate that SerialBT have the same functionalities of a normal Serial
SerialBT.begin("ESP32BT-COMPORT"); //Bluetooth device name
Serial.println("The device started. Name of device is ESP32BT-COMPORT"); //Bluetooth device name
Serial.println("Now you can pair it with bluetooth!");
}
void loop() {
BlinkHeartBeatLED(OnBoard_LED,250);
if ( TimePeriodIsOver(MyTestTimer,2000) ) {
SerialBT.println("Hello from the ESP32-serial bluetoth connection");
}
}
// helper-functions
void PrintFileNameDateTime() {
Serial.println( F("Code running comes from file ") );
Serial.println( F(__FILE__) );
Serial.print( F(" compiled ") );
Serial.print( F(__DATE__) );
Serial.print( F(" ") );
Serial.println( F(__TIME__) );
}
// easy to use helper-function for non-blocking timing
// explanation see here
// https://forum.arduino.cc/t/example-code-for-timing-based-on-millis-easier-to-understand-through-the-use-of-example-numbers-avoiding-delay/974017
boolean TimePeriodIsOver (unsigned long &startOfPeriod, unsigned long TimePeriod) {
unsigned long currentMillis = millis();
if ( currentMillis - startOfPeriod >= TimePeriod ) {
// more time than TimePeriod has elapsed since last time if-condition was true
startOfPeriod = currentMillis; // a new period starts right here so set new starttime
return true;
}
else return false; // actual TimePeriod is NOT yet over
}
void BlinkHeartBeatLED(int IO_Pin, int BlinkPeriod) {
static unsigned long MyBlinkTimer;
pinMode(IO_Pin, OUTPUT);
if ( TimePeriodIsOver(MyBlinkTimer,BlinkPeriod) ) {
digitalWrite(IO_Pin,!digitalRead(IO_Pin) );
}
}
You have to pair your device with the ESP32
and
you have to open the bluetooth-serial connection
only after opening the Comport the bluetooth-connection will be established