Let's Make Robots!

New Micro Magician V2

The new improved Micro Magician V2 is here! It has all the features you loved in the original Micro Magician but with an ATmega328P and improved power supply. The new black and yellow PCB looks great and is easier to read.

You can now download the manual from here: https://docs.google.com/open?id=0B__O096vyVYqUjNXVV9RMmFuNkk


  • Fully compatible with the Arduino IDE - board type: Arduino Pro or Arduino Pro Mini (3.3V, 8MHz) w/ ATmega328
  • ATmega328P processor running at 8MHz, 3.3V with 32K FLASH, 1K EEPROM and 2K SRAM
  • Input voltage from 3.6V to 9V
  • Built in LDO +5V, 1A regulator (input voltage must be at least 5.5V) to power external 5V devices
  • Built in LDO +3.3V, 500mA regulator 
  • Reverse polarity protection rated at 6A for protecting servos and motor driver IC
  • Reverse polarity protection rated at 3A for logic and other 3.3V devices
  • Built in USB using the CP2102 interface IC
  • Built in dual FET "H" bridge with current limiting, motor stall detection and electronic braking
  • Built in 3-axis accelerometer with 0G detection and selectable ±1.5G and ±6G ranges
  • Built in 38KHz IR receiver providing 128 virtual buttons when using the Sony IR protocol
  • 8x digital I/O pins terminated with 3 pin male header and selectable voltage for driving servos
  • 3 pin male headers on analog inputs to provide 3.3V power for sensors
  • 4 pin female communications header for 3.3V wireless transceivers (Xbee or Bluetooth)
  • ISP socket for bypassing the bootloader and programming the processor directly
  • Power, Rx, Tx, D13 and IR signal indication LEDs
  • Software library provides functions for IR decoding, angle / impact detection, DC motor and stepper motor control
  • Manual includes detailed information for library use and interfacing 5V devices

If you don't need the dual "H" bridge then you can put the motor driver into sleep mode and reuse D5, D6, D7 and D8 which have both male and female headers for easy interfacing.

The only pins not accessable are A0-A2 wich are dedicated to the accelerometer and D4 which is dedicated to the IR receiver.

Want More?
Rocket Brand Studios sell several robot kits designed to take this controller and has designed an Xbee shield for wireless uploads.

NOTE: 9V is the absolute maximum input voltage. Rechageable batteries can have an initial voltage higher than normal when freshly recharged. For example a 7.4V Lithium Ion battery will be 8.4V when fully charged.

The first video is of a QuadBot chassis being driven by the Micro Magician V2. It is powered by a single 3.7V, 900mAH Li-Ion battery the size of an AA battery.

The second video shows a robot arm I made for my son from K'nex parts and the Chinese copy LOZ. The main drive motors have just had the built in switch removed and are connected directly to the Micro Magician motor outputs.

The arm motors have all had circuits from dead servos installed to make them into continuous rotation servos. These just plug directly into the servo connectors on the Micro Magician.

The whole robot is powered by 4x AA NiMh batteries and controlled with a TV remote. Because I did not mount the controller in a good position to receive IR signals I used an external IR receiver on an Analog input and told the microM library to use that receiver instead of the built in receiver. It would also be possible to read the two receivers independantly.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I am new to making robots and recently built a tadpole from RBS with my daughter which has the micro magician v2.  Is there additional code I need to include other that the MicroM library example IR_receiver to make the robot move with a sony remote?  The two blue led's light up when the buttons are pushed on the remote but the robot does not move.  Thanks.

The  MicroM library example IR_receiver only displays what button was pressed on the serial monitor. It is not sample code for the Tadpole.

You need to write your own code to control the robot unless RBS offers some additional sample code.

Hi OddBot. Thanks for your good work!

You told user hardmouse that up to 8 servos can be run from the M.Magician, with up to about 6A current max. But in your instructable on the M.Magician, it says, "Larger servos can be used but the maximum current drawn by the servos should not exceed 3A otherwise the reverse polarity protection diode could be permanently damaged."

I want to use Micro Magician to control a robotic arm with:

  • 2 x Servo 5521MG, Stall torque: 17.25 kg/cm (4.8V), 20.32 kg/cm (6.0V). Stall current 2.5A @6V, working 1.5A-2A @6V
  • 4 x Servo MG996R, Stall torque: 13 kg/cm (4.8V), 15 kg/cm (6.0V), Stall current 2.5A @6V, working 500mA-900mA @6V

Do you think this will work, or, under load, would it cause damage to the board?

Thanks much!

The original Micro Magician (red PCB) had a lower current rating. The newer V2 board (yellow PCB) has a reverse polarity protection rating of 6A.

A lot depends on your application. Will all your servos be  under heavy load at the same time? As you have not explained any details about your robot it is impossible for me to answer your question.

Thanks so much for your input! 6A will probably suffice, as long as I don't use more than 4 fully loaded servos at the same time.

The plan is to use a 6DOF robotic arm which is 18" fully extended, and weighs about 2 lbs. Multiple servos will be under load and engaged simultaneously. M.Magician and the arm will be controlled by computer vision and MatLab, so the range of movement and load will vary according to tasks, such as sorting objects.

I started a page about the project here: http://letsmakerobots.com/blog/jrobot/matlab-micro-magician-control-robotic-arm

Thanks for your reply.

i whant use the code whith the robot controller micro magician V2 but the code samples  of doodlebot not load and have problems whith arduino V1 or superior but the robot magician V2 not connect whith arduno 22 or 23 which load the code, please you can help me please

sorry doble post

I have a robot that uses the ISP header for a sensor.  Everything works fine when the USB cable is connected.  I receive a 5V reading when testing between the 5V and Ground pins on the header.  When I disconnect the USB cable, the voltage drops to 0V.  With a bettery connected, I get voltage readings on the Analog pins (3.3V) and the Digital pins (Vin), but nothing between the ISP 5V and Ground pin.

Do you have any suggestions for what I need to do to get the ISP header working when only a battery is connected? 

As the Micro Magician is running at 3.3V it has some protection circuitry on the ISP header. This allows another Arduino to be used as an ISP programmer no matter if it is 3.3V or 5V. The Simplest solution is to power the sensor from the +5V output on the board.

Hi Oddbot,

Can I use it with 8 servos? Not small 9Gs but normal one like MG995 or HITEC servos? Do I need external battery for servos?