diff --git a/firmware/application/ui/ui_geomap.cpp b/firmware/application/ui/ui_geomap.cpp
index d7a07b36fcfaa3a628aa4a95ea2cadde0be454d7..868d16a01a115b7e7063d18664a62f74916cc7a8 100644
--- a/firmware/application/ui/ui_geomap.cpp
+++ b/firmware/application/ui/ui_geomap.cpp
@@ -169,8 +169,9 @@ void GeoMap::paint(Painter& painter) {
 		display.fill_rectangle({ r.center() - Point(16, 1), { 32, 2 } }, Color::red());
 		display.fill_rectangle({ r.center() - Point(1, 16), { 2, 32 } }, Color::red());
 	} else {
-		draw_bearing({ 120, 32 + 144 }, angle_, 10, Color::red());
-		painter.draw_string({ 120 - ((int)tag_.length() * 8 / 2), 32 + 144 - 32 }, style(), tag_);
+		//coordinates could probably be calculted off screen_rect()?
+		draw_bearing({ 120, 16 + 48 + 128 }, angle_, 10, Color::red());
+		painter.draw_string({ 120 - ((int)tag_.length() * 8 / 2), 16 + 48 + 128 - 32 }, style(), tag_);
 	}
 }
 
diff --git a/firmware/common/ui.cpp b/firmware/common/ui.cpp
index c257d1fa12d8c0e2887a72f7073f1f9c534d7cb9..406f5e4953dc47c676615318211056981a137cc7 100644
--- a/firmware/common/ui.cpp
+++ b/firmware/common/ui.cpp
@@ -91,7 +91,9 @@ Rect& Rect::operator-=(const Point& p) {
 }
 
 Point polar_to_point(float angle, uint32_t distance) {
-	return Point(sin_f32(DEG_TO_RAD(angle) + (pi / 2)) * distance, -sin_f32(DEG_TO_RAD(angle)) * distance);
+	//polar to compass with y negated for screen drawing
+	return Point(sin_f32(DEG_TO_RAD(-angle) + pi) * distance, 
+	             sin_f32(DEG_TO_RAD(-angle) - (pi / 2)) * distance); 
 }
 
 } /* namespace ui */