Add len() support for arrays.
diff --git a/py/obj.c b/py/obj.c
index 8a073f4..0291386 100644
--- a/py/obj.c
+++ b/py/obj.c
@@ -285,6 +285,8 @@
         len = seq_len;
     } else if (MP_OBJ_IS_TYPE(o_in, &dict_type)) {
         len = mp_obj_dict_len(o_in);
+    } else if (MP_OBJ_IS_TYPE(o_in, &array_type)) {
+        len = mp_obj_array_len(o_in);
     } else {
         return MP_OBJ_NULL;
     }
diff --git a/py/obj.h b/py/obj.h
index c2ce325..e98cc55 100644
--- a/py/obj.h
+++ b/py/obj.h
@@ -334,6 +334,7 @@
 
 // array
 extern const mp_obj_type_t array_type;
+uint mp_obj_array_len(mp_obj_t self_in);
 
 // functions
 typedef struct _mp_obj_fun_native_t { // need this so we can define const objects (to go in ROM)
diff --git a/py/objarray.c b/py/objarray.c
index a054c8f..cfab6ea 100644
--- a/py/objarray.c
+++ b/py/objarray.c
@@ -255,6 +255,10 @@
     return o;
 }
 
+uint mp_obj_array_len(mp_obj_t self_in) {
+    return ((mp_obj_array_t *)self_in)->len;
+}
+
 mp_obj_t mp_obj_new_bytearray(uint n, void *items) {
     mp_obj_array_t *o = array_new(BYTEARRAY_TYPECODE, n);
     memcpy(o->items, items, n);