diff --git a/software/frontend/index.html b/software/frontend/index.html
index 9ae9291..0184d89 100644
--- a/software/frontend/index.html
+++ b/software/frontend/index.html
@@ -154,7 +154,7 @@
-
+
@@ -966,6 +966,14 @@
return { init, onShow };
})();
+
+// Misc
+ async function requestReboot() {
+ const resp = await fetch('/api/v1/reboot/bootloader', {'method': 'POST'});
+ if (!resp.ok) {
+ alert('Reboot to bootloader failed: ' + await resp.text());
+ }
+ }
// Initialization
Object.values(Screens).forEach(screen => {
diff --git a/software/src/webserver.py b/software/src/webserver.py
index aae202f..ea7f3cb 100644
--- a/software/src/webserver.py
+++ b/software/src/webserver.py
@@ -259,7 +259,7 @@ async def audiofile_delete(request):
@webapp.route('/api/v1/reboot/', methods=['POST'])
async def reboot(request, method):
if hwconfig.get_on_battery():
- return 'not allowed: no vbus', 403
+ return 'not allowed: usb not connected', 403
if method == 'bootloader':
leds.set_state(LedManager.REBOOTING)