DIY Time Control Machine




About: I like to create things, handmade weapon, arduino projects, science and some crazy staff! Also I like to capturing videos about my projects and I have YouTube channel - MadGyver!

This project is about how to make a time machine! This machine looks like a glove, and can "stop" any moving subject. At first, watch a video with some demonstration and experiments, guess how it works, and then read about how to make it =)

This effect looks like better in real life (by naked eye, not through a camera), without black lines. Smooth perfect time stop effectc!! IT IS REAL "OH MY GOD" REACTION!

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: All We Need

Generally this project is about Arduino, high-power LED and some tricky magic with soldering iron. Here is some list with links to Aliexpress

Step 2: Wiring

Step 3: Assembling Power Part

At first connect battery, DCDC and MOSFET. Also you need to tune DCDC to 34 V output voltage.

Step 4: Assembling Logic Part

Connect potentiometer and IMU to arduino

Step 5: Fixing on Glove

Fix all parts on glove, using cable ties and velcro strip.

Step 6: LED and Cooling Plate

Fix LED on copper plate, and don't forget to smear thermal paste between them.

Step 7: Fixing LED

Finely, place LED on it's place on glove in order:

  • Metal mount
  • Glove fiber
  • Lense
  • LED
  • Cooling plate

Step 8: Flashing Arduino

You can download sketch and schemes on project's project page on GitHub, also arduino code you can find in attached files.

Step 9: How to Control Time?

This "Time Machine" is just a stroboscope with frequency adjustment. Shake your hand in Z direction of accelerometer (fast move your hand forward), LED will be turned on. Shake again to turn it off.

Use potentiometer for coarse tuning, and glove tilt for accurate tuning. When frequency of object coincide with frequency of LED, it will "stop". And you can adjust "time" for it, tilting your hand, so object will slowly move at normal direction, or reverse. You can watch video about how it works and "freeze" some fast moving objects.

You can use this for pranks and demonstration of stroboscopic effect. Enjoy!

2 People Made This Project!


  • Made with Math Contest

    Made with Math Contest
  • Multi-Discipline Contest

    Multi-Discipline Contest
  • Robotics Contest

    Robotics Contest

78 Discussions


15 days ago

