Version 1v47
function NaN()
No parameters
Not a Number
function analogRead(pin)
Get the analog value of the given pin
This is different to Arduino which only returns an integer between 0 and 1023
However only pins connected to an ADC will work (see the datasheet)
pin The pin to use
The analog Value of the Pin between 0 and 1
function analogWrite(pin,value,options)
Set the analog Value of a pin. It will be output using PWM
pin The pin to use
value A value between 0 and 1
options An object containing options.
Currently only freq (pulse frequency in Hz) is available: analogWrite(A0,0.5,{ freq : 10 });
Note that specifying a frequency will force PWM output, even if the pin has a DAC
No return value (undefined)
function arguments()
A variable containing the arguments given to the function
No parameters
An array containing all the arguments given to the function
function changeInterval(id,time)
Change the Interval on a callback created with setInterval, for example:
var id = setInterval(function () { print('foo'); }, 1000); // every second
changeInterval(id, 1500); // now runs every 1.5 seconds
This takes effect the text time the callback is called (so it is not immediate).
id The id returned by a previous call to setInterval
time The new time period in ms
No return value (undefined)
function clearInterval(id)
Clear the Interval that was created with setInterval, for example:
var id = setInterval(function () { print('foo'); }, 1000);
clearInterval(id);
If no argument is supplied, all timers and intervals are stopped
id The id returned by a previous call to setInterval
No return value (undefined)
function clearTimeout(id)
Clear the Timeout that was created with setTimeout, for example:
var id = setTimeout(function () { print('foo'); }, 1000);
clearTimeout(id);
If no argument is supplied, all timers and intervals are stopped
id The id returned by a previous call to setTimeout
No return value (undefined)
function clearWatch(id)
Clear the Watch that was created with setWatch. If no parameter is supplied, all watches will be removed.
id The id returned by a previous call to setWatch
No return value (undefined)
function digitalPulse(pin,value,time)
Pulse the pin with the value for the given time in milliseconds
eg. pulse(A0,1,5);
pulses A0 high for 5ms
digitalPulse is for SHORT pulses that need to be very accurate. If you're doing anything over a few milliseconds, use setTimeout instead
pin The pin to use
value Whether to pulse high (true) or low (false)
time A time in milliseconds
No return value (undefined)
function digitalRead(pin)
Get the digital value of the given pin
If pin is an array of pins, eg. [A2,A1,A0]
the value will be treated as an integer where the first array element is the MSB
pin The pin to use
The digital Value of the Pin
function digitalWrite(pin,value)
Set the digital value of the given pin
If pin is an array of pins, eg. [A2,A1,A0]
the value will be treated as an integer where the first array element is the MSB
pin The pin to use
value Whether to pulse high (true) or low (false)
No return value (undefined)
function dump()
Output current interpreter state in a text form such that it can be copied to a new device
Note: 'Internal' functions are currently not handled correctly. You will need to recreate these in the onInit function.
No parameters
No return value (undefined)
function echo(echoOn)
Should TinyJS echo what you type back to you? true = yes (Default), false = no. When echo is off, the result of executing a command is not returned. Instead, you must use 'print' to send output.
echoOn
No return value (undefined)
function edit(funcName)
Fill the console with the contents of the given function, so you can edit it.
NOTE: This is a convenience function - it will not edit 'inner functions'. For that, you must edit the 'outer function' and re-execute it.
funcName The name of the function to edit (either a string or just the unquoted name)
No return value (undefined)
function eval(code)
Evaluate a string containing JavaScript code
code
The result of evaluating the string
function getSerial()
Get the serial number of this board
No parameters
The board's serial number
function getTime()
Return the current system time in Seconds (as a floating point number)
No parameters
See description above
function isNaN(x)
Whether the x is NaN (Not a Number) or not
x
True is the value is NaN, false if not.
function load()
Load program memory out of flash
This command only executes when the Interpreter returns to the Idle state - for instance a=1;load();a=2;
will still leave 'a' as undefined (or what it was set to in the saved program).
No parameters
No return value (undefined)
function parseFloat(string)
Convert a string representing a number into an float
string
The value of the string
function parseInt(string,radix)
Convert a string representing a number into an integer
string
radix The Radix of the string (optional)
The integer value of the string (or NaN)
function peek16(addr)
Read 16 bits of memory at the given location - DANGEROUS!
addr The address in memory to read
The value of memory at the given location
function peek32(addr)
Read 32 bits of memory at the given location - DANGEROUS!
addr The address in memory to read
The value of memory at the given location
function peek8(addr)
Read 8 bits of memory at the given location - DANGEROUS!
addr The address in memory to read
The value of memory at the given location
function pinMode(pin,mode)
Set the mode of the given pin - note that digitalRead/digitalWrite/etc set this automatically unless pinMode has been called first. If you want digitalRead/etc to set the pin mode automatically after you have called pinMode, simply call it again with no mode argument: pinMode(pin)
pin The pin to use
mode The mode - a string that is either 'input', 'output', 'input_pullup', or 'input_pulldown'. Do not include this argument if you want to revert to automatic pin mode setting.
No return value (undefined)
function poke16(addr,value)
Write 16 bits of memory at the given location - VERY DANGEROUS!
addr The address in memory to write
value The value to write
No return value (undefined)
function poke32(addr,value)
Write 32 bits of memory at the given location - VERY DANGEROUS!
addr The address in memory to write
value The value to write
No return value (undefined)
function poke8(addr,value)
Write 8 bits of memory at the given location - VERY DANGEROUS!
addr The address in memory to write
value The value to write
No return value (undefined)
function print(text,...)
Print the supplied string
text, ...
No return value (undefined)
function require(moduleName)
Load the given module, and return the exported functions
moduleName A String containing the name of the given module
The result of evaluating the string
function reset()
Reset the interpreter - clear program memory, and do not load a saved program from flash. This does NOT reset the underlying hardware (which allows you to reset the device without it disconnecting from USB).
This command only executes when the Interpreter returns to the Idle state - for instance a=1;reset();a=2;
will still leave 'a' as undefined.
The safest way to do a full reset is to hit the reset button.
No parameters
No return value (undefined)
function save()
Save program memory into flash. It will then be loaded automatically every time Espruino powers on or is hard-reset.
This command only executes when the Interpreter returns to the Idle state - for instance a=1;save();a=2;
will save 'a' as 2.
In order to stop the program saved with this command being loaded automatically, hold down Button 1 while also pressing reset. On some boards, Button 1 enters bootloader mode, so you will need to press Reset with Button 1 raised, and then hold Button 1 down a fraction of a second later.
No parameters
No return value (undefined)
function setBusyIndicator(pin)
When Espruino is busy, set the pin specified here high. Set this to undefined to disable the feature.
pin
No return value (undefined)
function setDeepSleep(sleep)
Set whether we can enter deep sleep mode, which reduces power consumption to around 100uA. This only works on the Espruino Board.
Please see [http://www.espruino.com/Power+Consumption] for more details on this.
sleep
No return value (undefined)
function setInterval(function,timeout)
Call the function specified REPEATEDLY after the timeout in milliseconds.
The function that is being called may also take an argument, which is an object containing a field called 'time' (the time in seconds at which the timer happened)
for example: setInterval(function (e) { print(e.time); }, 1000);
This can also be removed using clearInterval
function A Function or String to be executed
timeout The time between calls to the function
An ID that can be passed to clearInterval
function setSleepIndicator(pin)
When Espruino is asleep, set the pin specified here low (when it's awake, set it high). Set this to undefined to disable the feature.
Please see [http://www.espruino.com/Power+Consumption] for more details on this.
pin
No return value (undefined)
function setTimeout(function,timeout)
Call the function specified ONCE after the timeout in milliseconds.
The function that is being called may also take an argument, which is an object containing a field called 'time' (the time in seconds at which the timer happened)
for example: setTimeout(function (e) { print(e.time); }, 1000);
This can also be removed using clearTimeout
function A Function or String to be executed
timeout The time until the function will be executed
An ID that can be passed to clearTimeout
function setWatch(function,pin,options)
Call the function specified when the pin changes
The function may also take an argument, which is an object containing a field called 'time', which is the time in seconds at which the pin changed state, and 'state', which is the current state of the pin
This can also be removed using clearWatch
function A Function or String to be executed
pin The pin to watch
options If this is a boolean or integer, it determines whether to call this once (false = default) or every time a change occurs (true)
If this is an object, it can contain the following information: { repeat: true/false(default), edge:'rising'/'falling'/'both'(default)}
An ID that can be passed to clearWatch
function trace(root)
Output debugging information
root The symbol to output (optional). If nothing is specified, everything will be output
No return value (undefined)
This is the built-in JavaScript class for arrays.
Arrays can be defined with []
, new Array()
, or new Array(length)
constructor Array(args,...)
Create an Array. Either give it one integer argument (>=0) which is the length of the array, or any number of arguments
args, ... The length of the array OR any number of items to add to the array
An Array
function Array.forEach(function,thisArg)
Executes a provided function once per array element.
function Function to be executed
thisArg if specified, the function is called with 'this' set to thisArg (optional)
No return value (undefined)
function Array.indexOf(value)
Return the index of the value in the array, or -1
value The value to check for
the index of the value in the array, or -1
function Array.isArray(var)
Returns true if the provided object is an array
var The variable to be tested
True if var is an array, false if not.
function Array.join(separator)
Join all elements of this array together into one string, using 'separator' between them. eg. [1,2,3].join(' ')=='1 2 3'
separator The separator
A String representing the Joined array
function Array.map(function,thisArg)
Return an array which is made from the following: A.map(function) = [function(A[0]), function(A[1]), ...]
function Function used to map one item to another
thisArg if specified, the function is called with 'this' set to thisArg (optional)
The value that is popped off
function Array.pop()
Pop a new value off of the end of this array
No parameters
The value that is popped off
function Array.push(arguments,...)
Push a new value onto the end of this array'
arguments, ... One or more arguments to add
The new size of the array
function Array.slice(start,end)
Return a copy of a portion of the calling array
start Start index
end End index (optional)
A new array
function Array.splice(index,howMany,element1,element2,element3,element4,element5,element6)
Both remove and add items to an array
index Index at which to start changing the array. If negative, will begin that many elements from the end
howMany An integer indicating the number of old array elements to remove. If howMany is 0, no elements are removed.
element1 A new item to add (optional)
element2 A new item to add (optional)
element3 A new item to add (optional)
element4 A new item to add (optional)
element5 A new item to add (optional)
element6 A new item to add (optional)
An array containing the removed elements. If only one element is removed, an array of one element is returned.
This is the built-in JavaScript class for array buffers.
constructor ArrayBuffer(byteLength)
Create an Array Buffer object
byteLength The length in Bytes
An ArrayBuffer object
This is the built-in JavaScript class that is the prototype for Uint8Array / Float32Array / etc
function ArrayBufferView.buffer
The buffer this view references
No parameters
An ArrayBuffer object
function ArrayBufferView.byteLength
The length, in bytes, of the view
No parameters
The Length
function ArrayBufferView.byteOffset
The offset, in bytes, to the first byte of the view within the ArrayBuffer
No parameters
The byte Offset
function ArrayBufferView.interpolate(index)
Interpolate between two adjacent values in the Typed Array
index Floating point index to access
The result of interpolating between (int)index and (int)(index+1)
function ArrayBufferView.interpolate2d(width,x,y)
Interpolate between two adjacent values in the Typed Array
width Integer 'width' of 2d array
x Floating point X index to access
y Floating point Y index to access
The result of interpolating in 2d between the 4 surrounding cells
function CC3000.connect()
Initialise the CC3000 and return a WLAN object
A WLAN Object
This is the built-in class for Floating Point values
function Double.doubleToIntBits(x)
Convert the floating point value given into an integer representing the bits contained in it
x A floating point number
The integer representation of x
This is the built-in JavaScript class for a typed array.
Instantiate this in order to efficiently store arrays of data (Espruino's normal arrays store data in a map, which is inefficient for non-sparse arrays).
constructor Float32Array(arr,byteOffset,length)
Create a typed array based on the given input. Either an existing Array Buffer, an Integer as a Length, or a simple array
arr The array or typed array to base this off, or an integer which is the array length
byteOffset The byte offset in the ArrayBuffer (ONLY IF the first argument was an ArrayBuffer)
length The length (ONLY IF the first argument was an ArrayBuffer)
A typed array
This is the built-in JavaScript class for a typed array.
Instantiate this in order to efficiently store arrays of data (Espruino's normal arrays store data in a map, which is inefficient for non-sparse arrays).
constructor Float64Array(arr,byteOffset,length)
Create a typed array based on the given input. Either an existing Array Buffer, an Integer as a Length, or a simple array
arr The array or typed array to base this off, or an integer which is the array length
byteOffset The byte offset in the ArrayBuffer (ONLY IF the first argument was an ArrayBuffer)
length The length (ONLY IF the first argument was an ArrayBuffer)
A typed array
This is the built-in class for Functions
function Function.apply(this,args)
This executes the function with the supplied 'this' argument and parameters
this The value to use as the 'this' argument when executing the function
args Optional Array of Aruments
The return value of executing this function
function Function.call(this,a,b,c,d)
This executes the function with the supplied 'this' argument and parameters
this The value to use as the 'this' argument when executing the function
a Optional Parameter 1
b Optional Parameter 2
c Optional Parameter 3
d Optional Parameter 4
The return value of executing this function
function Function.replaceWith(newFunc)
This replaces the function with the one in the argument - while keeping the old function's scope. This allows inner functions to be edited, and is used when edit() is called on an inner function.
newFunc The new function to replace this function with
No return value (undefined)
This class provides Graphics operations that can be applied to a surface.
Use Graphics.createXXX to create a graphics object that renders in the way you want.
NOTE: On boards that contain an LCD, there is a built-in 'LCD' object of type Graphics. For instance to draw a line you'd type: LCD.drawLine(0,0,100,100)
function Graphics.clear()
Clear the LCD with the Background Color
No parameters
No return value (undefined)
function Graphics.createArrayBuffer(width,height,bpp,options)
Create a Graphics object that renders to an Array Buffer. This will have a field called 'buffer' that can get used to get at the buffer itself
width Pixels wide
height Pixels high
bpp Number of bits per pixel
options An object of other options. { zigzag : true/false(default), vertical_byte : true/false(default) }
zigzag = whether to alternate the direction of scanlines for rows
vertical_byte = whether to align bits in a byte vertically or not
The new Graphics object
function Graphics.createCallback(width,height,bpp,callback)
Create a Graphics object that renders by calling a JavaScript callback function
width Pixels wide
height Pixels high
bpp Number of bits per pixel
callback A function of the form function(x,y,col)
that is called whenever a pixel needs to be drawn
The new Graphics object
function Graphics.drawLine(x1,y1,x2,y2)
Draw a line between x1,y1 and x2,y2 in the current foreground color
x1 The left
y1 The top
x2 The right
y2 The bottom
No return value (undefined)
function Graphics.drawRect(x1,y1,x2,y2)
Draw an unfilled rectangle 1px wide in the Foreground Color
x1 The left
y1 The top
x2 The right
y2 The bottom
No return value (undefined)
function Graphics.drawString(str,x,y)
Draw a string of text in the current font
str The string
x The left
y The top
No return value (undefined)
function Graphics.fillPoly(poly)
Draw a filled polygon in the current foreground color
poly An array of vertices, of the form [x1,y1,x2,y2,x3,y3,etc]
No return value (undefined)
function Graphics.fillRect(x1,y1,x2,y2)
Fill a rectangular area in the Foreground Color
x1 The left
y1 The top
x2 The right
y2 The bottom
No return value (undefined)
function Graphics.getHeight()
The height of the LCD
No parameters
The height of the LCD
function Graphics.getPixel(x,y)
Get a pixel's color
x The left
y The top
The color
function Graphics.getWidth()
The width of the LCD
No parameters
The width of the LCD
function Graphics.lineTo(x,y)
Draw a line from the last position of lineTo or moveTo to this position
x X value
y Y value
No return value (undefined)
function Graphics.moveTo(x,y)
Move the cursor to a position - see lineTo
x X value
y Y value
No return value (undefined)
function Graphics.setBgColor(r,g,b)
Set the background color to use for subsequent drawing operations
r Red (between 0 and 1) OR an integer representing the color in the current bit depth
g Green (between 0 and 1)
b Blue (between 0 and 1)
No return value (undefined)
function Graphics.setColor(r,g,b)
Set the color to use for subsequent drawing operations
r Red (between 0 and 1) OR an integer representing the color in the current bit depth
g Green (between 0 and 1)
b Blue (between 0 and 1)
No return value (undefined)
function Graphics.setFontBitmap()
Set Graphics to draw with a Bitmapped Font
No parameters
No return value (undefined)
function Graphics.setFontVector(size)
Set Graphics to draw with a Vector Font of the given size
size The size as an integer
No return value (undefined)
function Graphics.setPixel(x,y,col)
Set a pixel's color
x The left
y The top
col The color
No return value (undefined)
function Graphics.stringWidth(str)
Return the size in pixels of a string of text in the current font
str The string
The length of the string in pixels
This class allows use of the built-in I2C ports. Currently it allows I2C Master mode only.
All addresses are in 7 bit format. If you have an 8 bit address then you need to shift it one bit to the right.
I2C1
The first I2C port
I2C2
The second I2C port
I2C3
The third I2C port
function I2C.readFrom(address,quantity)
Request bytes from the given slave device, and return them as an array. This is like using Arduino Wire's requestFrom, available and read functions. Sends a STOP
address The 7 bit address of the device to request bytes from
quantity The number of bytes to request
The data that was returned - an array of bytes
function I2C.setup(options)
Set up this I2C port
options An optional structure containing extra information on initialising the I2C port
{scl:pin, sda:pin}
No return value (undefined)
function I2C.writeTo(address,data)
Transmit to the slave device with the given address. This is like Arduino's beginTransmission, write, and endTransmission rolled up into one.
address The 7 bit address of the device to transmit to
data The Data to send - either a byte, an array of bytes, or a string
No return value (undefined)
This is the built-in JavaScript class for a typed array.
Instantiate this in order to efficiently store arrays of data (Espruino's normal arrays store data in a map, which is inefficient for non-sparse arrays).
constructor Int16Array(arr,byteOffset,length)
Create a typed array based on the given input. Either an existing Array Buffer, an Integer as a Length, or a simple array
arr The array or typed array to base this off, or an integer which is the array length
byteOffset The byte offset in the ArrayBuffer (ONLY IF the first argument was an ArrayBuffer)
length The length (ONLY IF the first argument was an ArrayBuffer)
A typed array
This is the built-in JavaScript class for a typed array.
Instantiate this in order to efficiently store arrays of data (Espruino's normal arrays store data in a map, which is inefficient for non-sparse arrays).
constructor Int32Array(arr,byteOffset,length)
Create a typed array based on the given input. Either an existing Array Buffer, an Integer as a Length, or a simple array
arr The array or typed array to base this off, or an integer which is the array length
byteOffset The byte offset in the ArrayBuffer (ONLY IF the first argument was an ArrayBuffer)
length The length (ONLY IF the first argument was an ArrayBuffer)
A typed array
This is the built-in JavaScript class for a typed array.
Instantiate this in order to efficiently store arrays of data (Espruino's normal arrays store data in a map, which is inefficient for non-sparse arrays).
constructor Int8Array(arr,byteOffset,length)
Create a typed array based on the given input. Either an existing Array Buffer, an Integer as a Length, or a simple array
arr The array or typed array to base this off, or an integer which is the array length
byteOffset The byte offset in the ArrayBuffer (ONLY IF the first argument was an ArrayBuffer)
length The length (ONLY IF the first argument was an ArrayBuffer)
A typed array
This is the built-in class for Integer values
function Integer.valueOf(character)
Given a string containing a single character, return the numeric value of it
character A string containing a single character
The integer value of char
function JSON.parse(string)
Parse the given JSON string into a JavaScript object
string A JSON string
The JavaScript object created by parsing the data string
function JSON.stringify(data)
Convert the given object into a JSON string which can subsequently be parsed with JSON.parse or eval
data The data to be converted to a JSON string
A JSON string
This is a standard JavaScript class that contains useful Maths routines
function Math.E
No parameters
The value of E - 2.71828182846
function Math.PI
No parameters
The value of PI - 3.14159265359
function Math.abs(x)
x A floating point value
The absolute value of x (eg, Math.abs(2)==2
, but also Math.abs(-2)==2
)
function Math.acos(x)
x The value to get the arc cosine of
The arc cosine of x, between 0 and PI
function Math.asin(x)
x The value to get the arc sine of
The arc sine of x, between -PI/2 and PI/2
function Math.atan(x)
x The value to get the arc tangent of
The arc tangent of x, between -PI/2 and PI/2
function Math.atan2(y,x)
y The Y-part of the angle to get the arc tangent of
x The X-part of the angle to get the arc tangent of
The arctangent of Y/X, between -PI and PI
function Math.ceil(x)
x The value to round up
x, rounded upwards to the nearest integer
function Math.clip(x,min,max)
Clip a number to be between min and max (inclusive)
x A floating point value to clip
min The smallest the value should be
max The largest the value should be
The value of x, clipped so as not to be below min or above max.
function Math.cos(theta)
theta The angle to get the cosine of
The cosine of theta
function Math.exp(x)
x The value raise E to the power of
E^x
function Math.floor(x)
x The value to round down
x, rounded downwards to the nearest integer
function Math.log(x)
x The value to take the logarithm (base E) root of
The log (base E) of x
function Math.pow(x,y)
x The value to raise to the power
y The power x should be raised to
x raised to the power y (x^y)
function Math.random()
No parameters
A random number between 0 and 1
function Math.round(x)
x The value to round
x, rounded to the nearest integer
function Math.sin(theta)
theta The angle to get the sine of
The sine of theta
function Math.sqrt(x)
x The value to take the square root of
The square root of x
function Math.wrap(x,max)
Wrap a number around if it is less than 0 or greater than or equal to max. For instance you might do: Math.wrap(angleInDegrees, 360)
x A floating point value to wrap
max The largest the value should be
The value of x, wrapped so as not to be below min or above max.
function Modules.addCached(id,sourcecode)
Add the given module to the cache
id The module name to add
sourcecode The module's sourcecode
No return value (undefined)
function Modules.getCached()
Return an array of module names that have been cached
No parameters
An array of module names
function Modules.removeAllCached()
Remove all cached modules
No parameters
No return value (undefined)
function Modules.removeCached(id)
Remove the given module from the list of cached modules
id The module name to remove
No return value (undefined)
This is the built-in JavaScript class for numbers.
function Number.MAX_VALUE
No parameters
Maximum representable value
function Number.MIN_VALUE
No parameters
Smallest representable value
function Number.NEGATIVE_INFINITY
No parameters
Smallest representable value
function Number.POSITIVE_INFINITY
No parameters
Smallest representable value
This is the built-in class for Objects
function Object.clone()
Copy this object completely
No parameters
A copy of this Object
function Object.emit(event,v1,v2)
Call the event listeners for this object, for instance http.emit('data', 'Foo')
. See Node.js's EventEmitter.
event The name of the event, for instance 'data'
v1 Optional argument 1
v2 Optional argument 2
No return value (undefined)
function Object.keys(object)
Return all enumerable keys of the given object
object The object to return keys for
An array of strings - one for each key on the given object
function Object.length
Find the length of the object
No parameters
The value of the string
function Object.on(event,listener)
Register an event listener for this object, for instance http.on('data', function(d) {...})
. See Node.js's EventEmitter.
event The name of the event, for instance 'data'
listener The listener to call when this event is received
No return value (undefined)
function Object.removeAllListeners(event)
Removes all listeners, or those of the specified event.
event The name of the event, for instance 'data'
No return value (undefined)
function Object.toString(radix)
Convert the Object to a string
radix If the object is an integer, the radix (between 2 and 36) to use. NOTE: Setting a radix does not work on floating point numbers.
A String representing the object
This class provides a software-defined OneWire master. It is designed to be similar to Arduino's OneWire library.
constructor OneWire(pin)
Create a software OneWire implementation on the given pin
pin The pin to implement OneWire on
A OneWire object
function OneWire.read()
Read a byte
No parameters
The byte that was read
function OneWire.reset()
Perform a reset cycle
No parameters
True is a device was present (it held the bus low)
function OneWire.search()
Search for devices
No parameters
An array of devices that were found
function OneWire.select(rom)
Select a ROM - reset needs to be done first
rom The rom to select
No return value (undefined)
function OneWire.skip()
Skip a ROM
No parameters
No return value (undefined)
function OneWire.write(data,power)
Write a byte
data A byte to write
power Whether to leave power on after write (default is false)
No return value (undefined)
This is the built-in class for Pins, such as D0,D1,LED1, or BTN
You can call the methods on Pin, or you can use Wiring-style functions such as digitalWrite
function Pin.read()
Returns the input state of the pin as a boolean
No parameters
Whether pin is a logical 1 or 0
function Pin.reset()
Sets the output state of the pin to a 0
No parameters
No return value (undefined)
function Pin.set()
Sets the output state of the pin to a 1
No parameters
No return value (undefined)
function Pin.write(value)
Sets the output state of the pin to the parameter given
value Whether to set output high (true/1) or low (false/0)
No return value (undefined)
function Pin.writeAtTime(value,time)
Sets the output state of the pin to the parameter given at the specified time
value Whether to set output high (true/1) or low (false/0)
time Time at which to write
No return value (undefined)
This class allows use of the built-in SPI ports. Currently it is SPI master only.
SPI1
The first SPI port
SPI2
The second SPI port
SPI3
The third SPI port
function SPI.send(data,nss_pin)
Send data down SPI, and return the result
Sending multiple bytes in one call to send is preferable as they can then be transmitted end to end. Using multiple calls to send() will result in significantly slower transmission speeds.
data The data to send - either an integer, array, or string (which is the most efficient)
nss_pin An nSS pin - this will be lowered before SPI output and raised afterwards (optional). There will be a small delay between when this is lowered and when sending starts, and also between sending finishing and it being raised.
The data that was returned
function SPI.send4bit(data,bit0,bit1,nss_pin)
Send data down SPI, using 4 bits for each 'real' bit (MSB first). This can be useful for faking one-wire style protocols
Sending multiple bytes in one call to send is preferable as they can then be transmitted end to end. Using multiple calls to send() will result in significantly slower transmission speeds.
data The data to send - either an integer, array, or string
bit0 The 4 bits to send for a 0 (MSB first)
bit1 The 4 bits to send for a 1 (MSB first)
nss_pin An nSS pin - this will be lowered before SPI output and raised afterwards (optional). There will be a small delay between when this is lowered and when sending starts, and also between sending finishing and it being raised.
No return value (undefined)
function SPI.send8bit(data,bit0,bit1,nss_pin)
Send data down SPI, using 8 bits for each 'real' bit (MSB first). This can be useful for faking one-wire style protocols
Sending multiple bytes in one call to send is preferable as they can then be transmitted end to end. Using multiple calls to send() will result in significantly slower transmission speeds.
data The data to send - either an integer, array, or string
bit0 The 8 bits to send for a 0 (MSB first)
bit1 The 8 bits to send for a 1 (MSB first)
nss_pin An nSS pin - this will be lowered before SPI output and raised afterwards (optional). There will be a small delay between when this is lowered and when sending starts, and also between sending finishing and it being raised
No return value (undefined)
function SPI.setup(options)
Set up this SPI port. Master, MSB first, no checksum
options An optional structure containing extra information on initialising the SPI port
Please note that baud rate is set to the nearest that can be managed - which may be -+ 50%{sck:pin, miso:pin, mosi:pin, baud:integer, mode:integer=0 }
If sck,miso and mosi are left out, they will automatically be chosen. However if one or more is specified then the unspecified pins will not be set up.
The SPI mode
is between 0 and 3 - see http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus#Clock_polarity_and_phase
On STM32F1-based parts, you cannot mix AF and non-AF pins (SPI pins are usually grouped on the chip - and you can't mix pins from two groups). Espruino will not warn you about this.
No return value (undefined)
This class allows use of the built-in USARTs
Methods may be called on the USB, Serial1, Serial2, Serial3, Serial4, Serial5 and Serial6 objects. While different processors provide different numbers of USARTs, you can always rely on at least Serial1 and Serial2
Serial1
The first Serial (USART) port
Serial2
The second Serial (USART) port
Serial3
The third Serial (USART) port
Serial4
The fourth Serial (USART) port
Serial5
The fifth Serial (USART) port
Serial6
The sixth Serial (USART) port
USB
The USB Serial port
function Serial.onData(function)
When a character is received on this serial port, the function supplied to onData gets called.
Only one function can ever be supplied, so calling onData(undefined) will stop any function being called
function A function to call when data arrives. It takes one argument, which is an object with a 'data' field
No return value (undefined)
function Serial.print(string)
Print a string to the serial port - without a line feed
string A String to print
No return value (undefined)
function Serial.println(string)
Print a line to the serial port (newline character sent are ' ')
string A String to print
No return value (undefined)
function Serial.setConsole()
Set this Serial port as the port for the console
No parameters
No return value (undefined)
function Serial.setup(baudrate,options)
Setup this Serial port with the given baud rate and options
baudrate The baud rate - the default is 9600
options An optional structure containing extra information on initialising the serial port.{rx:pin,tx:pin}
Note that even after changing the RX and TX pins, if you have called setup before then the previous RX and TX pins will still be connected to the Serial port as well - until you set them to something else using digitalWrite
No return value (undefined)
function Serial.write(data)
Write a character or array of characters to the serial port - without a line feed
data A byte, a string, or an array of bytes to write
No return value (undefined)
This is the built-in class for Text Strings.
Text Strings in Espruino are not zero-terminated, so you can store zeros in them.
constructor String(str)
Create a new String
str A value to turn into a string. If undefined or not supplied, an empty String is created.
A String
function String.charAt(pos)
Return a single character at the given position in the String.
pos The character number in the string. Negative values return characters from end of string (-1 = last char)
The character in the string
function String.charCodeAt(pos)
Return the integer value of a single character at the given position in the String.
Note that this returns 0 not 'NaN' for out of bounds characters
pos The character number in the string. Negative values return characters from end of string (-1 = last char)
The integer value of a character in the string
function String.fromCharCode(code)
Return the character represented by the given character code.
code The character code to create a character from (range 0-255)
The character
function String.indexOf(substring)
Return the index of substring in this string, or -1 if not found
substring The string to search for
The index of the string, or -1 if not found
function String.split(separator)
Return an array made by splitting this string up by the separator. eg. '1,2,3'.split(',')==[1,2,3]
separator The start character index
Part of this string from start for len characters
function String.substr(start,len)
start The start character index
len The number of characters
Part of this string from start for len characters
function String.substring(start,end)
start The start character index
end The end character index
The part of this string between start and end
This class exists in order to interface Espruino with fast-moving trigger wheels. Trigger wheels are physical discs with evenly spaced teeth cut into them, and often with one or two teeth next to each other missing. A sensor sends a signal whenever a tooth passed by, and this allows a device to measure not only RPM, but absolute position.
This class is currently in testing - it is NOT AVAILABLE on normal boards.
function Trig.getErrorArray()
Get the current error flags from the trigger wheel - and zero them
No parameters
An array of error strings
function Trig.getErrors()
Get the current error flags from the trigger wheel - and zero them
No parameters
The error flags
function Trig.getPosAtTime(time)
Get the position of the trigger wheel at the given time (from getTime)
time The time at which to find the position
The position of the trigger wheel in teeth - as a floating point number
function Trig.getRPM()
Get the RPM of the trigger wheel
No parameters
The current RPM of the trigger wheel
function Trig.getTrigger(num)
Get the current state of a trigger
num The trigger number (0..7)
A structure containing all information about the trigger
function Trig.killTrigger(num)
Disable a trigger
num The trigger number (0..7)
No return value (undefined)
function Trig.setTrigger(num,pos,pins,pulseLength)
Set a trigger for a certain point in the cycle
num The trigger number (0..7)
pos The position (in degrees) to fire the trigger at
pins An array of pins to pulse (max 4)
pulseLength The time (in msec) to pulse for
No return value (undefined)
function Trig.setup(pin,options)
Initialise the trigger class
pin The pin to use for triggering
options Additional options as an object. defaults are: {teethTotal:60,teethMissing:2,minRPM:30,keyPosition:0}
No return value (undefined)
This is the built-in JavaScript class for a typed array.
Instantiate this in order to efficiently store arrays of data (Espruino's normal arrays store data in a map, which is inefficient for non-sparse arrays).
constructor Uint16Array(arr,byteOffset,length)
Create a typed array based on the given input. Either an existing Array Buffer, an Integer as a Length, or a simple array
arr The array or typed array to base this off, or an integer which is the array length
byteOffset The byte offset in the ArrayBuffer (ONLY IF the first argument was an ArrayBuffer)
length The length (ONLY IF the first argument was an ArrayBuffer)
A typed array
This is the built-in JavaScript class for a typed array.
Instantiate this in order to efficiently store arrays of data (Espruino's normal arrays store data in a map, which is inefficient for non-sparse arrays).
constructor Uint32Array(arr,byteOffset,length)
Create a typed array based on the given input. Either an existing Array Buffer, an Integer as a Length, or a simple array
arr The array or typed array to base this off, or an integer which is the array length
byteOffset The byte offset in the ArrayBuffer (ONLY IF the first argument was an ArrayBuffer)
length The length (ONLY IF the first argument was an ArrayBuffer)
A typed array
This is the built-in JavaScript class for a typed array.
Instantiate this in order to efficiently store arrays of data (Espruino's normal arrays store data in a map, which is inefficient for non-sparse arrays).
constructor Uint8Array(arr,byteOffset,length)
Create a typed array based on the given input. Either an existing Array Buffer, an Integer as a Length, or a simple array
arr The array or typed array to base this off, or an integer which is the array length
byteOffset The byte offset in the ArrayBuffer (ONLY IF the first argument was an ArrayBuffer)
length The length (ONLY IF the first argument was an ArrayBuffer)
A typed array
An instantiation of a WiFi network adaptor
function WLAN.connect(ap,key,callback)
Connect to a wireless network
ap Access point name
key WPA2 key (or undefined for unsecured connection)
callback Function to call back with connection status. It has one argument which is one of 'connect'/'disconnect'/'dhcp'
See description above
function WLAN.disconnect()
Completely uninitialise and power down the CC3000. After this you'll have to use require("CC3000").connect()
again.
No parameters
No return value (undefined)
function WLAN.getIP()
Get the current IP address
No parameters
See description above
function console.log(text,...)
Print the supplied string(s)
text, ... One or more arguments to print
No return value (undefined)
This library handles interfacing with a FAT32 filesystem on an SD card. The API is designed to be similar to node.js's - However Espruino does not currently support asynchronous file IO, so the functions behave like node.js's xxxxSync functions. Versions of the functions with 'Sync' after them are also provided for compatibility.
Currently this provides minimal file IO - it's great for logging and loading/saving settings, but not good for loading large amounts of data as you will soon fill your memory up.
It is currently only available on boards that contain an SD card slot, such as the Olimexino and the HY. It can not currently be added to boards that did not ship with a card slot.
To use this, you must type var fs = require('fs')
to get access to the library
function fs.appendFile(path,data)
Append the data to the given file, created a new file if it doesn't exist
NOTE: Espruino does not yet support Async file IO, so this function behaves like the 'Sync' version.
path The path of the file to write
data The data to write to the file
No return value (undefined)
function fs.appendFileSync(path,data)
Append the data to the given file, created a new file if it doesn't exist
path The path of the file to write
data The data to write to the file
No return value (undefined)
function fs.readFile(path)
Read all data from a file and return as a string
NOTE: Espruino does not yet support Async file IO, so this function behaves like the 'Sync' version.
path The path of the file to read
A string containing the contents of the file
function fs.readFileSync(path)
Read all data from a file and return as a string
path The path of the file to read
A string containing the contents of the file
function fs.readdir(path)
List all files in the supplied directory, returning them as an array of strings.
NOTE: Espruino does not yet support Async file IO, so this function behaves like the 'Sync' version.
path The path of the directory to list. If it is not supplied, '' is assumed, which will list the root directory
An array of filename strings
function fs.readdirSync(path)
List all files in the supplied directory, returning them as an array of strings.
path The path of the directory to list. If it is not supplied, '' is assumed, which will list the root directory
An array of filename strings
function fs.writeFile(path,data)
Write the data to the given file
NOTE: Espruino does not yet support Async file IO, so this function behaves like the 'Sync' version.
path The path of the file to write
data The data to write to the file
No return value (undefined)
function fs.writeFileSync(path,data)
Write the data to the given file
path The path of the file to write
data The data to write to the file
No return value (undefined)
This library allows you to create http servers and make http requests
NOTE: This is currently only available in the Raspberry Pi version
This is a cut-down version of node.js's library
Please see http://nodemanual.org/latest/nodejs_ref_guide/http.html
To use this, you must type var http = require('http')
to get access to the library
NOTE: The HTTP client + server send in ~8 byte chunks. This is normally fine but big servers - eg. Google will reject requests made like this (DDoS protection?)
function http.createServer(callback)
Create an HTTP Server
callback A function(req,res) that will be called when a connection is made
Returns a new httpSrv object
function http.get(options,callback)
Create an HTTP Request - convenience function for http.request()
. options.method is set to 'get', and end is called automatically
options An object containing host,port,path,method fields
callback A function(res) that will be called when a connection is made
Returns a new httpCRq object
function http.request(options,callback)
Create an HTTP Request - end() must be called on it to complete the operation
options An object containing host,port,path,method fields
callback A function(res) that will be called when a connection is made
Returns a new httpCRq object
The HTTP client request
function httpCRq.end(data)
Finish this HTTP request - optional data to append as an argument
data A string containing data to send
No return value (undefined)
function httpCRq.write(data)
data A string containing data to send
No return value (undefined)
The HTTP server response
function httpSRs.end(data)
data A string containing data to send
No return value (undefined)
function httpSRs.write(data)
data A string containing data to send
No return value (undefined)
function httpSRs.writeHead(statusCode,headers)
statusCode The HTTP status code
headers An object containing the headers
No return value (undefined)
The HTTP server created by http.createServer
function httpSrv.listen(port)
port The port to listen on
No return value (undefined)
This class contains information about Espruino itself
function process.env
Returns an Object containing various pre-defined variables. standard ones are BOARD, VERSION
No parameters
An object
function process.memory()
Run a Garbage Collection pass, and return an object containing information on memory usage.
free : Memory that is available to be used
usage : Memory that has been used
total : Total memory
history : Memory used for command history - that is freed if memory is low. Note that this is INCLUDED in the figure for 'free'.
On ARM, stackEndAddress is the address (that can be used with peek/poke/etc) of the END of the stack. The stack grows down, so unless you do a lot of recursion, the bytes above this can be used.
No parameters
Information about memory usage
function process.version
Returns the version of Espruino as a String
No parameters
The version of Espruino
This class helps to convert URLs into Objects of information ready for http.request/get
function url.parse(urlStr)
urlStr A URL to be parsed
An object containing options for http.request
or http.get