diff --git a/tests/misc/recursive_iternext.py b/tests/misc/recursive_iternext.py
index <HASH>..<HASH> 100644
--- a/tests/misc/recursive_iternext.py
+++ b/tests/misc/recursive_iternext.py
@@ -1,10 +1,19 @@
 # This tests that recursion with iternext doesn't lead to segfault.
 
+# We need to pick an N that is large enough to hit the recursion
+# limit, but not too large that we run out of heap memory.
 try:
-    [0] * 10000
+    # large stack/heap, eg unix
+    [0] * 80000
     N = 2000
 except:
-    N = 100
+    try:
+        # medium, eg pyboard
+        [0] * 10000
+        N = 1000
+    except:
+        # small, eg esp8266
+        N = 100
 
 try:
     x = (1, 2)
tests/misc/recursive_iternext: Provide more fine-grained selection of N.

To work on a variety of ports the selection of N is very specific.