diff --git a/components/badge23/display.c b/components/badge23/display.c
index 3944dfd7a731e8e53e44b0ee5464fbbe7bb9dd50..86b88cf63969ea495a3debeed450ff0a6f288660 100644
--- a/components/badge23/display.c
+++ b/components/badge23/display.c
@@ -46,6 +46,10 @@ void display_fill(uint16_t col){
     GC9A01_FillRect(0, 0, 240, 240, col);
 }
 
+void display_set_backlight(uint8_t percent) {
+    GC9A01_SetBL(percent);
+}
+
 void display_init() {
     GC9A01_Init();
     GC9A01_Update();
diff --git a/components/badge23/include/badge23/display.h b/components/badge23/include/badge23/display.h
index e5f2d6e4aaacaaa1c55eadcd118572fde0568e3f..d6a7e9faff1832ad51bb7df6dd98313b0d237fc0 100644
--- a/components/badge23/include/badge23/display.h
+++ b/components/badge23/include/badge23/display.h
@@ -10,5 +10,6 @@ void display_update();
 void display_draw_pixel(uint8_t x, uint8_t y, uint16_t col);
 uint16_t display_get_pixel(uint8_t x, uint8_t y);
 void display_fill(uint16_t col);
+void display_set_backlight(uint8_t percent);
 
 extern volatile Ctx *the_ctx;
diff --git a/usermodule/mp_hardware.c b/usermodule/mp_hardware.c
index a692e884ec966650f8b4710f2a99afa0f6d2287d..836a7804d4b05e272a6b5eadde715a2169aff5ad 100644
--- a/usermodule/mp_hardware.c
+++ b/usermodule/mp_hardware.c
@@ -37,6 +37,13 @@ STATIC mp_obj_t mp_display_update(void) {
 }
 STATIC MP_DEFINE_CONST_FUN_OBJ_0(mp_display_update_obj, mp_display_update);
 
+STATIC mp_obj_t mp_display_set_backlight(mp_obj_t percent_in) {
+    uint8_t percent = mp_obj_get_int(percent_in);
+    display_set_backlight(percent);
+    return mp_const_none;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_display_set_backlight_obj, mp_display_set_backlight);
+
 STATIC mp_obj_t mp_get_captouch(size_t n_args, const mp_obj_t *args) {
     uint16_t captouch = read_captouch();
     uint16_t pad = mp_obj_get_int(args[0]);
@@ -230,6 +237,7 @@ STATIC const mp_rom_map_elem_t mp_module_hardware_globals_table[] = {
     { MP_ROM_QSTR(MP_QSTR_set_led_hsv), MP_ROM_PTR(&mp_set_led_hsv_obj) },
     { MP_ROM_QSTR(MP_QSTR_update_leds), MP_ROM_PTR(&mp_update_leds_obj) },
     { MP_ROM_QSTR(MP_QSTR_display_update), MP_ROM_PTR(&mp_display_update_obj) },
+    { MP_ROM_QSTR(MP_QSTR_display_set_backlight), MP_ROM_PTR(&mp_display_set_backlight_obj) },
     { MP_ROM_QSTR(MP_QSTR_version), MP_ROM_PTR(&mp_version_obj) },
     { MP_ROM_QSTR(MP_QSTR_get_ctx), MP_ROM_PTR(&mp_get_ctx_obj) },