osmandapp / OsmAnd

OsmAnd
https://osmand.net
Other
4.39k stars 988 forks source link

Rendering turns to an external BT display #4938

Open hobodrifterdavid opened 6 years ago

hobodrifterdavid commented 6 years ago

Hi. I had the idea to make an ePaper screen to mount on a bike, that connects to a smartphone over BLE, for navigation. I was wondering if there if is code in Osmand that would be suitable to render the next turn to an image, that could be sent over the bt connection. Mostly it's a fun project, maybe if a Osmand developer is interested, I can make the hardware and send it to you. I'm in China, and I've just been working on a project with a 6" ePaper display.

David

ilyaguy commented 6 years ago

As I understand you can connect your display as "wearable" device. And implement in display firmware translation of messages into direction images.

hobodrifterdavid commented 6 years ago

I read about that function at some point. But, I was thinking of 'dumping' the currently showing map view down a BT serial connection every 10s or so. Maybe the epaper display has a couple of buttons to control zoom or other functions, and these button presses are just sent over the bt connection to the app, and the app make a new image to send. I was just wondering if a developper was interested to do the Osmand side, I can make the hardware quite easily.

vshcherb commented 6 years ago

Unfortunately we are quite full today with current tasks :( But I will keep that issue open cause it sounds interesting.

u0nel commented 1 year ago

@Radiokot did that and wrote an android app, that uses the osmand and mapbox api: https://radiokot.com.ua/p/bike-nav-display

Radiokot commented 1 year ago

Hi. I also had the same idea as you and did the thing, but tests shown that OsmAnd routing updates frequency combined with the latency of e-ink display result in showing outdated, confusing directions. My advice – save your time and implement display of a map with your current location and the track. Maybe you'll some useful insights for your future project in my article: Bike navigation display: Making of

alex-osm commented 1 year ago

@Radiokot May I ask - why did you use Arduino + external BT instead of ESP32?

Radiokot commented 1 year ago

@Radiokot May I ask - why did you use Arduino + external BT instead of ESP32?

I decided to use Arduino for the OsmAnd directions use-case because I was familiar with it, it seemed to have enough resources to do the task and I knew how to make its power consumption quite low. But as for the map use-case, it should be done better: on a faster controller, with a specific GATT service and enough RAM to hold the frame bitmap.

Radiokot commented 1 year ago

But I think the elephant in the room is the e-ink display. While it has a great contrast in sunlight, its latency contradicts the project purpose – real-time navigation assistance. E-ink has its charm, being almost electromechanical, weird device funny to play with, but I'd rather use OLED.

alex-osm commented 1 year ago

I see. Thank you! BTW - I have M5Core-Ink and may be I will try to run it as external display also. Looks like it has all needed HW on the board.

alex-osm commented 1 year ago

But I think the elephant in the room is the e-ink display. While it has a great contrast in sunlight, its latency contradicts the project purpose – real-time navigation assistance. E-ink has its charm, being almost electromechanical, weird device funny to play with, but I'd rather use OLED.

Some time ago I was playing with E-Ink display and noticed that combined mode can work well (few partial draws and one full redraw). But in this case double buffering is needed - to draw delta pixels at partial step.