Intro: (okay to skip)

The inspiration for this idea comes from a fidget spinner kind of kinetic desk toy - MezmoGlobe

I bought this recently and fiddle with it regularly, but there is a catch 22 with the toy - its more soothing when spun slowly, but lasts longer when spun fast (just like any other rotating spinner kind of toy)


Goal is to be able to kick start (using hands! LOL) a rotating system (mezmoglobe in this case) at any speed and the system understands the speed and starts rotating at that speed until stopped.

More intricate details:

  • System consists of at least one motor, which acts both as the driver of the system and the input for the system.
  • System can sustain any speed between a minimum and a maximum speed.
  • System is small enough to be hosted in a 3x3x3 inch3 enclosure or smaller.
  • System is self sufficient. No external power cable or controller wires.
  • User spins the motor in any direction. System understands the speed and direction and starts the (same) motor at roughly the same speed in the triggered direction.
  • There can be a switch to stop the motor. Bonus, if stopping the motor by hand actually breaks the circuit and stops the motor.

Few proposals

I have given this some thought and could think of possibly two (incomplete) solutions:

Analog way


  • The motor is attached to a linear/rotatory actuator of sorts which sets a linear/circular potentiometer to some value.
  • Rotation of the motor or the movement of the potentiometer also triggers circuit closure of the motor - potentionmeter - battery circuit which then, due to specific setting of the potentionmeter in previous step, starts the motor at a given/desired speed.

TODO tasks - Figure out ways to break backward (motor to actuator from step 1) circuit and start forward (battery to motor) circuit. - Figure out ways to reset the potentiometer for the next run.

Complications: - Too many moving parts. - Calibration of speed to match user input speed is tricky. - Maybe not possible in the form factor desired?

Micro controller way

System - Motor connected to a micro controller. - Backward circuit detects any current produced by manual movement of motor. - Then sets the direction and speed of movement via a motor driver.

TODO: - How to detect kick start of motor by user. - Maybe the motor provides feedback and auto stopping can be implemented as well? (user stops the motor by hand, MC detects it)

Challenges - I was personally only able to find very few compact single motor drivers, but they all needed some sort of microcontroller setup to run/provide PCM. - Is there a compact programmable microcontroller that can fit the size limitations? - Generally MC have strict current/voltage requirements to run the MC.

  • \$\begingroup\$ Is there a question? You are basically looking to detect a maximum speed and maintain it. Can be really done in two steps - measure the maximum speed, turn on a controller which will maintain it. \$\endgroup\$
    – Eugene Sh.
    Commented Jun 11, 2019 at 19:59
  • \$\begingroup\$ The question is more about the specific components based on the size limitations and the system design involving those components. Is this not the right SE to ask for hardware/design specifications? \$\endgroup\$
    – Optimizer
    Commented Jun 11, 2019 at 20:03
  • 2
    \$\begingroup\$ You haven't asked any question so far. If it is about recommendation for specific products then it is off-topic. \$\endgroup\$
    – Eugene Sh.
    Commented Jun 11, 2019 at 20:04
  • 1
    \$\begingroup\$ @Optimizer That is correct. Shopping/buying/product recommendation requests are off-topic per the site tour: electronics.stackexchange.com/tour \$\endgroup\$ Commented Jun 11, 2019 at 20:11
  • 1
    \$\begingroup\$ What exactly are you expecting as an answer? A detailed design? A bill of materials? Crossing out one or more of the approaches? Correcting the sentences in your question which are might be incorrect? Something else? Think about it and ask about it (note that some of these won't be answered as too broad). \$\endgroup\$
    – Eugene Sh.
    Commented Jun 11, 2019 at 20:26

1 Answer 1


Get a motor with an encoder on it. The encoder allows you to monitor position and velocity (to some extent, you need enough resolution on the encoder for velocity control). Some motor controllers come with feedback from a encoder built in and encoder/motor/controller kits can be found at many motor manufacturers.

If you have no experience with control systems, a project like this might be a little difficult. Once the globle started spinning after a set time you could monitor the velocity and then give the velocity command to the controller.

When stopping, if there were a force acting on the globe, it would show up in the velocity error term of the controller (if you have access to it). If it reached a certain threshold (which would indicate there is additional force acting on the motor), you could ramp down the velocity.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.