RpDp-git / komoot-eink-navigator

Bluetooth Low Energy companion display for Komoot app based on an ESP32
17 stars 5 forks source link

Esp32 crash after finding phone service #1

Open Keessie opened 4 years ago

Keessie commented 4 years ago

Setup; Lilygo type chinese esp32 with E-ink powered over USB Xiaomi mi5s / Android 8.0

Prior actions; 1)Ran Arduino BLE server example with; #define SERVICE_UUID "71C1E128-D92F-4FA8-A2B2-0F171DB3436C" #define CHARACTERISTIC_UUID "503DD605-9BCB-4F6E-B235-270A57483026"

2) Paired esp & phone succesfully

3) Connected esp32 within the Komoot app

Issue; when powered on, the E-ink blinks black and white periodically and shows "pair to continue". Then, it crashes and cycle reboots.

Serial output: `Starting Arduino BLE Client application... BLE Advertised Device found: Name: , Address: c4:8e:8f:55:d9:70, manufacturer data: 2d01020001102f533ad90da340cd9b31a041baba1652d0b1ca5499c1 BLE Advertised Device found: Name: , Address: 32:76:83:06:9f:7b, manufacturer data: 0600010920028c13b48c4eee6bd86c2577de22779bcd9fb23f84f7424b BLE Advertised Device found: Name: Woonkamer, Address: 65:0a:9d:11:6b:f4, serviceUUID: 0000fea0-0000-1000-8000-00805f9b34fb BLE Advertised Device found: Name: Mi Telefoon, Address: 42:54:5d:ee:24:f1, serviceUUID: 71c1e128-d92f-4fa8-a2b2-0f171db3436c Forming a connection to 42:54:5d:ee:24:f1

Backtrace: 0x400d554b:0x3ffcd2d0 0x400d4eb3:0x3ffcd300 0x400d1f85:0x3ffcd350 0x400d2119:0x3ffcd3a0 0x400da191:0x3ffcd4d0 0x4008e089:0x3ffcd4f0

Rebooting... ets Jun 8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:1 load:0x3fff0018,len:4 load:0x3fff001c,len:1216 ho 0 tail 12 room 4 load:0x40078000,len:9720 ho 0 tail 12 room 4 load:0x40080400,len:6352 entry 0x400806b8`

Keessie commented 4 years ago

Well, By carefully listing the faults I got a bit further already: Uncommenting https://github.com/RpDp-git/komoot-eink-navigator/blob/master/main.ino#L104-106 Resolved the crash

neofuturism commented 4 years ago

Hello, I will not create a new post because I'm experiencing the excat same problem and none of the tips I've read online solve the reboot problem I experience. I can connect the esp32 to the phone but as soon as I start the navigation, it crashes, I have zeroed out on the problem which happens when the code runs the "pRemoteCharacteristic->registerForNotify(notifyCallback);" part of the code, if I comment it the app goes through but no data comes in,

Here is my error message: (thanks a lot for your help)


Wake up! Starting Arduino BLE Client application...

Backtrace: 0x400d6063:0x3ffc8a00 0x400d2032:0x3ffc8a30 0x400d236f:0x3ffc8a80 0x400d2433:0x3ffc8aa0 0x400d2c5b:0x3ffc8ae0 0x400da07b:0x3ffc8b30 0x4008ed3d:0x3ffc8b50

Rebooting... ets Jun 8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:1 load:0x3fff0018,len:4 load:0x3fff001c,len:1216 ho 0 tail 12 room 4 load:0x40078000,len:9720 ho 0 tail 12 room 4 load:0x40080400,len:6352 entry 0x400806b8

linusheck commented 3 years ago

This seems to be a problem inside of the Android Komoot app. They have implemented the BLE protocol incorrectly and will not fix it (I've bugged them since over a year ago).

spattinson commented 3 years ago

Solution is here: https://github.com/Autom3/komoot-eink-navigator - tl;dr you need to comment out lines in registerForNotify function on BLE library BLERemoteCharacteristic.cpp

linusheck commented 3 years ago

I remember that this is not the full solution. When you do this, some things stop working.

Am Mittwoch, 8. September 2021 schrieb spattinson @.***

:

Solution is here: https://github.com/Autom3/komoot-eink-navigator - tl;dr you need to comment out lines in registerForNotify function on BLE library BLERemoteCharacteristic.cpp

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/RpDp-git/komoot-eink-navigator/issues/1#issuecomment-915310375, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB74OJVADMWYUAY6K5NNK43UA52KJANCNFSM4NGVPJKA .

spattinson commented 2 years ago

I remember that this is not the full solution. When you do this, some things stop working. Am Mittwoch, 8. September 2021 schrieb spattinson @.*** : Solution is here: https://github.com/Autom3/komoot-eink-navigator - tl;dr you need to comment out lines in registerForNotify function on BLE library BLERemoteCharacteristic.cpp — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#1 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB74OJVADMWYUAY6K5NNK43UA52KJANCNFSM4NGVPJKA .

I have ridden quite a few long rides, up 4.5hours without issue. The only problem really is if you take a break and move the phone too far away and ble disconnects the komoot app will stop advertising the service after a short time - 9s I believe - so you cannot reconnect. You have to restart navigation in komoot to get it reconnected, then you lose your track history. Overall I am very satisfied with this and use it on all my rides now. Battery level does not go down much on a long ride

I have a fork of this repo https://github.com/spattinson/komoot-eink-navigator I have added current as well as next road name, all refreshes are done using partial refreshes which works well without ghosting with a small change to the LUT in the GxEPD library, partial is faster and avoids the flashing of inverse display. I also added battery voltage display in top right of screen. The board I have is TTGO T5 with DEPG0213BN display, you will need to adapt code for other displays. picture: https://photos.app.goo.gl/5mZxUReAdzqKmqzcA