Open hardware

Everykeys board circuit Everykey device

What is it?

At a glance

The Everykey Board is a tiny prototyping and development board. It can be used to build USB peripherals, standalone applications or to simply have fun with a powerful embeded controller.

The board features a powerful 32-Bit, 72 MHz ARM Cortex M3 microcontroller, a full-speed USB port, a LED, a button and solder points for most of the processor's pins. The design of the board and the SDK we're developing is completely open source.

The board's processor has a built-in USB bootloader. By connecting two contacts while pluging in the board, it will show up as USB mass storage - just like a USB memory stick. You simply copy your application to the board. Re-programming takes moments. You don't need a USB-serial converter or other special tools. Additionally, this makes the board (almost) unbreakable - you can just reset it. You never have to worry about bricking your device by overwriting the bootloader, because it is in ROM.

Specifications (short version)

Board size24 x 24 mm
Processor architectureARM Cortex M3, 32 Bit
Processor speed72 MHz
Input voltage3.5V - 10V (powered via USB)
Operating voltage3.3V
Flash32 KB
Peripherals23 x digital IO, 10 bit ADC, 4 timers, PWM, USB, SPI, I2C, power management, flexible interrupt controller, many more goodies

In detail

Additionally, the board contains all components required for reliable operation: Voltage regulation, a 12 MHz Quartz, USB termination, USB soft-connect etc. The board has unpopulated pads for optional additional memory (SPI, 8-SIOC, 150 mil - for flash or EEPROM, for example).

Specifications (nerd version)

Board size24 x 24 x 4 mm
ProcessorNXP LPC1343 (48-LQFP)
Processor speed12 - 72 MHz (configurable at runtime)
Voltage regulation3.3V LDO from 3.5V-10V, up to 150 mA
Flash32 KB built-in, optional external flash or EEPROM on board (SOIC-8, 150 mil)
Power consumption18mA typical (active @72 MHz), down to <1µA in power-down modes
Digital in/out42 pins, 23 with breakout on board. Runtime-configurable pull-up and pull-down resistors, hysteresis, edge or level triggers
Analog in10 bit AD-converter, up to 8 input pins, up to 400K samples/s
Timers2 x 16 Bit, 2 x 32 Bit, Systick timer, Watchdog timer
PWM12 (up to 3 useful PWMs per timer)
Interrupts56 interrupts, 32 configurable priority levels, 10 exceptions, interrupt handlers reconfigurable at runtime
Power management4 levels: Active, sleep, deep sleep, deep power down. Configurable undervoltage detection
Serial protocols1 x I2C (standard, fast-mode, fast-mode plus), 1 x SSP (with SPI mode), 1 x UART with RS-485 support, USB full-speed
ProgrammingISP and IAP via serial port or USB (on-chip bootloader)
Breakouts23 x GPIO (PIO0_1-2, PIO0_4-11, PIO1_0-7, PIO2_0-3, PIO2_11), input voltage, regulated voltage, GND

Comparison with Arduino

First of all: We like Arduinos. There's no reason to be ashamed to use them :) -- they are open, easy to use and fun. And there's a great community around them. However, they are not the only option. You might be interested in what else is out there, curious about how things work on a different architechture. And if you have reached the limits of its ATMEGA processor, you might want to take the next step. We're a lot like the Arduino, only better.

There are a few annoying things about ATMEGAs that Cortex M3 can solve. Here's a short, incomplete list:

Arduinos typically work at 20 MHz. That's the processor limit - and there's no higher clock alternative in that processor family. The LPC1343 works at up to 72 MHz. Most instructions finish within one clock cycle. Some take longer, but since some instructions can do more than one thing at a time, the processor performs at 1.25 DMIPS/MHz (Dhrystone benchmark rated millions of instructions per second, per megahertz), resulting in up to 90 MIPS.
Processor Architecture
In contrast to ATMEGA's 8 bit architecture, The LPC1343 is a true 32 bit processor. This means it performs calculations on more data in a single processor cycle, increasing processing speed.
More RAM
8KB instead of 2KB. Need to say more?
The Everykey board is much smaller than the standard Arduino boards, half the size of an Arduino Nano and even smaller than the Arduino Mini. Yet, it has more power.
Bang per watt
Cortex M3 processors archieve more MIPS/mW (millions of instructions per second per milliwatt) than AVR processors. So if you're designing for low power, have a look.
Hardware division
Cortex M3 features both multiplication and division in hardware. ATMEGA needs to divide in software, which is, as you might have guessed, slow.
Input pull-downs
ATMEGA's input pins have integrated pull-up resistors, controllable by software. That's good. The LPC1343 also has them, but in addition, there are software-controlled pull-downs. You can even configure them in repeater mode (pull-up if the input is high, pull-down if it is low). More fun, less external components.
USB support
The LPC1343 has built-in full-speed USB, so you can throw away your USB-to-serial converter. And additional FTDI chips on the board aren't necessary
Bootloader in ROM
The processor has a built-in USB bootloader, so you don't need to pre-program your processors. They work right out of the box. Loading your programs via USB is simple, fast and reliable.
More I/Os, timers, PWMs, interrupts, peripherals
Whatever you look at, there are more resources on board.
Freedom of choice
The Cortex M3 is built by many different manufacturers, so if you want to stick to the architecture but don't like the manufacturer, you have many options to choose from.

Have no fear...

Many people think that there's no other platform even remotely as easy to learn as Arduino. Yes, they are easy to learn. Our board is usually programmed in C, which might be slightly more complex than the Arduino platform in its simplest form, but it's really not that hard. Have a look at our examples.

Similarly, most people believe that soldering fine pitch components is not possible for ordinary humans and therefore they are stuck with bulky, DIP packages ( through hole components are soooooo 20th century *rollseyes*). Fortunately, most people are wrong. It takes a bit more patience, but once you learn how, you can solder them by hand with an ordinary soldering iron. We do it every day. And we have shown people with no experience soldering how to do it in our workshops. All of them had a self-assembled, working board in the end. And all of them had fun. We currently assemble and solder the pre-made boards by hand. Learn how to do it, don't be afraid. You will be rewarded with many new options.

... more coming soon.