Original Espruino Board

Espruino Board

Buy Now

From £20.83

Or £15 in volume

Espruino Shop
🌎 Distributors

The Espruino Board is a tiny USB-enabled microcontroller with SD card that can be programmed in JavaScript

Just plug it into your computer and get started in seconds with the Web IDE - no software installation needed!

Just got your Espruino Board? Get started here!

Contents

Features

  • Less than half the size of a business card ( 54mm x 41mm )
  • STM32F103RCT6 32-bit 72MHz ARM Cortex M3 CPU
  • 256KB of Flash memory, 48KB of RAM
  • Micro USB connector
  • Input Voltage Range of 3.6v to 15v
  • Battery connector (JST PHR-2 2 Pin)
  • Built-in SD card connector
  • Red, Green and Blue LEDs
  • Pads to allow HC-05 Bluetooth modules to be added
  • 0.1" Pin spacing
  • 44 GPIO Pins, capable of: 26 PWM Pins, 16 ADC Pins, 3 USARTs, 2 SPI, 2 I2C and 2 DACs
  • Prototype area which can be used in many different configurations, for example: Servo Headers, Up to 14x 500mA outputs, 2x .NET Gadgeteer connectors, or NRF24L01+ wireless transceiver modules
  • Rev 1v4: CE and RoHS certification

Pinout

Hover the mouse over a pin function for more information. Clicking in a function will tell you how to use it in Espruino.

  • Purple boxes show pins that are used for other functionality on the board. You should avoid using these unless you know that the marked device is not used.
  • ! boxes contain extra information about the pin. Hover your mouse over them to see it.
  • 3.3v boxes mark pins that are not 5v tolerant (they only take inputs from 0 - 3.3v, not 0 - 5v).
  • 3.3 is a 3.3v output from the on-board Voltage regulator.
  • GND is ground (0v).
  • VBAT is the battery voltage output (see the Espruino Board Reference).
  • ADC is an Analog to Digital Converter (for reading analog voltages)
  • DAC is a Digital to Analog Converter (for creating analog voltages). This is not available on all boards.
  • PWM is for Pulse Width Modulation. This creates analog voltages from a digital output by sending a series of pulses.
  • SPI is the 3 wire Serial Peripheral Interface.
  • USART is a 2 wire peripheral for Serial Data.
  • I2C is the 2 wire Inter-Integrated Circuit bus.
  • CAN is for the Controller Area Network. It is not supported by Espruino.
BOOT1 B2
PWM SPI1 SCK SPI3 SCK B3
PWM SPI1 MISO SPI3 MISO ! B4
PWM SPI1 MOSI SPI3 MOSI 3.3v ! B5
I2C1 SCL PWM USART1 TX B6
I2C1 SDA PWM USART1 RX B7
CAN I2C1 SCL PWM B8
CAN I2C1 SDA PWM B9
BTN1 USART3 CK B12
UART5 TX USART3 CK C12
OSC RTC 3.3v C15
ADC 3.3v C0
ADC 3.3v C1
ADC 3.3v C2
ADC 3.3v C3
ADC PWM 3.3v A0
ADC PWM 3.3v A1
3.3
VBAT
GND
A2 3.3v ADC PWM USART2 TX
A3 3.3v ADC PWM USART2 RX
A4 3.3v ADC DAC USART2 CK
A5 3.3v ADC DAC SPI1 SCK
A6 3.3v ADC PWM SPI1 MISO
A7 3.3v ADC PWM SPI1 MOSI
B0 3.3v ADC PWM
B1 3.3v ADC PWM
B10 I2C2 SCL PWM USART3 TX
B11 I2C2 SDA PWM USART3 RX

Pins not on connectors

A11 CAN USB PWM
A12 CAN USB
C13 3.3v USB
C14 3.3v OSC RTC
D0 CAN OSC
D1 CAN OSC
D2 SD CARD UART5 RX

Layout

Revision 1.4

Espruino Board

Revision 1.3

Espruino Board

Name Function
General Purpose IO Pins See the pinout above for more information about the functionality of these
Status LEDs Red, Green and Blue lights, controllable from Espruino. Access these using the pin names LED1 (red), LED2 (green) and LED3 (blue)
Buttons Below SMD prototype area. Reset button (left) and general purpose button (right). Access this using the pin name BTN
SMD Prototype Area Area that allows you to solder SMD Integrated Circuits such as (ULN2003) and (L293D)
Battery Battery connector, allows any voltage from 3.6v to 15v
Bluetooth Pads for mounting a Bluetooth module
Power Gnd, 3.3v and Battery power pins (see below)
Micro SD A connector for FAT32 formatted Micro SD cards
USB A Micro SD USB connector, for programming and powering Espruino
#1 (r1.3 only) Unpopulated pads for 32kHz crystal. Without this, Espruino will use its internal RC oscillator for timekeeping, which is only accurate to 1-2%. (r1.4 has a 32k crystal preinstalled)
#2 Pin Headers. Each horizontal pair pins in this 2 x 13 area of pins is connected together, so you can solder on a single line of pin header and can then wire from the Prototype area to the other side
#3 cut the shorted link on the right-hand side, solder over the left-hand side, solder a 10k resistor to R17 and you can then use the RST button as a second general purpose button on pin C12
#4 (r1.3 only) An unpopulated resistor that can trickle-charge a battery when fitted (if the battery is less than 4.3v). See the Battery page for more information - only fit this if you're absolutely sure that your battery type can handle it.
#5 (r1.4 only) An unpopulated area for a MAX1551 LiPo charger IC

