Pluto Logo

by Drona Aviation

Profile
Menu

Your first drone program
starts with blocks.

Drag, connect and fly. Your blocks become the firmware your Pluto runs, with no syntax to learn before your first project and the C++ right there when you want it.

Version 5.0.0 · Windows 10+ · macOS 11+ on Apple Silicon · Free

No coding experience

Start with visual logic

Real hardware output

Compiles and flashes firmware

Beginner to missions

Guides, videos and projects

Pluto 1.2 and Pluto X

PrimusX, V5 and PrimusX2

Try it first

Build your first Pluto program, right in your browser.

A real program, already on the canvas: take off, blink while it hovers, land. Change it, open the Code View to see the C++ it becomes, and compile it. This is the same Blockly the desktop app is built on, running the app's own blocks, so what you read there is the file the compiler takes.

Arm the drone first

Running this firmware from Pluto Controller, arm the drone before you press the Dev button. Developer Mode only starts on an armed drone, so pressing Dev first looks exactly like a program that does not work.

on start

Runs once when Developer Mode is switched on. Set your starting colours here.

pluto loop

Runs every LoopTime milliseconds. A TOGGLE in here is what makes an LED blink.

on stop

Runs once when Developer Mode is switched off. Clean up here.

New to PlutoBlocks?

Go from download to your first result.

One path instead of a scattered hunt across downloads, guides and videos. Start with a visible LED project, then move into flight when the workflow is second nature.

Install PlutoBlocks

Download the desktop build for your machine and launch it. No account is needed to open the editor.

Pick your flight controller

Choose PrimusX, Primus V5 or PrimusX2. The block palette and the generated code follow that choice.

Arrange the blocks

Snap blocks into on start, pluto loop and on stop. Those three hooks are your whole program.

Build and flash

Build compiles your blocks to firmware. Flash writes it to the drone over USB. Then fly it.

Features

What PlutoBlocks
does.

Your account, your saved projects, the board you are writing for, the compiler, the flasher and the live monitor. Every picture below is the app's own interface.

The PlutoBlocks editor with its block categories down the left and a pluto loop that reads GPIO_1 and sets GPIO_2 high
BLOCKS

Program with Drone-Specific Blocks

Flight, LEDs, sensors, motors, peripherals, logic and variables.

Code View showing the C++ for on start, pluto loop and on stop, each setting an LED
CODE VIEW

See the Real C++

Open Code View to see exactly what your blocks generate.

The flight controller chooser, offering Primus X / V4, Primus V5 and Primus X2
HARDWARE

Choose Your Flight Controller

The blocks and generated code adapt to PrimusX, Primus V5 or PrimusX2.

The Build Successful and Flash Successful dialogs side by side
BUILD AND FLASH

Build and Flash Firmware

Compile locally and transfer the program to your Pluto.

The Pluto Monitor panel, with a refresh control and a CSV export button
MONITOR

Monitor Live Drone Data

Read printed values and export monitor data as CSV.

The My Projects screen with Sync to Cloud, Import and Sort, a New Project tile, and saved projects tagged PrimusX2
PROJECTS

Save, Sync and Share Projects

Save locally, sync through your account, import projects and export firmware.

Project journey

Start small. Build towards real missions.

Each project turns a programming concept into a drone doing something. Lights and movement first, then sensors, accessories and logic of your own.

on startBLUEONpluto loopREDTOGGLE
StarterLED · Timing

LED Blink

One block inside the loop, flipping every 100 ms. The smallest program that proves the whole chain works, from your blocks to a light on the drone.

You learn: Sequence, loop time, and what "runs every pass" really means.

Learn to Build
on startprintDeveloper Mode onpluto loopprintrunningon stopprintDeveloper Mode off
StarterConsole · Debugging

Pluto Monitor

Print a line from each lifecycle hook, then build it and run it in PlutoBlocks on your computer with Show Monitor open. Watching those lines arrive is how you find out what a program is really doing.

You learn: Reading the drone back through the monitor, and the habit you reach for when a program misbehaves.

Learn to Build
pluto loopifCurrent Yaw0 to 60REDONBLUEOFF
IntermediateYaw · LED

Color Wheel

