Need some help with a circuit


I am intending to create an automated scanner using a hacked robot arm and the basic code written for Arduino by Lucky Larry (

I need to modify the system slightly, so that I can improve the wrist motor into a 0.9 degree stepper (Nanotec ST4209S1006-B) and for the turntable an 18 degree stepper (SP1518M0204-A)

Adding the steppers means I'll need an extra H-Bridge (Texas Instruments SN754410NEG4) from the Larry circuit, and - I assume - a shift controller (Texas Instruments CD74HC595M)

I may include an LCD display eventually

I've made up a basic diagram of how I think the circuit ought to look, however I dont know enough about controlling power levels with resisters etc.

Could somebody help out by letting me know what I need to add to the circuit, or point me to an online circuit testing tool that I can design it with

Once complete I'll post design info, pics and code in here

however I dont know enough about controlling power levels with resisters etc.

Not sure what you mean by this.
You can use a resistor to limit the current through a motor but that's about it. Mainly you would only use it when you are trying to use too high a voltage for the motor ratings. Otherwise you would use PWM to control the motor power and hence speed in a loaded motor.

I thought I'd pose the example a little clearer.

The following is a breadboard layout of my basic requirements. I am choosing to use three pins on the arduino, to power 4 DC toy motors and 2 stepper motors.

I have built a circuit that combines the use of 3 H-Bridge controllers to manage 5 DC toy motors in a robot arm from one source (luckylarry) and added in the shift controllers from another source (Dave Auld). I then added an additional H-Bridge to give me enough motor control.

x2 - Connects arduino pin 2 with the data pin on shift controller 1
x3 - Connect to the other x3 on controller 2, and arduino pin 3
x4 - Connect to the other x4 on controller 2, and arduino pin 3, I have also added a 560 ohm resister between this part of the circuit and GND

A - Connects the output on shift controller 1 to the data in on shift controller 2.

B to Q connect shift controllers to the input pins on the motor controllers.

Basically assuming that the two example circuits work, then my circuit should also work.

But if there are any other tweaks that could be added to make the circuit more reliable then I'd appreciate the advice.

I thought I'd pose the example a little clearer.

A schematic would really help, unfortunately what you posted is a physical layout diagram which is next to useless in seeing what the circuit actually does.

if there are any other tweaks that could be added to make the circuit more reliable

Look to add lots of decoupling to prevent noise resetting the arduino. Also add some diodes to stop motor back EMF.


I know nothing about circuits, other than the real basics.

I'm going to take a look at the link you just sent, and look into diodes too.

What exactly do you mean by a schematic? The voltages going through each part of the circuit? If so, that's what - think - I'm trying to work out.

Or do you mean information about operating voltages of the various components? If so, I have bookmarks to all of that information.

This is what the circuit actually needs to do

3 x Arduino pins connect shift controllers 1 and 2.

Shift controllers connect to 4 H-Bridge Motor Drivers and also to GND through a 560 ohm resister (as per Dave Auld's circuit diagram linked earlier)

Motor Driver 1 connects to two small toy DC motors
Motor Driver 2 connects to two small toy DC motors
Motor Driver 3 connects to a 2 phase 0.90 degree unipolar/bipolar stepper motor
Motor Driver 4 connects to a 2 phase 18 degree unipolar/bipolar stepper motor

Toy DC motors control the basic movements of a maplin robot arm.

As per Christian Liljedahl's 'Simple Rotary Encoder with Arduino' guide

I'd want to add a 10-20k resister to one of the inputs to enable me to get a very basic understanding of how far the motors have moved.

The 0.90 degree stepper motor should operate in half (or even quarter) step mode, and controls the slow movement of the laser scanner

The 18 degree stepper motor should operate in full step mode, and rotates a turntable 360 degrees in 10 stages of 36 degrees

No connections are required for the laser, which has its own housing, circuit and battery.

The robot arm itself, can hold 4x D Cell batteries to power motors, although I'd ideally want to power via the Arduino's USB connection or a direct connection to the mains.

I also noticed that in Larry's robot arm hack, the motor controllers do not have connections to their enable pins. I'm not sure if that needs to be corrected


Based on searching through Farnell, the motor is the same dimensions as their two cheapest motors, and smaller than the cheapest '3.0V to X' motors. The motors themselves contain no marking to help identify the exact specs.


1 x NANOTEC - ST4209S1006-B - STEPPER MOTOR, 0.9DEG, 2 PHASE (German)

  • Coil Type:Unipolar / Bipolar
  • Torque Max:15N-cm
  • Current Rating:950mA
  • No. of Phases:2
  • Resistance:4.2ohm
  • Inductance:4mH
  • Rotor Inertia:35g-cm²
  • Current DC Max:0.67A
  • Current per Phase:0.67A
  • External Length / Height:33.5mm
  • Indexing Angle:0.9°
  • Weight:0.22kg

1 x NANOTEC - SP1518M0204-A - STEPPER MOTOR, 18DEG (German)

  • Coil Type:Unipolar / Bipolar
  • Torque Max:0.35N-cm
  • Current Rating:180mA
  • No. of Phases:2
  • Resistance:50ohm
  • Inductance:9mH
  • Rotor Inertia:1g-cm²
  • Current DC Max:0.24A
  • External Diameter:15mm
  • Holding Torque:0.0035N-m
  • Indexing Angle:18°
  • Weight:0.01kg


  • Motor Type:Half Bridge
  • No. of Outputs:4
  • Output Current:2A
  • Output Voltage Fixed:39V
  • Supply Voltage Range:4.5V to 36V
  • Driver Case Style:DIP
  • No. of Pins:16
  • Operating Temperature Range:-40°C to +85°C
  • SVHC:No SVHC (18-Jun-2010)
  • Operating Temperature Max:85°C
  • Package / Case:DIP
  • Temperature Operating Min:-40°C
  • Base Number:754410
  • Device Marking:SN754410NE
  • Driver Type:Motor
  • IC Generic Number:754410
  • Logic Function Number:754410
  • No. of Drivers:4
  • Output Voltage Max:36V
  • Supply Voltage Max:36V
  • Supply Voltage Min:4.5V
  • Termination Type:Through Hole
  • Interface Type:
  • Line / Bus Driver / Receiver / Transceiver Type:


  • Shift Register Function:Serial to Parallel
  • Logic Type:Shift Register
  • No. of Elements:1
  • IC Output Type:Tri State
  • Logic Case Style:SOIC
  • No. of Pins:16
  • Supply Voltage Range:2V to 6V
  • Operating Temperature Range:-55°C to +125°C
  • SVHC:No SVHC (18-Jun-2010)
  • Package / Case:SOIC
  • Frequency:42MHz
  • Input Current Max:80µA
  • Logic IC Base Number:74595
  • Logic IC Family:HC
  • Logic IC Function:8-Bit Shift Register with 3-State Output Registers
  • Supply Voltage Max:6V
  • Supply Voltage Min:2V
  • Termination Type:SMD

Have you even bought one of these arms, yet?

If you have, then you would notice something really quickly: The motor gearbox housings form the structure of the robot arm; they are integral to the design.

Some of the steppers you propose to use are larger than the gearboxes housing the motors on the arm itself (the arm isn't that big). Heck, the shafts on some of the steppers are larger than some of the gears in the gearbox!

You already say you don't have an understanding of electronics; this project is -not- a beginners project. Nobody has yet even managed to implement position feedback on this arm using the motors as-is (a requirement for the system you propose). You may be on a route to frustration.

Lastly - what is this "scanner" system supposed to do? Is using a multi-degree-of-freedom robot arm the best solution? If it is, and precision is needed, you are likely to find it better to purpose build the robot arm from scratch, and not try to convert something like this toy. If you must use something off-the-shelf, a commercial robot arm (while insanely expensive, even used) is going to be the better solution.

You need to, however, learn the basics of electronics, robotics, motor-control, feedback theory, etc - before attempting something this advanced. Otherwise you are going end up throwing a bunch of money and time at a project that is only going to end up frustrating you and your bank account...


The scanner is using David Laserscanner software and calibration panels

I have the robot arm, and am keeping all motors in their housing except one, which will do the scan itself, and sit in a custom housing that replaces the gripper.

The other stepper motor is for a seperate turntable.

Mechanics, hardware modification and programming are not a problem, just perfection of the the circuit. I dont require huge amounts of info from the 4 basic motors, they are literally just to get close to the right position start position for the scanner from location readings previously taken.

I have already spent around £1000 on a cupcake cnc which can make my custom housing, £30 on the arm, and £350 on the laser scanner.

I now need to buy an Arduino, a large breadboard, the two motors and the circuit components. Buying an arduino and 4 motor sheilds is the alternative but with significantly more expense

I bought this arm a while ago, also inspired by Larry's blog. But to reiterate what cr0sh said - serious position control with the arm in its standard, out-of-the-box configuration is almost impossible. In fact, I found out this year that my university bought this arm to see if they could do anything with w/regards to position control, and a few projects were done on it. The conclusion? The gear slip makes it almost impossible. If it is at all possible, it will require some serious, serious control techniques.

And you said it only has to be able to roughly (you should make sure you know your own definition of 'get close', by the way) reproduce locations... well you'll also have to find a way to make your control solution not let errors from gear slip become cumulative.

This is really not a beginners project.

And something I don't believe anyone's pointed out yet - when you were asked for a 'schematic', I think they were talking about a circuit diagram. Your breadboard layout is a kind of... abstract circuit diagram, I suppose, but as Grumpy_Mike pointed out, nobody's going to sit and decode that into a proper cct diagram for you, you need to do it yourself.

You've obviously invested a lot already, so good luck with it!

I made a circuit style diagram first, thought the breadboard would be easier to read. I found some sources to improve it a bit.

A circuit diagram would definitely be easier to read :wink:

The way you've layed it out on the breadboard is irrelevant, really - there's millions of ways you can put it on a breadboard, but there's only 1 circuit diagram :slight_smile:

Make a cct diagram in Paint if you need to - it takes a while but it gets the job done.

I've downloaded DesignSpark PCB, should be able to put it together a little clearer.

If remembering the locations of the motors wont work, then its not the end of the world. They only need to remember 4 locations, and I can get to them manually easily enough.

Trying as a nice free piece of circuit/breadboard/PCB software. Probably easier for to use for someone unfamiliar with electronics.


Thanks very much, that looks easier to use than designspark pcb

IMO things like Fritzing are probably good for class rooms etc, the trouble with them is that anyone who knows about electronics will run a mile if you show one of those "realistic" drawings. They are unintelligable to someone used to working with proper schematics, and those are the people you need to help with a project like this.

I know it will be difficult to learn a proper schematic capture program but if you want much help from "experts" I think you should bite the bullet, you'll have to one day anyway. It WILL be frustrating I can garantee it, but schematics are the language we talk in electronics.


Graynomad, you have a point. But the issue is that 01i Is obviously not familiar with this kind of stuff, and if he wants a circuit diagram quick and easy for us to see then fritzing automatically creates one from your breadboard design.

Yeah there's no easy answer. Learning the proper schematic capture progs is a real pain, no doubt about it. And it could put someone off for life :slight_smile:

I haven't used Fritzing, I've looked at the site a few times and it's not made clear that it will generate a schematic. Is that the case?

Later...I've drilled down into a few pages and yes it does seem to export to a schematic (not easy to find though), if that's the case then yes I'd say it's a good way to get started.



The version of Fritzing I've downloaded can do breadboard, schematic and PCB.

Although, work on the scanner will now need to wait a few days.

The parts to build my cupcake cnc machine just arrived :slight_smile:

Should have a better idea of robotics when I finished making it.