It's a rabbit hole, but there is pretty good support for loading OpenStreetMap data onto Garmin devices (other device makers did a better job obscuring their formats):
I would buy this if it was significantly cheaper than a phone and made it easy to adjust those tuning parameters. I prefer to keep my phone protected on the bike in case of a collision / fall.