Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Building a toy elevator (how to choose motor, driver, logic)

Not open for further replies.


Feb 17, 2022
Reaction score
Trophy points
Activity points
I'd like to build my kids a toy elevator (e.g. for placing inside their Lego builds). I'm not sure what all the components I'd need are so at least for now I'm looking for high-level advice.

This is what I think I'd need, but I'm sure there are things I haven't taken into account—comments welcome:

1) Step motor
- I am totally unfamiliar with these, what types there are, etc.
- Let's assume the expected maximum mass of the load (elevator + passengers) is 300 grams. My assumption is that pretty much all step motors are way beyond this requirement.
2) Connection from step motor to a microcontroller
- Is the step motor controlled by changing the voltage (i.e. after a threshold voltage, the more voltage there is, the faster it goes) or using constant voltage and using PWM etc.?
- Anything I need between the motor and the controller besides 2 wires? (Based on the selected step motor and its power usage, I will select the most appropriate AWG rating)
3) Microcontroller
- Do I need an SBC like RPi or Arduino?
- If I can do away with something much simpler than an Arduino board, then what would suffice, and how do I program it?
4) Simple display to show floor count, e.g. if elevator car travels up to the level of 4 vertically stacked duplo legos, then the count would show "1"
- Extra: Display can be programmed to show anything with pixel graphics. It could even be OLED if the price is low. Price is not the #1 consideration here.
5) Adapters for attaching elevator cable to a spool that attaches to the step motor shaft.
- Note: I have the capability to design and 3D print any needed plastic parts
6) Power source
- I have 18650 Li-Ions + BMS boards to handle under/overcharge protections + charging from mains 220V. I can create battery packs of various voltages and max. output currents.
7) Power switch (these I have)
8) Battery level indicator (these I also have)

- Ability to control the speed precisely such that I can program "ease-in-out" types of movement starts and endings using my own formulas (or ready-made)
- Voice control. If I say "hey Google, take me to floor X", the elevator would obey :)

What am I missing? My biggest knowledge gaps lie with step motors and microcontrollers.

Any help and comments are much appreciated.

Thank you.

step motor speed is a function of step rate (thus the name) NOT voltage. You need at least 4-wires for a step motor. There are controller chips available, or you could do it all with a micro and some transistors.

Pretty much any micro could handle this job. Arduinos are cheap and plentiful, and there's probably some step-motor applications already written, as well as driver shields.

You might also be able to do this with an RC servo

You could use a stepper motor and an arduino, pololu make an easy stepper driver which does all the power stuff, and you can get a library for the arduino accelstepper which does most of the software.
Or you could use a dc motor and have contact switches on each 'floor', so the system 'knows' which floor the lift is at then you can use a simple dc motor with a H bridge such as a L293 module from ebay.
For the mechanics you can get geared motors and gear sets off ebay, or if you want it simpel lego technic lends itself to this kinda thing.

Here is an example using block programming, if you are unfamiliar with C or C++.
mBlock is used by 6'th graders and up to learn programming.


You drag blocks out onto design window, configure them, like above example which
port number, number steps. Use an Arduino UNO or Nano board. mblock is free.
Once you do blocks you upload to board, and in that process mBlock generates the
Arduino code based on blocks and their configuration.

Here is another example

If you learn mblock there are many variants with different capabilities, but they have many
common block elements, so easy to use the varity of tools.

Hear is example using Snap4Arduiono, a talking voltmeter. Does not take many blocks
to do this. # 10 in thread.

Regards, Dana.

Regards, Dana.
Last edited:

Not open for further replies.

Part and Inventory Search

Welcome to