MicroPython створювався для тих, хто звик програмувати мікроконтролери на С, але хотів би використовувати при цьому синтаксис Python. Процес розробки організований відповідним чином: після завантаження MicroPython виконує файл main.py з флеш-пам'яті, потім запускає REPL (інтерактивну оболонку) на послідовному інтерфейсі. Єдиний спосіб запустити новий скрипт - перезавантаження з новим main.py. До того ж, стандартний висновок MicroPython направляється на послідовний інтерфейс, а не на екран; щоб надрукувати що-небудь на екрані, замість стандартного print треба використовувати FrameBuffer: fb.text (s, x, y); pyb.SCREEN (). show (fb) - з явним завданням координат, без автоматичного розбиття на рядки і без автоматичної прокрутки екрану. Для розробки на С все це природно, але програмісти на Python звикли до набагато більшого комфорту.
Усвідомлюючи це, в 2017 нью-йоркський стартап Adafruit почав розробку власного ФОРКОМ MicroPython, що отримав назву CircuitPython. У MicroPython потрібно проявляти обережність, щоб у флеш-пам'ять не писали одночасно скрипт і комп'ютер через USB, інакше файлова система могла пошкодитися. У CircuitPython ж перезапис main.py під час його виконання - основний сценарій використання, так що заради обережності потрібно вибрати один з двох варіантів - доступ до флешу з Python тільки на читання і через USB на читання і запис, або з Python на читання і запис і через USB тільки на читання, без можливості перезапису чи видалення main.py. З іншого боку, MicroPython дозволяє писати на Python обробники переривань, а CircuitPython - не дозволяє, і не збирається додавати таку можливість.
MicroPython надає дуже просту і прозору модель «створив масив значень пікселів, відправив його цілком на екран».
З іншого боку, CircuitPython нав'язує програмістові багаторівневу абстракцію: Bitmap довільній колірної глибини, що дозволяє заощадити пам'ят; Palette, що перетворює значення Bitmap в конкретні значення кольору, що задаються в стандартному 24-бітному форматі, і автоматично конвертовані в той формат, з яким працює екран; потім TileGrid, що дозволяє зрушувати і масштабувати кілька спрайтів як одне ціле; і нарешті Group, що дозволяє перемикатися між «стопками спрайтів». Для простих завдань, типу відтворення графіка функції, всі ці додаткові абстракції абсолютно зайві; але для розробки ігор, швидше за все, програмісту на MicroPython довелося б самостійно розробляти щось аналогічне цієї ієрархії абстракцій.