Espruino Terminal Project

Posted on
  • Espruino Terminal Project
    Purpose: Create Espruino projects offline from the Internet.

    There is a new Indiegogo project called PI-Top. Its really a PI SBC with a LCD, keyboard with enclosure and a prototype area.­p-a-raspberry-pi-laptop-you-build-yourse­lf

    I was thinking ... why not create a completely standalone terminal using the Espruino ver. 1.3 with no PC or internet? The library module(s) storage would reside on Espruino SD card.

    The parts (below) would be the ASCII terminal attached to the Espruino.

    Are there any obvious hardware/software design flaws in making this Espruino terminal? Any forum user comments is appreciated.


    #1. 7" TFT LCD Color monitor (backup cam monitor) - PAL/NTSC (Amazon $35)­Monitor-Support-Rotating/dp/B007SLDF7O/r­ef=sr_1_2?ie=UTF8&qid=1416962445&sr=8-2&­keywords=backup

    #2. Miniature keyboard- Microcontroller friendly PS/2 (Adafruit $30)­id=CLDS342Hl8ICFY4AaQodD6YA4Q

    #3. ASCII VT100 compatible video terminal board (VGA/NTSC/PAL/PS2) (Geoff's Projects)

    #4. Espruino ver. 1.3 with transflash/SD. Serial TTL (no level conversion needed) (Espruino USART1 attached to ASCII video terminal serial port @ 9600 baud)

    Addition ... 27/11/14

    Espruino Terminal Project pitfalls/workarounds/enhancements:

    #1. Espruino "online" minification will be missing for all library modules
    or user source code. Just use the Espruino Pico for more JSVARS and add
    a SD card breakout board.

    #2. No Espruino firmware updating.
    Just attach the Espruino via USB to a computer which has the WEB IDE
    installed and update the firmware. Make sure all the library modules are
    "up to date" by viewing the release dates and updating the Espruino SD
    card modules manually.

    #3. By removing the "on-line" internet library modules "should" increase the
    Espruino communication responses/feedback.

    #4. The ASCII VT100 terminal board video output is not restricted to NTSC/PAL but
    also has the capability to output to any VGA monitor (CRT or LCD). This
    means, you could buy any surplus or junk VGA monitor and keyboard at an extremely low price. Note: There are low cost adapters that convert a USB keyboard to PS2.

  • Wow, that looks awesome. I don't see any problems with doing that at all!

    I was actually considering doing an all-in-one computer using just an Espruino board. I think it should be possible as you can put the terminal on LoopbackA and then implement a VT100 terminal inside Espruino itself. Finding a nice big LCD for it (and a decent keyboard) would be more of an issue though.

  • On the software side ... without built-in functions to easily save the user's js source code
    to/from theSD card to the Espruino could be very problematic?

  • Reminds me of PHOENARD, sort of an Arduino OS...
    Every Arduino program you've ever written can be brought up by touching it's icon.
    And it's a phone, and an MP3 device, and a prototyping device and it is extensible...
    Espruino/Pico could do that! And smaller...

  • @user7114 it depends how you did it... The simplest way would be to write all your code in one big function. You get multi-line editing then, and it can easily be converted to a string to save with .toString().

    Phoenard looks fun - I wonder if it would ever be much more than a toy though? Although it does look like a great toy :)

  • @Gordon

    @user7114 it depends how you did it... The simplest way would be to
    write all your code in one big function. You get multi-line editing
    then, and it can easily be converted to a string to save with

    A much easier way is to include, in Espruino built-in functions, your two code snippets that you wrote in this topic ...­253795/#comment11812662

    Note: Other (non terminal users) will find these two functions very handy in saving and restoring their user code to the SD drive for backup or SD booting.

  • Ahh - good point :)

  • @Gordon
    So ... is it possible to add your "saveToSD()" and "loadFromSD()" functions to the next firmware release version of Espruino?
    Without these "internal" functions this project is DOA.

  • I don't have any real plans - there's a lot of other more important stuff I'm afraid.

    The worst case (when totally resetting) is to write require('clean') (if you create node_modules/clean.js, but you could ensure that even when resetting the device to a 'blank' state, you actually just loaded a 'clean' image that contained the relevant load and save functions already:

    function reset() {
      load(); // re-load from SD
  • this project is DOA. (Dead on arrival)

    This project "could have" made it possible for underprivileged students to educate themselves about the Javascript programming language without the need to have an Internet connection or PC.

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

Espruino Terminal Project

Posted by Avatar for user7114 @user7114