Six ranges of yaw angle, each lighting a different combination of the red, green and blue LEDs. Turn the drone in your hands and it mixes primaries into secondaries as it goes. Nothing arms and nothing flies.

You learn: Chained conditions, reading the magnetometer, and mapping a continuous angle onto discrete states.

Read in the project book
on startsetTimer1 · 3000mspluto loopcheckTimer1desired yawYaw + 90
IntermediateTimer · Heading

Compass Drone

A three second timer walks the desired yaw round by ninety degrees at a time, and the LEDs name the direction it settles on. Once the magnetometer is calibrated, zero degrees really is north.

You learn: Repeating timers, the difference between desired and current angle, and turning a sensor reading into a direction.

Read in the project book
pluto loopLoopTime 30ifCurrent Roll< -3REDTOGGLEGREENOFF
IntermediateRoll · Logic

Spirit Level

Tip it one way and the red LED blinks, tip it the other and the green one does, and a roll angle within three degrees of flat holds all three steady. A 30 ms loop time is what sets the blink rate.

You learn: Thresholds on a live angle, and loop time used deliberately as a tempo rather than left at its default.

Read in the project book
setPrevious Pressurepluto loopifabsolutePrev - Current > 8take off150 cm
AdvancedBarometer · Flight

Open Sesame

The barometer is sampled every pass and held against a smoothed average of itself. Blow across the drone, the pressure jumps past the threshold, and it takes off. It replaces the Take Off button in the controller app, though you still arm the drone first.

You learn: Sampling a noisy sensor, keeping a running average, and triggering real flight from a spike.

Read in the project book
pluto loopsetphoneYawGet App Headingdesired yawphoneYawSet Pitch1470
AdvancedHeading · Navigation

One Key Return

The controller app streams the phone's heading, the drone compares it with its own, yaws until the two agree and then pitches forward. A return to pilot with no GPS anywhere in it.

You learn: Variables and a flag, closing a loop between two headings, and commanding pitch on a drone in the air.

Read in the project book
on startsetTimer1 · 1000mspluto loopcheckTimer1Set PinGPIO_1 · HIGH
AdvancedGPIO · Add-on

Hooter Module

The Hooter Module is a buzzer add-on. It plugs into the RC port, GND to GND and signal to VCC, and GPIO_1 drives it: the pin starts low, a one second timer flips it high and back, and the drone beeps. The first project here that adds hardware to the drone.

You learn: Driving an add-on over a GPIO pin, and using a repeating timer as the clock that paces it.

Read in the project book

Project book

Thirteen more projects, written up block by block.

Six of the projects above come from the book, which opens each one with the challenge, then shows the program that solves it and the reason it works. Nine of the thirteen left are basics, one idea at a time. The rest carry on past where this ladder stops.

  • Truth or Dare
  • Chuck to Arm
  • Gyroscopic Drone
  • Logic Drone
Open the project book

Compatibility

Will it work with my Pluto?

Pick the drone you own when you create a project. The flight controller name is shown alongside it so you can confirm you chose the right one before you build.

Not sure which version you have? Contact support
Pluto 1.2 drone
SUPPORTED

Pluto 1.2

Beginner-friendly DIY nano drone

PrimusX flight controller

Pluto X drone
SUPPORTED

Pluto X

Camera and expansion-ready drone

PrimusX2 flight controller

Common questions

Know before you download.

Do I need coding experience?+

No. PlutoBlocks is drag and drop, so you meet sequence, conditions, loops and variables as things that happen to a drone rather than as syntax to memorise. The C++ is always visible in Code View when you are ready for it.

Which drones does it support?+

Pluto 1.2 and Pluto X, across the PrimusX, Primus V5 and PrimusX2 flight controllers. You choose the board when you create a project and the palette adapts to it.

What should I build first?+

LED Blink, the project in the sandbox above. It gives you a result you can see across the room without ever spinning a motor, which makes it the safest place to learn the workflow.

Where do I get help?+

Start with the setup course and the project book. If you are still stuck, contact Drona Aviation support and tell us which flight controller you have.

Start building

Your idea can fly.

You have already built the first project. Download PlutoBlocks to unlock the other fourteen block categories, save your work, and flash it onto a drone that is sitting in front of you.