my mosfet is irl3803 it still not work:(

1 reply

Reply 15 days ago

what mosfet should i bought


23 days ago

i want to make this project .Is any can help about this?


Tip 1 year ago

VERY IMPORTANT: You have to have the Arduino IDE 1.6, otherwise it wont work! Alex Gyver did not post this here! It took me weeks till I figured that out, seriously.

With that said, the time machine is very nice and actually not that hard to do. You could go with the more expensiv and quicker way, buy all the same parts on amazon with prime (at least I have prime), which would cost me about 50€, not included the XT60 connectors, in my case li.ion batteries and the charger for your battery pack. You may need to buy some smaller srews that fit, some zip ties, if you dont have any and the copper platte, which i bought from ebay for 18€(10x10cm) .I should have bought it with the other parts, it would cost about 3€. But unfortunately I bought it when all the parts came, and I didnt want to wait for another 2-3 weeks. However, i bought all the parts on ebay for 15€, exclusive the XT60 connector, Batteries, battery charger, and screws. So if you want to do this project, do not forget about the parts i mentioned. Buy all them at once on Aliexpress or Ebay.

11 replies

Reply 1 year ago

Hi, what battery do you use for your glove? I can´t find the same battery as the original proyect and I don´t want to fuse the led


Reply 1 year ago

Hi, I just bought 3x 3.7v 2200mah li-ion batteries at my local electronics store. And I connected them all in series, for 12v of course. Some of these batteries are pretty expensive, but i bought the cheapest, one for 4€. So I they costed me 12€. But if you have a broken laptop/Notebook, you can reuse those. I bought online some broken laptops for very cheap just to reuse their batteries and other stuff that might be usefull. Hope I could help you.


Reply 5 weeks ago

Could you please give me detailed description of the project! The steps he showed in the video were too fast , could you write every step to make the project so that I can make use of this in my event ! Please do reply sir !


Reply 5 weeks ago

I did this project a while ago and I dont want to go into detail now, but if you have any questions then I could try to answer. Its not that hard to understand tbh and its a cool project. You can just drop a bunch of questions if you want i'll try to answer them


Reply 5 weeks ago

Sir I have one question ! 2 files Alex gave to run the project right ! So do we have to execute the code individually or execute them together ? And one more question could you tell me how to tune frequency to 34hz ?? please do reply sir ! I need this project so that I can win my competition! Please help me sir


Reply 5 weeks ago

Together of course. Just open them both up in the Arduino IDE an there should be two tabs and then load it on your board. Keep in mind you have to have the older Arduino Version otherwise it wont work. What do you mean tune the frequency? Of what?


Reply 5 weeks ago

We need to tune something to 34v right so how do do it ?


Reply 5 weeks ago

As in step 3 in the last picture shown u have to put your multimeter on the output of the dcdc boost und use a screwdriver to change the output voltage (with this blue cube on the other end of the dcdc boost) if you turn this "screw", the output voltage changes


Reply 5 weeks ago

Could you please give your temporary email id to have conversations ? I want to ask some more questions sir !


Reply 7 months ago

Which program should be used in Arduino .....kalman.h or time glove accept....rply me sir fast as u can...


Question 5 weeks ago on Step 8

Do we have to execute the code simaltaneously or execute them together? Please do reply


Question 3 months ago

Please help me in programming. What i should do with kalman.h file....its our project...please reply fast

1 answer

Answer 6 weeks ago

int light = 200; // LIGHTS ON delay, microseconds
int dark; // LIGHTS OFF delay
int min_dark = 1; // min dark delay
int max_dark = 50; // max dark delay
#define light_pin 2 // MOSFET pin
#define potent_pin 6 // potentiometer pin
int angle;
boolean flag;
long lastchange;

#include "Kalman.h"
Kalman kalmanX;
Kalman kalmanZ;
uint8_t IMUAddress = 0x68;
/* IMU Data */
int16_t accX;
int16_t accY;
int16_t accZ;
int16_t tempRaw;
int16_t gyroX;
int16_t gyroY;
int16_t gyroZ;
double accXangle; // Angle calculate using the accelerometer
double accZangle;
double temp;
double gyroXangle = 180; // Angle calculate using the gyro
double gyroZangle = 180;
double compAngleX = 180; // Calculate the angle using a Kalman filter
double compAngleZ = 180;
double kalAngleX; // Calculate the angle using a Kalman filter
double kalAngleZ;
uint32_t timer;

void setup() {
pinMode(light_pin, OUTPUT);
i2cWrite(0x6B, 0x00); // Disable sleep mode
kalmanX.setAngle(180); // Set starting angle
timer = micros();

void loop() {
measure(); // obtain acceleration and angle speeds
if (accZ > 25000 && (millis() - lastchange > 300)) { // Z axis shake detection
flag = !flag; // toggle light
lastchange = millis(); // timer

if (flag == 1) {
angle = 250 - kalAngleZ; // calculate angle (with 250 degrees offset)

// dark times calculation
dark = map(analogRead(potent_pin), 0, 1024, min_dark, max_dark);
digitalWrite(light_pin, 1); // lights up
delayMicroseconds(light); // wait
digitalWrite(light_pin, 0); // lights down
delay(dark); // wait
delayMicroseconds(2000 + angle * 10); // extra wait

// oh my god, it's some tricky sh*t
void measure() {
uint8_t* data = i2cRead(0x3B, 14);
accX = ((data[0] accY = ((data[2] accZ = ((data[4] tempRaw = ((data[6] gyroX = ((data[8] gyroY = ((data[10] gyroZ = ((data[12] /* Calculate the angls based on the different sensors and algorithm */
accZangle = (atan2(accX, accY) + PI) * RAD_TO_DEG;
accXangle = (atan2(accY, accX) + PI) * RAD_TO_DEG;
double gyroXrate = (double)gyroX / 131.0;
double gyroZrate = -((double)gyroZ / 131.0);
gyroXangle += kalmanX.getRate() * ((double)(micros() - timer) / 1000000); // Calculate gyro angle using the unbiased rate
gyroZangle += kalmanZ.getRate() * ((double)(micros() - timer) / 1000000);
kalAngleX = kalmanX.getAngle(accXangle, gyroXrate, (double)(micros() - timer) / 1000000); // Calculate the angle using a Kalman filter
kalAngleZ = kalmanZ.getAngle(accZangle, gyroZrate, (double)(micros() - timer) / 1000000);
timer = micros();

void i2cWrite(uint8_t registerAddress, uint8_t data) {
Wire.endTransmission(); // Send stop
uint8_t* i2cRead(uint8_t registerAddress, uint8_t nbytes) {
uint8_t data[nbytes];
Wire.endTransmission(false); // Don't release the bus
Wire.requestFrom(IMUAddress, nbytes); // Send a repeated start and then release the bus after reading
for (uint8_t i = 0; i data [i] =;
return data;


2 months ago

can anyone please help me out with the programming stuffs


6 months ago

Hello Guys I'm doing this Right now for my project With some twist my Professor told me to add I2C LCD to print the measurement of RPM while adjusting the potentiometer. What program should i use or add to use this i2c LCD