Wifi on Pixl.js

Posted on
  • Hello,

    has anyone found a wifi shield that works on the Pixl.js without any rewiring or modification? I am aware of this tutorial: http://www.espruino.com/arduino-esp8266, which is great... Unfortunately, my target group for this project (very young students) won't be able to change the boards. Hardware has to be plug and play, which is the primary reason for choosing Espruino in the first place.

    The development goal is a BLE GATT to MQTT via Wifi gateway. Unfortunately, the Espruino Wifi won't work for this either, since it doesn't support BLE. Any pointers appreciated.


  • If you can find any ESP8266 board that has a voltage regulator on it and has a way for you to use the serial lines then you should be fine. I think a legitimate ESP8266 arduino shield might be ok - it's just that those shields were cheap (and broken :).

    You can actually use those arduino shields as-is, you just need two jumper wires: http://www.espruino.com/arduino-esp8266#­using-as-is

    That might be your best bet? With those 'dupont' male->female wires you can get from eBay it's super easy.

  • Hi Gordon,

    thanks for your advice - quick as always... much appreciated!
    Do you think that either / both of these would work? (They both claim to have voltage regulators).

    If you think they should work, i'll just try both.

    The Sparkfun board also seems to look good but it requires soldering the headers on and the reviews are pretty mixed (why don't they sell a version with headers???)




  • Yes, I'd think either of those would work. Even if the soldered one didn't for some reason you'd still be able to do the 2 wire hack mentioned above on it :)

  • Great, I’ll order some and give them a go. Will post an update here once I’ve found out. Thanks again.

  • @Bernd: Were you already successful?

    I'm also thinking about getting the Pixel.js, but I really would like it to have wifi too. So in here https://shop.espruino.com/accessories/es­p8266-esp01 it says:

    Other boards such as the Espruino Original and Pixl.js do not contain powerful enough 3.3v voltage regulators to reliably power the ESP01, so while it can be added you'll need a separate 3.3v voltage regulator.

    So what would I need to do? Replace the voltage regulator on the Pixel.js with another on? I really would like to have a small footprint wifi module on it instead of an extra shield.

    Would be Pixel.js together with the above ESP8266 module fit in the acrylic case?

  • What intrigues you about Pixl.js since you want to go for WiFi anyway? - Only when you want the combination of BLE and WiFi, then it fits, otherwise I would go for an Espruino-Wifi. If it is the display, there are other display that can be combined with Espruino-Wifi. Using Pixle.js you need anyway additional power supply and that can support both, ESP8266 and Pixl.js.

  • Oh, and the Pixl.js doesn't have enough memory for SSL/HTTPS, so you are limited to http. While the Espruino-Wifi has enough ram for https!

  • @allObjects It's indeed the small footprint including the display that intrigues me. But it would also be nice to query a internet service for data to display.

    Oh, and the Pixl.js doesn't have enough memory for SSL/HTTPS, so you are limited to http. While the Espruino-Wifi has enough ram for https!

    Well that's a stopper then.

    If it is the display, there are other display that can be combined with Espruino-Wifi.

    Can you give me a hint where to look for that? I'm just beginning to dive into the Espruino world! :)

  • You could take a look at http://www.espruino.com/Pixl.js+Multicol­our - it has somewhere to solder an ESP01 WiFi module the the voltage regulator is powerful enough for it.

    Still not HTTPS but it's got a lot of the benefits of Pixl.js, plus WiFi and a fancy screen

  • Thr 2019.12.12

    'Can you give me a hint where to look for that?'

    Has the tutorial page been discovered? (5-10 LCD examples)


    Here is a sample LCD but connected to a Pico


    Type "lcd" into search box at upper right on title bar main page. At least twenty references

  • @Raik you can buy the LCD as module that the Pixl.js uses.

    Advantage of this monochrome LCD is that it is very power frugal. As pointed out earlier, to go for such a display is when you have to save power... because you do not even need a back light to be turned on to be able to read it.

    Higher resolution and other many convenient functions you can get with colored TFT LCDs with touch screen, such as explained in https://www.espruino.com/ILI9341 display controller, and many other - forum - places, such as: Resistive Touchscreen directly (no touch controller), Puzzle16+ Game on ILI9341 2.8" 262K Color TFT LCD w/ Resistive Touch Screen and in this post. Latter shows you a setup that gets you display and WiFi connectivity, but no BLE connectivity. The Espruino PICO is compact too and has sufficient memory to do https, same as Espruino-Wifi. Espruino-Wifi is though slightly faster as Espruino PICO: 100 vs 84Mhz... in case it matters to you/r application.

  • Thanks all for the input. I see I have a lot to read and catch up. One final question for now: what does it take to implement a module for a new display type. If I understand correctly, it should support SPI. Would I need to develop a new module with the specs from some datasheet?

    Specifically I am amazed by an ePaper display like that: https://eckstein-shop.de/Waveshare-27-in­ch-264x176-E-Ink-E-Paper-Raw-Display-thr­ee-color-Arduino

  • eInk displays are intriguing, but they have major challenges: update... event hough you can you can partial update, it is still a challenge. eInk is only for very very static displays.

    There are already modules out there, and modifying and even writing a module is not that hard.

    I was looking into this technology as well, but when noticing that it needs .flip() to be efficient, I kept sticking with the serial TTF / LCD displays. I have a smaller 3-color one myself for quite a while, but have not found / made available the time to hook it up.

    Regarding .flip() method: some displays are difficult to update by the pixel, because they expect always a whole area of pixel... These displays are usually of low resolution and low color depth. This simplifies the display driver: no direct single pixel access. This 'slack' has to be picked up by the application processor which has to have a logical copy (source) of the data of the whole display in memory. When the Espruino graphics project 'draws' something, it draws into this memory and after 'all updates complete, 'all' is 'shipped out'. This happens for displays made with neopixel string(s), where you have to 3 bytes (or source color depth depending) for each pixel in memory. After update of the 'display in memory' - or Graphics buffer - all data is 'shifted' out... serially - (the first 3 bytes travel thru all pixels but the last: the last consumes them; the second 3 bytes travel through all Pixels but the second to last and last one:L the second to last consumes them, the third 3 byes... and finally the last three bytes: they just make it to the first pixel where they are consumed. Other types of displays have it similar: data needs to be sent in full for update or sent multiplexed. Even though eInk displays are NOT THAT serial nor does it require multiplexing, their issue is that keeping them under power for immediate, ongoing update is not their design... and waste of power.
    (This is all a bit simplified, because there are sophistic hybrids... and Espruino has also implementation for that: it knows which part of the display memory is updated and such a .flip() knows about it and takes advantage of it).

    To start with, I suggest to pick a TFT display with touch screen. They are available as 2.2", 2.8" and also 3.2" in size displays, support 240x320 pixels resolution in (max) 262K color, are well supported, serially driven (SPI) but with pixel direct access. With the touch screen you get a fancy input. If you have an issue with the power, go for the display ghat Pixl.js has: monochrome LCD, low re

  • Fri 2019.12.13

    'what does it take to implement a module for a new display type'

    @Raik, the easiest is to follow a working example, then generate questions.

    Random selection - link sequence


    Click on 'A Nokia 5110 LCD' below heading 'You'll Need'


    gets one to a sample completed module


    Educate onself on the process


  • Hello,

    jumping in late ... it seems that this is no longer relevant for @Raik, but for what it's worth: I ordered expansion shields for ESP8266 from quite a few ebay sellers. Each and every order was cancelled by the respective seller after a few days. All for the same reason: "quality problems with the module". I now have quite a few ESP8266 lying around, but no adapter expansion shield :)

    This is the type of module I'm talking about: https://www.ebay.com/itm/Duinopeak-ESP82­66-ESP-01-WiFi-Expansion-Board-Shield-Wi­thout-ESP8266-Module-For/312730751293?ss­PageName=STRK%3AMEBIDX%3AIT&_trksid=p205­7872.m2749.l2649

    I finally managed to obtain a different type of WiFi module here:

    These have arrived, but i haven't managed to test them yet. Hopefully sometime during the end-of-year break.

  • @Bernd, good to know... and sad at the same time.

    "quality problems with the module"

    Electrically on the digital side? - may be... but it could also be on the RF side, even though the layout may have followed the guidelines (Application Design Notes regarding RF).

    The alternative you link to looked at first side great... and the ESP-12X modules are improved follow ups of the original ESP-01 modules. But the the placement of the module and the traces on the back of the shield put me at unease. Running with an external antenna would probably work well. These shields are obviously a lottery: https://claus.bloggt.es/2017/02/26/ardui­no-esp8266-wifi-shield-elecshop-ml-by-wa­ngtongze-comparison/

    Many others that use kind of RF modules - with onboard ceramic or pcb trace antenna - make sure that the shield has the least impact on the RF Transmission quality.

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview

Wifi on Pixl.js

Posted by Avatar for Bernd @Bernd