MagicShifter 3000

The MagicShifter 3000 is an open source hardware gadget for RGB lighting, gaming and POV (persistence of vision) applications.

Similar projects worth following
The MagicShifter 3000 is an open source hardware gadget for RGB lighting, gaming and POV (persistence of vision) applications.

By combining its accelerometer with 16 bright RGB LEDs you can draw images “into the air”.

It’s only 10cm long and super slim so it fits in every pocket.

WOW!!! The MagicShifter got featured in the hackaday blog:

Thanks! :)

WHAT’S NEW in MagicShifter 3000:

  • CONTROL it via WiFi, from your mobile phone and computer, or use it as a standalone magic lamp to create amazing shadow and lighting effects.
    The POV images are created by simply shaking the device.
    In contrast to other POV gadgets, the image is stabilized with the accelerometer data and displays the image in both directions.
  • Use the NEW WEB INTERFACE (hosted on the device itself) to upload, paint and share your images, connect with other users to get their art or change the settings. Although it’s an IoT (internet of things) gadget all it’s functions can be accessed offline as well.

The integrated LiPo battery can be charged via USB and provides hours of connected lighting fun.

The firmware is open source and based on the Arduino project so you can easily reprogram and test your own ideas.
If anything goes wrong you can always reflash our official firmware.

MagicShifter 3000 has a very robust hardware design.
You can not damage the electronics by incorrect user code.
All pins are protected against short circuit conditions that could be generated in software.
Let the experiments start!

List of features

  • Fully assembled and tested PCB 99x24mm
  • ESP8266 32-Bit/80MHz Microcontroller with integrated WiFi
  • 16 bright RGB LEDs
  • 3-Axis Accelerometer
  • 3-Axis Magnetometer/Compass
  • 4MB Flash Memory
  • 400mAh LiPo rechargeable via USB
  • 3x Buttons
  • Programmable via USB Serial and WiFi Interface
  • AGPL licensed firmware & web frontend
  • CC BY-NC licensed hardware design
  • 3D printed case 103x27x13mm

find out more at the MagicShifter homepage:


The complete schematic of the unit we sell :)

Adobe Portable Document Format - 50.30 kB - 08/21/2016 at 18:38



wiring details

Portable Network Graphics (PNG) - 248.18 kB - 08/21/2016 at 18:38


JPEG Image - 111.03 kB - 05/14/2016 at 21:35


JPEG Image - 1.75 MB - 05/14/2016 at 21:36


JPEG Image - 1.36 MB - 05/14/2016 at 21:36


View all 9 files

  • 1 × ESP8266 / ESP-12F Used as MCU, Programmed in C++
  • 16 × Superleds Square Taiwanese Superleds (APA102)
  • 1 × MCP73831 Lipo Charger
  • 1 × CP2102-GMR USB/ Serial Converter
  • 1 × NXP FXOS8700CQ Accelerometer + Magentometer

View all 7 components

  • The Flash button story

    overflo08/22/2016 at 21:14 0 comments

    I wanted to add one technical detail about the buttons on the MS 3000 and the way the ESP8266 bootloader works:

    So there is this GPIO0 pin on the ESP that you have to pull down during bootup to activate the bootloader.

    It just makes sense to place a button on GPIO0 because you need a way to controll the bootloader and since we only have so few pins on the ESP we also want to use it to interact with the user and call this button "B".

    This create a nasty problem.

    The user might accidentally press the "B" button while turning the MagicShifter on.
    This will activate the bootloader and the MagicShifter awaits a new firmware.
    For the user it looks like it has crashed :(
    So we either hide the button from the user (and waste a pin :| ) or we find a solution to detect the bootloader state in hardware!

    The ESP tells us that it's in bootloader state by emmitting a high frequency pwm on GPIO0.
    We can easily detect this very reliably with a filter (it only cost 10 cents in production).
    If (and only if) the bootloader state is activated we wire the second user button "A" to the Reset input via a FET controlled by the bootloader state signal from the filter.
    As a side effect we get a status LED that shows the bootloader state for free.

    When the shifter looks crashed the "dummy" user response would be to just press all buttons.
    As soon as the user presses button A she triggers a reset.
    This time chances are hight that "B" was not also accidentally pressed so it will boot up normally.

  • A long journey..

    overflo07/16/2016 at 18:56 1 comment

    It's been a loooong way here.
    The MagicShifter project is in constant development since over 12 years.
    The MagicShifter3000 is the 8th generation of the MagicShifter and is now pretty feature complete according to our clients feedback and our own vision of the project,

  • Bugs and more bugs!

    overflo05/14/2016 at 22:13 1 comment

    Everything works like a charm ..

    ..unless you make 500 of something.

    Than you find the bugs you could not see in the small sample size before.

    - Broken ESP modules

    -Broken LEDs

    - Defective / Unprecise Offset ADC on ESP8266

    - Broken libraries (AP mode lag)

View all 3 project logs

  • 1
    Step 1

    The MagicShifter3000 comes fully assembled, but there is also a DIY edition available if you want to print your own case.
    You can download the .stl files for the 3D-printable case and the lasercuttable inlay here

  • 2
    Step 2

    The complete software is open source.
    MagicShifter 3000 comes fully flashed and preprogrammed, but you CAN change everything.
    Check out the software in our github repo here:

View all instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates