About

The Calliope mini is a pocket-size computer) with a 5x5 display of 25 LEDs, Bluetooth and sensors that can be programmed by anyone.

The Calliope mini provides an easy and fun introduction to programming and making ??? switch on, program it to do something fun ??? wear it, customize it. Just like Arduino, the Calliope mini can additionally be connected to and interact with sensors, displays, and other devices.

Hardware: The Device

The Calliope mini is packaged with sensors, radio and other goodies. Learn about the hardware components) of the Calliope mini to make the most of it!

Looking to buy a Calliope mini? See the list of resellers.

Programming: Blocks or JavaScript

You can program the Calliope mini using Blocks or JavaScript in your web browser via the Calliope mini APIs:

input.onButtonEvent(Button.A, input.buttonEventValue(ButtonEvent.Down), () => {
    basic.showString("Hi!");
})
input.onButtonEvent(Button.A, input.buttonEventValue(ButtonEvent.Down), () => {
    basic.showString("Hi!");
})

The editor work in most modern browsers, work offline once loaded and do not require any installation.

Compile and Flash: Your Program!

When you have your code ready, you connect your Calliope mini to a computer via a USB cable, so it appears as a mounted drive (named MINI). If you are using the Calliope mini REV2 you also see another drive (FLASH).

Compilation to ARM thumb machine code from Blocks or JavaScript happens in the browser. You save the ARM binary program to a file, which you then copy to the Calliope mini drive, which flashes the Calliope mini device with the new program.

Simulator: Test Your Code

You can run your code using the Calliope mini simulator, all within the confines of a web browser. The simulator has support for the LED screen, buttons, as well as compass, accelerometer, and digital I/O pins.

basic.forever(() => {
  basic.showString("Hi!");
})
input.onButtonEvent(Button.A, input.buttonEventValue(ButtonEvent.Down), () => {
    led.stopAnimation();
    basic.showLeds(`
. . . . .
. # . # .
. . . . .
# . . . #
. # # # .`);
});
input.onButtonEvent(Button.B, input.buttonEventValue(ButtonEvent.Down), () => {
    led.stopAnimation();
    basic.showLeds(`
. # . # .
# . # . #
# . . . #
. # . # .
. . # . .`);
});

Learn!

We have tons of projects and examples to get your started!

C++ Runtime

The C++ Calliope mini runtime, created at Lancaster University, provides access to the hardware functions of the Calliope mini, as well as a set of helper functions (such as displaying a number/image/string on the LED screen).

The Calliope mini library mirrors the functions of the C++ library. When code is compiled to ARM machine code, the calls to JavaScript Calliope mini functions are replaced with calls to the corresponding C++ functions.

Command Line Tools

Looking to use https://makecode.calliope.cc/ in your favorite editor? Install the command line tools and get rolling!

Extensions

Create, edit and distribute your own blocks and JavaScript using extensions. Extensions are hosted on GitHub and may be written using C++, JavaScript and/or ARM thumb.

Open Source

The code for the Calliope mini is open source on GitHub. Contributors are welcome!

radio