# Presto: ImportError: no module named '\_thread'

**URL:** <https://forums.pimoroni.com/t/presto-importerror-no-module-named-thread/27155>\
**Category:** Support\
**Created:** [January 23, 2025, 7:13pm UTC](https://forums.pimoroni.com/t/presto-importerror-no-module-named-thread/27155 "2025-01-23T19:13:30Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![retired\_guy](https://avatars.discourse-cdn.com/v4/letter/r/c67d28/32.png) [@retired\_guy](https://forums.pimoroni.com/u/retired_guy)\
**Post date:** [January 23, 2025, 7:13pm UTC](https://forums.pimoroni.com/t/presto-importerror-no-module-named-thread/27155/1 "2025-01-23T19:13:30Z")

</div>

Threading isn’t supported on the Presto? WTH?

---

<div class="post-metadata">

**Author:** ![paulmison](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/paulmison/32/11371_2.png) [@paulmison](https://forums.pimoroni.com/u/paulmison)\
**Post date:** [January 23, 2025, 11:10pm UTC](https://forums.pimoroni.com/t/presto-importerror-no-module-named-thread/27155/2 "2025-01-23T23:10:32Z")

</div>

I noticed this the other day. It looks like threading is disabled in the [board defintion](https://github.com/pimoroni/presto/blob/main/presto/mpconfigboard.h#L34). I think changing that to `(1)`, recompiling, and putting the new firmware on the board would then enable threading to at least import, even if it doesn’t fully work.

I would be interested in knowing whether it’s not been enabled for a specific reason.

[Edit to add] I don’t fully understand the C++ code, but I’m getting the impression one core is dedicated to running the screen. There are calls to the [pico\_sdk’s multicore](https://github.com/raspberrypi/pico-sdk/blob/master/src/rp2_common/pico_multicore/include/pico/multicore.h) code [in presto.cpp](https://github.com/pimoroni/presto/blob/main/modules/c/presto/presto.cpp#L153). It might be that core0 runs user-supplied MicroPython while core1 is occupied with running the display, ambient LEDs, and perhaps other functions. That would definitely explain disabling threading.

---

<div class="post-metadata">

**Author:** ![Tonygo2](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/tonygo2/32/7814_2.png) [@Tonygo2](https://forums.pimoroni.com/u/Tonygo2)\
**Post date:** [January 24, 2025, 9:41am UTC](https://forums.pimoroni.com/t/presto-importerror-no-module-named-thread/27155/3 "2025-01-24T09:41:31Z")

</div>

I think they need to grab core1 to drive the display.

```auto

MPY: soft reboot
MicroPython feature/presto-wireless, presto v0.0.6 on 2025-01-08; Presto with RP2350

Type "help()" for more information.

>>> %Run -c $EDITOR_CONTENT

MPY: soft reboot
malloc self
set fb pointers
m_new_class(ST7701...
launch core1
launched core1
core1 returned

────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Traceback (most recent call last):
  File "<stdin>", line 75, in <module>
  File "presto.py", line 81, in update
  File "touch.py", line 65, in poll
KeyboardInterrupt: 
>
MPY: soft reboot
signal core1
core1 returned
MicroPython feature/presto-wireless, presto v0.0.6 on 2025-01-08; Presto with RP2350

Type "help()" for more information.

>>> 

```

The display is great so, “Something gained and something lost …”

---

<div class="post-metadata">

**Author:** ![retired\_guy](https://avatars.discourse-cdn.com/v4/letter/r/c67d28/32.png) [@retired\_guy](https://forums.pimoroni.com/u/retired_guy)\
**Post date:** [January 25, 2025, 2:49am UTC](https://forums.pimoroni.com/t/presto-importerror-no-module-named-thread/27155/4 "2025-01-25T02:49:07Z")

</div>

Tried switching to asyncio vs threads for my project, but aiohttp also isn’t supported. Guess I’m stuck with requests in a blocking loop for now.
