Esp32 seems to work and not work - BTLE and Classic translator

I am using this

Which allows RadioMail WinLink client on my iPhone to talk to TNC on my ham radio.

Using an esp32 board I picked up at Lee’s

loaded the sketch and all working fine, tested it before going on vacation hooked up to laptop (for power),and talking to my Kenwood D74 ham radio with built in KISS TNC. Able to send several WinLink messages successfully via VECTOR’s RF WinLink gateway.

Took it to Burnaby Ham Club coffee meetup this morning and while the esp32 (running off usb port on a battery pack) would light up, just couldn’t connect to the radio or iPhone.

Got home fired up the Arduino-IDE, pushed the sketch to it, but nada, just not seeing it showing up on either the BTLE or BT Classic (3.0) side of things.

What am I missing here, is there something else I need to do to get this working again?

Does the ESP32 board work with simple test sketches like blink?
While I haven’t; played a lot with ESP32 I have had the odd ESP8266 board go south after seemingly work fine for some time…
I don`t expect there is a lot of QA with these boards…

I’m sure this is obvious but I’ve fixed esp 32 problems by swapping to a better usb cable. Might be worth trying a few. Also any chance it’s trying to connect to a 5g network instead of 2.4? Doesn’t explain why it worked before tho and doesn’t work now.

What does it say on the serial console after it starts up?

According to this line, it should say something if BT successfully initialises:

If there is no other serial information (as kinda implied by your screenshot) then you might want to add a serial print line here:

That will tell you if the firmware boots up at all.

1 Like

Looks correct on serial output and says both sides of the BT connection are successful on the esp32, but on the iphone it’s not connecting…

Just hangs on the RadioMail side, don’t see it complete connection with radio


I do see that on the iPhone and radio, both have BT settings saying they are connected.

Hmm, after rebooting both the iPhone and the radio, it appears to be working normally.

Next hooked up esp32 to external battery pack and tried again, no joy, cycled through several battery packs including I\the one was using at meetup today, plus about 4 or 5 others and they all fail, the device seems to power up but no connectivity can be established to it by either the radio or iPhone.

Seems to initialize and start up fine hooked to computer and both devices see it, but not to battery alone, then neither device sees it.

An issue I’ve had with Arduino stuff sometimes is that some projects wait for serial to initialise in a way that just loops infinitely until they get some data over the serial console. Check the code for something like that.

If you’re able to hook up an external UART dongle to the board’s RX line without plugging it into a computer, then you might see something revealing.

Alternatively, putting in some LED blinking at various points in the code.

1 Like

After some more testing, this looks to be an Apple issue, fired up several Android devices and they all see the esp32 in list of pair-able devices, but the iOS device does not see it when scanning for devices.

How odd…

From ChatGPT so make of it what you will.

It appears that the issue is related to the compatibility between the ESP32 and iOS devices. iOS uses a different Bluetooth implementation than Android, which might be causing the problem. Here are a few suggestions to troubleshoot and potentially fix the issue:

  1. Update your iOS device: Make sure your iOS device is running the latest version of the operating system, as updates often include bug fixes and improvements to Bluetooth connectivity.
  2. BLE compatibility: Ensure that your ESP32 is running a Bluetooth Low Energy (BLE) peripheral role and using the appropriate GATT services and characteristics. iOS devices require specific services and characteristics to identify and connect to a device. The most commonly used service is the Generic Access Profile (GAP). Implementing this service can improve the visibility of your ESP32 to iOS devices.
  3. Advertise your device: Ensure that your ESP32 is correctly advertising itself using the correct advertising packets. iOS devices are particular about the advertising packet structure, so make sure your ESP32 follows the guidelines laid out by Apple.
  4. Reset network settings on your iOS device: Go to Settings > General > Reset > Reset Network Settings. This will reset all network settings, including Wi-Fi, Bluetooth, and VPN configurations, potentially resolving any issues with Bluetooth connections.
  5. Use a library or example code: Consider using a library or example code specifically designed for iOS and ESP32 communication. This may help ensure compatibility and streamline the process of establishing a connection.

If you’re still experiencing issues after trying these steps, consider reaching out to the ESP32 or iOS development communities for additional support and guidance.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.