Information

Tutorials

Links to tutorials that you can do using just the Espruino board:

Tutorials using the Espruino Board:

Power

Espruino has 3 ways of powering it - a JST PHR-2 Battery connector, Micro USB, or pin headers.

Both the Micro USB and Battery connector can power the device (and pin headers), and the source of power will be automatically switched. If you power Espruino via the Pin Headers, do not plug a battery in, and do not plug in USB unless you are powering it with 5v or more.

If you wish to power Espruino from mains, we'd suggest using a Micro USB phone charger. This are widely available as the majority of mobile phones (with the exception of iPhones and low-end Nokias) now use them.

Charge Circuit

In order to protect the Espruino board (and what it is connected to), a 1000mA thermal (self-resetting) fuse is on the board between the pins marked 'Bat' on the board and the power source (USB/Battery).

See Connecting Batteries below for information on connecting Batteries.

Note: On rev 1v3 the voltage regulator draws 80uA, which makes up the majority of the 110uA power draw when sleeping. rev 1v4 has a much more efficient regulator, which allows a power draw of just 30uA.

Connecting

NOTE: The Espruino board has no case and so the USB connector is completely unsupported. This means it is relatively delicate (especially on rev 1v3 boards) and needs to be treated carefully. Try and pull the connector straight out, and do not push down on the board when the connector is inserted, or try and move the board around using the cable.

Pin Strip

There's a Pin Strip page covering how to solder Pin Strip onto the Espruino Board

Batteries

You can usually buy batteries with the PH-type 2 pin female JST (PHR-2) connector ready-soldered, see Battery for more details on battries and connectors.

Servo Motors

See the Pin Strip page for ideas on how to connect servos, and the Servo Motors page on how to control them.

Motor Drivers

To drive motors there are two good options - both of which solder on to the prototype area (which is designed for SOIC-style chips). The surface mount versions of these will require some soldering skills, so if you only need to turn motors on and off (and not drive them at different speeds) then a Relay Module might be easier.

L293D

The L293D is slightly more expensive, but has four outputs, each of which can pull up to a voltage as well as down to 0v. This makes it ideal for driving motors in forwards and reverse, as each side of the motor can be connected to an output.

ULN2003

The ULN2003 has 7 x 500mA outputs, but they can only pull down to 0v. This makes it great for powering relays, solenoids and stepper motors - but only useful for motors if you only need them to run in a single direction.

Bluetooth

Espruino is designed for HC-05 modules. Have a look at the Bluetooth page for more information.

Known Problems

  • PWM output (via analogWrite) on B4 and A6 at the same time is not possible (as they share timer hardware)
  • You can't setWatch on two pins with the same number (eg. A5 and C5) - this is a limitation of the STM32F1
  • You can't use setWatch on B11/C11/D11 and enable setDeepSleep, as A11 is watched in order to wake when USB is plugged in
  • The USB bootloader as shipped on Espruino KickStarter boards requires the APB1 clock frequency to be changed before it will work reliably. This is automatically handled by the Web IDE's flasher (diff), and also Espruino's version of stm32loader.py if you supply the -k switch.

Troubleshooting

Please see the Troubleshooting section.

Firmware Updates

We'd strongly recommend that you use the Web IDE to update the firmware on this board - please see the Firmware Update page for detailed instructions.

If you do manage to erase all your board's flash memory you can use the on-chip bootloader though - see below.

Advanced Reflashing

If you're developing and you want to completely rewrite the bootloader, you can wire up the Espruino board to a USB-TTL convertor as follows:

USB-TTL Name Espruino Pin
5V 5V VBAT
GND GND GND
TX USART1_RX A10
RX USART1_TX A9
- BOOT0 - 3.3V BOOT0
GND BOOT1 - 0V B2

Note: BOOT0 is in a group of two pins (RST and BOOT0) in the middle of the top edge of the board.

Then, dab reset to enter bootloader mode and use the STM32 flasher utility to flash the STM32 chip.

You might also want to see the Advanced Debug page for details on how to debug the Espruino Interpreter using an ST-link debugger.

Other Official Espruino Boards

This page is auto-generated from GitHub. If you see any mistakes or have suggestions, please let us know.