# Low.js for NR runtime on ESP32

**URL:** <https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001>\
**Category:** General\
**Created:** [25 June 2020 22:02 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001 "2020-06-25T22:02:13Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![Luckyboy](https://avatars.discourse-cdn.com/v4/letter/l/919ad9/32.png) [@Luckyboy](https://discourse.nodered.org/u/Luckyboy)\
**Post date:** [25 June 2020 22:02 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001/1 "2020-06-25T22:02:14Z")

</div>

Hi,

Is it possible to use low.js on esp32 for NR runtime?

Thanks!

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [25 June 2020 22:17 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001/2 "2020-06-25T22:17:44Z")

</div>

having never heard of it until now and given the very small memory size of the esp32 I'm going to guess no... but that is a guess. Does look interesting though as a potential micro-target platform to deploy to, but I think it would need some work.

---

<div class="post-metadata">

**Author:** ![Luckyboy](https://avatars.discourse-cdn.com/v4/letter/l/919ad9/32.png) [@Luckyboy](https://discourse.nodered.org/u/Luckyboy)\
**Post date:** [25 June 2020 22:32 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001/3 "2020-06-25T22:32:23Z")

</div>

Thanks. I'm thinking on Raspberry PI Zero and ESP32 on the same board. RPI runs NR runtime and EPS32 is in charge of GPIOs. But NR runtime in ESP32 looks much more attractive from all aspects.

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [26 June 2020 00:23 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001/4 "2020-06-26T00:23:05Z")

</div>

> [@Luckyboy](#):
>
> I'm thinking on Raspberry PI Zero and ESP32 on the same board

Just to help me understand, do you mean putting the two devices on the same breadboard or PCB board? I'm assuming that is what you mean, but I want to be sure.

---

<div class="post-metadata">

**Author:** ![krambriw](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/krambriw/32/5429_2.png) [@krambriw](https://discourse.nodered.org/u/krambriw)\
**Post date:** [26 June 2020 05:29 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001/5 "2020-06-26T05:29:50Z")

</div>

Would be a cool project, making NR run on a esp32, but unlucky me, I just have a couple of ESP-WROOM-32 lying around in the drawer

> **[ESP32 low.js: Hello World](https://techtutorialsx.com/2019/01/28/esp32-low-js-hello-world/)**
>
> On this tutorial we will check how to create a simple “Hello World” application using low.js and the ESP32.

_Note however that low.js is only supported on ESP32-WROVER modules and not on ESP-WROOM-32 modules, as these don’t have the 4 MB of PSRAM required [2]. So, you should take this in consideration when choosing your ESP32 board to test low.js._

---

<div class="post-metadata">

**Author:** ![mtoko](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/mtoko/32/138_2.png) [@mtoko](https://discourse.nodered.org/u/mtoko)\
**Post date:** [26 June 2020 05:52 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001/6 "2020-06-26T05:52:51Z")

</div>

This would open a lot of possibilities 😁

---

<div class="post-metadata">

**Author:** ![Luckyboy](https://avatars.discourse-cdn.com/v4/letter/l/919ad9/32.png) [@Luckyboy](https://discourse.nodered.org/u/Luckyboy)\
**Post date:** [26 June 2020 06:57 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001/7 "2020-06-26T06:57:49Z")

</div>

You are right. I need one board for my iot project with fully autonomous work on a processes. And I need to reprogram it time to time. Process can't depend on internet connection.

---

<div class="post-metadata">

**Author:** ![mtoko](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/mtoko/32/138_2.png) [@mtoko](https://discourse.nodered.org/u/mtoko)\
**Post date:** [26 June 2020 09:53 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001/8 "2020-06-26T09:53:41Z")

</div>

A question on this subject, if I wanted to run the runtime only (say on a Pi Zero) using the current flow without starting the editor, how is this done? There was a lot of work done to divide the runtime and editor code so there must be some thinking along these lines. I assume only starting the runtime would reduce the resources required and possibly enable use of lower powered hardware?  
Thanks

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [26 June 2020 10:09 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001/9 "2020-06-26T10:09:23Z")

</div>

yes - well that is part of the reason to split out the runtime. However how much it saves, and how practical it is is all down to someone actually doing the work to try it (both on a full sized machine and then smaller devices) - all of which requires time and effort - so yes - we would be happy if some people decided to get involved and try this out - so that we can then work out the bits we didn't fix cleanly in the split.

---

<div class="post-metadata">

**Author:** ![cymplecy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cymplecy/32/2773_2.png) [@cymplecy](https://discourse.nodered.org/u/cymplecy)\
**Post date:** [26 June 2020 10:10 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001/10 "2020-06-26T10:10:50Z")

</div>

If Node-Red is running on a machine - all I'd think it would be doing editor wise is listening for a connection to start.

I can't imagine that takes up much resources until you actual connect a browser to start editing  
[edit]following Dave's comment - I was thinking CPU not memory requirements - silly me 🙂 [edit]

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [26 June 2020 10:19 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001/11 "2020-06-26T10:19:29Z")

</div>

I think we are not talking about running the editor here - just the runtime to interpret some form of minimised flow (ie only a highly restricted palette of nodes).

Either way both the editor and runtime currently load up a load of stuff (way more than 4 MB) of node files, libraries, icons, etc etc - and the low.js needs most of that already !

---

<div class="post-metadata">

**Author:** ![mtoko](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/mtoko/32/138_2.png) [@mtoko](https://discourse.nodered.org/u/mtoko)\
**Post date:** [26 June 2020 10:33 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001/12 "2020-06-26T10:33:32Z")

</div>

Ok, for those of us still trying to understand, the logic is that you may be able to start the runtime only and then only load a minimised flow and the nodes that are in that flow (only) ? 😅

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [26 June 2020 11:13 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001/13 "2020-06-26T11:13:03Z")

</div>

yes - that would be the theory... if you look at the source of the full project you can see it pulls in the existing dependencies - [https://github.com/node-red/node-red/blob/master/packages/node\_modules/node-red/package.json](https://github.com/node-red/node-red/blob/master/packages/node_modules/node-red/package.json)  
In theory one could build another "top level" project that only pulled in the runtime - (and you would probably want some core nodes - but again they themselves would need to be minimised etc)  
But still mostly theoretical until someone does it for real.

---

<div class="post-metadata">

**Author:** ![Luckyboy](https://avatars.discourse-cdn.com/v4/letter/l/919ad9/32.png) [@Luckyboy](https://discourse.nodered.org/u/Luckyboy)\
**Post date:** [27 June 2020 00:04 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001/14 "2020-06-27T00:04:46Z")

</div>

Thanks a lot. A bit complicate for my skills.

---

<div class="post-metadata">

**Author:** ![Luckyboy](https://avatars.discourse-cdn.com/v4/letter/l/919ad9/32.png) [@Luckyboy](https://discourse.nodered.org/u/Luckyboy)\
**Post date:** [27 June 2020 00:07 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001/15 "2020-06-27T00:07:38Z")

</div>

Exactly)))

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [26 August 2020 00:07 UTC](https://discourse.nodered.org/t/low-js-for-nr-runtime-on-esp32/29001/16 "2020-08-26T00:07:42Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
