About Curuxa

From Curuxa

Curuxa (pronounced something like koo-roo-sha) is an open source electronics and robotics modular educative prototyping platform. It consists in a collection of tutorials, software libraries, tools ((1), (2)), electronic boards and Modules that can be connected to each other, and full open-sourced Applications/full devices showing how you can build complex devices using these boards and modules.

Curuxa Main Boards and Modules can be used for prototyping or implementing fast and easily any kind of electronic device, robots, domotic applications... and is also intended to be used in classes and workshops for educative purposes.

All electronic circuits are intended to be built at home using basic and cheap tools (soldering iron, scissors, microcontroller programmer...). All source code can be compiled on any common operating system (Windows, Linux, Mac OS X, BSD...) using free software compilers (they are open source and can be downloaded/installed/used at no cost). All mechanical parts can be bought at common stores by little money or built at home using simple tools (screwdriver, drill, saw/jigsaw, hammer...).

Main Boards

MBP40, one of the Main Boards

Main Boards are electronic circuits built with perfboards or PCBs which contain a microcontroller, a connector for programming the microcontroller, and a bunch of headers for plugging Modules to the Main Board.

Microcontrollers used in Main Boards are chosen so you can use them in as many different applications as possible. Also, they usually contain at least one I²C connector for communicating with other Main Boards, Modules or devices.

All connectors used in all Main Boards and Modules are standarized, so all Main Boards can communicate with each other and all Modules can be connected to any Main Board.

Main Boards usually can't program themselves. This is a waste of money, time and space when you start building more than one Main Board. Instead, all Main Boards are as small and simple as possible. You need to build or buy a programmer, but you can use the same one for programming all Main Boards.


Curuxa Modules are electronic devices or circuits designed for being connected to a Main Board and give it a specific functionality. Examples include switches, LEDs, distance meters, motor controllers, remote control receivers, USB transceivers, color sensors, tactile switches, voltage regulators, speakers...

All Modules can be connected to almost any Main Board (as long as there are enough input/outputs available), but some Modules require to be connected to "special" features of the microcontroller, such as ADC, UART, I2C, SPI... All microcontrollers used in Main Boards have been chosen so they contain as many of these feature as possible, but keeping them cheap and easy to find.



Tutorials are (usually) simple texts explaining basic electronics, programming or mechanics topics. They are very useful for understanding how Main Boards and Modules work and how they can be used.


Applications are full devices built using Main Boards and one or multiple Modules. They are published by the Curuxa Community of users and usually include schematics, pictures, source code, diagrams, bills of materials and much more information about each project/application.

Sample Applications developed by Curuxa users:

Manu-fakture Octapas KETJO


Curuxa IDE

Simple, easy to use, multiplatform integrated development environment useful for writing and programming your circuits fast and easily.

Curuxa IDE allows you to write code, compile it, burn the binary file to the microcontroller and power up the circuit with a single key press.

Command-Line Tools

If you prefer to develop your programs using the command line instead of a graphical interface such as Curuxa IDE, you can compile, burn your programs into the microcontroller, run and stop your circuits from the command-line using these tools.


Curuxa installer also includes a set of libraries written in C language which help you write your own programs faster. They provide a series of macros/language extensions to simplify development plus a set of functions which automatically configure specific parts of your microcontroller so you don't have to spend so much time reading the microcontroller datasheet trying to do it by yourself.


Curuxa is an open source hardware project. Unless otherwise specified, the following licenses apply:

All text (documentation, tutorials, explanations...), images (pictures, schematics, diagrams...) and videos are licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

All source code is licensed under a GNU General Public License 3.0.

This means you can freely download, modify and publish all Curuxa contents for personal use, as long as you give the proper attribution to the author, share your modifications under the same licenses, and you don't earn any money with it. If you want to use anything for commercial purposes you should contact us.