Skip to content

Latest commit



197 lines (128 loc) · 9.54 KB

File metadata and controls

197 lines (128 loc) · 9.54 KB

Original Espruino Board

⚠️ Please view the correctly rendered version of this page at Links, lists, videos, search, and other features will not work correctly when viewed on GitHub ⚠️

  • KEYWORDS: Espruino,Official Board,Original,Board,PCB,Pinout

Espruino Board

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!




  • 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




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



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

  • APPEND_USES: Only Espruino Board

Tutorials using the Espruino Board:

  • APPEND_USES: Espruino Board


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.


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


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.


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.


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.


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 if you supply the -k switch.


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
- BOOT0 - 3.3V BOOT0

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

  • APPEND_KEYWORD: Official Board