diff --git a/cc3200/mods/pybi2c.c b/cc3200/mods/pybi2c.c
index 70153801ef961641a70fb234bb29ab0d1d3f47f0..5022e614f6fa34c0080a065d3b86c95c7e638019 100644
--- a/cc3200/mods/pybi2c.c
+++ b/cc3200/mods/pybi2c.c
@@ -377,7 +377,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(pyb_i2c_deinit_obj, pyb_i2c_deinit);
 STATIC mp_obj_t pyb_i2c_scan(mp_obj_t self_in) {
     pyb_i2c_check_init(&pyb_i2c_obj);
     mp_obj_t list = mp_obj_new_list(0, NULL);
-    for (uint addr = 1; addr <= 127; addr++) {
+    for (uint addr = 0x08; addr <= 0x77; addr++) {
         for (int i = 0; i < 3; i++) {
             if (pyb_i2c_scan_device(addr)) {
                 mp_obj_list_append(list, mp_obj_new_int(addr));
diff --git a/docs/library/machine.I2C.rst b/docs/library/machine.I2C.rst
index aa1caed2090e57b13f68ef4123de49c0418a13e5..d04ef5eef55a40475cdd16ac09c3e58f950456f4 100644
--- a/docs/library/machine.I2C.rst
+++ b/docs/library/machine.I2C.rst
@@ -106,7 +106,7 @@ Methods
 
 .. method:: i2c.scan()
 
-   Scan all I2C addresses from 0x01 to 0x7f and return a list of those that respond.
+   Scan all I2C addresses between 0x08 and 0x77 inclusive and return a list of those that respond.
    Only valid when in master mode.
 
 Constants
diff --git a/stmhal/i2c.c b/stmhal/i2c.c
index e52db017044888fc12f91f3d73a1146e24a8fb31..9f6506b01733a0f343851576626fd9e271190bd1 100644
--- a/stmhal/i2c.c
+++ b/stmhal/i2c.c
@@ -475,7 +475,7 @@ STATIC mp_obj_t pyb_i2c_is_ready(mp_obj_t self_in, mp_obj_t i2c_addr_o) {
 STATIC MP_DEFINE_CONST_FUN_OBJ_2(pyb_i2c_is_ready_obj, pyb_i2c_is_ready);
 
 /// \method scan()
-/// Scan all I2C addresses from 0x01 to 0x7f and return a list of those that respond.
+/// Scan all I2C addresses from 0x08 to 0x77 and return a list of those that respond.
 /// Only valid when in master mode.
 STATIC mp_obj_t pyb_i2c_scan(mp_obj_t self_in) {
     pyb_i2c_obj_t *self = self_in;
@@ -486,7 +486,7 @@ STATIC mp_obj_t pyb_i2c_scan(mp_obj_t self_in) {
 
     mp_obj_t list = mp_obj_new_list(0, NULL);
 
-    for (uint addr = 1; addr <= 127; addr++) {
+    for (uint addr = 0x08; addr <= 0x77; addr++) {
         for (int i = 0; i < 10; i++) {
             HAL_StatusTypeDef status = HAL_I2C_IsDeviceReady(self->i2c, addr << 1, 10, 200);
             if (status == HAL_OK) {