A VT100 Serial Terminal as a Chrome Web App (with both syntax highlighted and graphical editors) - designed for writing code on microcontrollers that use the Espruino JavaScript interpreter.
This is a Chrome Web App (mainly) that uses chome.serial to access your PC's serial port. You can download it from the Chrome Web Store: https://chrome.google.com/webstore/detail/espruino-serial-terminal/bleoifhkdalbjfbobjackfdifdneehpo
It implements basic VT100 terminal features (up/down/left/right/etc) - enough for you to write code using the Espruino. You can also use the right-hand pane to write JavaScript code on the PC, and can then click the 'transfer' icon to send that code directly down the Serial Port.
- Install the Chrome Web Browser
- Go Here to find the app in the Chrome Web Store
- Click 'Install'
- Click 'Launch App'
- Install the Chrome Web Browser
- Download the files in EspruinoWebIDE to an
EspruinoWebIDE
directory on your PC (either as a ZIP File, or using git) - Download the files in EspruinoTools into the
EspruinoWebIDE/EspruinoTools
on your PC (either as a ZIP File, or using git) - Click the menu icon in the top right
- Click 'Settings'
- Click 'Extensions' on the left
- Click 'Load Unpackaged Extension'
- Navigate to the
EspruinoWebIDE
Directory and click Ok - Job Done. It'll now appear as an app with the 'Unpacked' banner so you can tell it apart from the normal Web IDE. You can start it easily by clicking the 'Launch' link on the extensions page, or whenever you open a new tab.
This web app requires the following permissions:
- Serial port access : So that it can access the Espruino board via USB/Serial
- Webcam access : So that when you click the little person icon in the top-right of the terminal window, you can overlay the terminal on a live video feed
- Audio access: if you want to communicate with Espruino using your headphone jack
- Filesystem/storage access : For loading/saving your JavaScript files to your local disk
- Run the Web app
- Click the
Help
(?) icon, then theTour
button to get a guided tour.
There is also a web-only version of the Web IDE served from GitHub.
Web browser permissions stop this accessing the Serial port, but it can:
- Use the Web Audio API to fake a serial port over your headphone jack
- Use Web Bluetooth API on compatible devices to communicate with Espruino via devices that implement a Nordic BLE UART
Potentially it could also communicate directly with Espruino boards via WebSockets or even AJAX, but this isn't implemented yet .
Note: Sadly Apple have chosen not to implement getUserMedia
on their iOS devices at the moment, so Serial over Audio won't work on iPhone/iPad/etc. (The menu item won't appear in the settings page)
Contributions are welcome - especially if they make the Web IDE easier to use for newcomers!
Espruino Web IDE expects the EspruinoTools repository to be in EspruinoWebIDE/EspruinoTools
. If you're using Git, make sure you add it using the command:
git submodule add [email protected]:espruino/EspruinoTools.git
- Please stick to a K&R style with no tabs and 2 spaces per indent
- Filenames should start with a lowerCase letter, and different words should be capitalised, not split with underscores
- Core functionality goes in
js/core
, Plugins go injs/plugins
. Seeplugins/_examplePlugin.js
for an example layout - Plugins/core need to implement in init function, which is called when the document (and settings) have loaded.
- Plugins can respond to specific events using
Espruino.addProcessor
. For instance you can useEspruino.addProcessor("transformForEspruino", function (data,callback) { .. })
and can modify code before it is sent to Espruino. - Icons are added using
Espruino.Core.App.addIcon
and are generally added from JsvaScript file that performs the operation - Config is stored in
Espruino.Config.FOO
and is changed withEspruino.Config.set("FOO", value)
.Espruino.Core.Config.add
can be used to add an option to the Settings menu. - Annoyingly, right now plugins still have to be loaded via a
<script>
tag inmain.html