Simple IoT Development

The Esquilo system makes creating Internet-enabled devices easy.

Create IoT devices in no time flat

Esquilo simplifies Internet of Things (IoT) development so you can go from out-of-the-box to Internet-accessible in minutes.


Esquilo's built-in, full-featured development environment is what makes coding IoT applications so easy. It runs in a browser and supports remote debugging.


The Web IDE is fully contained in flash on-board and served by your Esquilo directly. No cloud required.

Source Debugger

Debug programs from your browser with all the bells and whistles you expect: breakpoints, stepping, watches, call stack, etc.

Run Commands

Get shell-like access to your device. Code typed into the line input at the bottom of the screen is remotely executed on the Esquilo - very handy for tinkering, debugging, and updating programs on-the-fly.


Access the Web IDE from anywhere through the cloud. The cloud also provides remote storage for code and data that is shared across your devices.

Everything's built-in

We put everything needed to develop, execute, debug, and access IoT applications on Esquilo in its firmware. This allows the board to run stand-alone, with no external dependencies. That means you can access applications and the development environment from a browser connected directly to the Esquilo. None of this requires the cloud.


Everything you can do while directly connected to an Esquilo, you can do through our cloud site, the Esquilo Nest. The Nest also lets you easily access and manage all your Esquilos and provides remote code and data storage that is shared across your devices. And rest assured, all cloud traffic is sent through a secure tunnel, encrypted with on-board hardware acceleration. The tunnel supports forwarding of any protocol, making Esquilo adaptable to the rapidly-evolving IoT space.

Easy Wi-Fi

Wi-Fi is everywhere, so Esquilo has an integrated 802.11n interface. And getting connected is trivial. Just do a simpe one-time setup using any web browser and Esquilo is on your local network and the Internet.

Squirrel inside

Esquilo embedded applications are written in Squirrel, an object-oriented programing language with a syntax very similar to JavaScript and C - so you'll feel right at home. It's dynamic, so there's no pesky compilation step, allowing you to tinker and debug in real-time. But it's also light-weight, to avoid the bloat and overhead that comes with other dynamic languages, like JavaScript and Python. Another advantage is that Squirrel code runs in an isolated virtual machine. This means that coding errors won't lock up your board. Esquilo also includes a rich set of standard libraries that provide easy access to hardware.

Web outside

Esquilos provide a simple, RESTful HTTP API, so building connected applications is easy. Each Esquilo has an embedded web server so you can code and serve complete web applications written in JavaScript, HTML, and CSS. These apps are running in your browser, so all the latest and greatest client-side libraries (Bootstrap, Angular, jQuery, etc.) are at your disposal. And because the API calls are standard HTTP GET and POSTs, you can use other languages and your favorite web tools to develop and debug apps.

Esquilo RPC

Esquilo RPC makes calling embedded logic from your web apps simple. It dynamically binds functions defined in the embedded Squirrel code by name and exposes them as remote procedure calls through the HTTP API. No other declarations or mappings are needed. Just write a function in Squirrel and call it from your web app with standard HTTP GET and POST requests. Parameters and return values are JSON-encoded for transparent JavaScript access. The adjacent example shows how easy it is to read a temperature sensor over the I2C bus and update your web app with the results.

Hardware specs

Everything you need to get the job done.

ARM Cortex M4F

  • 120 MHz
  • 1MB flash
  • 256KB SRAM
  • Hardware encryption and floating-point

Peripherals and I/O

  • 2 x SPI, 2 x I2C, 5 x UART, 1 x CAN
  • 46 digital I/Os (5V tolerant)
  • 18 PWM outputs
  • Quadrature digital input
  • 16 x 16-bit analog inputs
  • 12-bit analog output
  • Precision voltage reference
  • Analog comparator


  • 802.11b/g/n
  • WPA/WPA2 Security


  • Arduino UNO R3 shields (3.3V & 5V tolerant)
  • 40-pin Esquilo shell expansion


  • 6-17V DC power input
  • 5V via micro-USB
  • Outputs 5V @ 1.5A & 3.3V @ 1A


  • Micro-USB
  • Micro-SD (up to 32 GB)
  • Voltage / Network / Status LEDs

Sign up for updates