Skip to the content
2 layers100 × 100 mmSynchro2, the printed circuit board in 3D

Dual motor drive for dual motor synchro drive PCB

Size
100 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
98
Nets
105
Pads
407
Tracks, vias
1,287, 138
Pours
2
Routed
Yes
KiCad
KiCad 3
Created
19 Jan 2014
Updated
3 Mar 2014

Overview

Synchro2 is an open-source printed circuit board by waynegramlich, from the waynegramlich/synchro_drive_motor_driver_pcb repository on GitHub. It is a 2-layer board of 100 × 100 mm with 98 parts on 105 nets, routed with 1,287 tracks and 138 vias.

It is built around the TM4C123GH6PMI, AS5050 AB and MCP2562-H/P, with the ELD207(TA), LM2931CD and SI8420-A-IS among its other parts. Its parts include 23 capacitors, 16 ICs, 12 resistors, 9 diodes and 1 connector. It belongs with the robots and motor control boards of this library.

Main components

8

README

README.md

synchro_drive_motor_driver_pcb

This printed circuit board drives two brushed DC motors for a synchro drive. A synchro drive allows a single wheel to be driven and turned independently without any wheel skidding.

Revision A

This board is designed around U1 and U2, a couple of AS5050 hall effect 10-bit absolute rotation sensors. The board is arrange to place both of these sensors exactly over the magnets on top of the twist motor and drive motor shafts.

The board geometry is constrained by synchro drive motor assembly. The motor pulleys are fully enclosed to keep dirt and grime from gumming up the pulleys. Thus, the PCB has an enclosed section on the bottom and an exposed section on the top. The exposed section is where all of the heat generating electronics is placed to provide additional air flow to remove excess heat.

The electronics is divided into two electrically isolated sections:

  • The processor section is connected to the Logic power/ground and can communicate over the CAN bus.

  • The motor section is connected to the Motor power/ground and drives the motor H-bridges.

Processor Section

The power and communication comes in on the 26-pin N1 connector.

The motor power (MPWR) and motor ground (MGND) are routed to the motor section (see below.)

The logic power (LPWR) and logic ground (LGND) are sent through C1, U3, C3, U6, C9, and C11 to provide regulated 5 volts and 3.3 volts. The LM2931 (U3) is must be able to take up to 30 volts input. This requires a DPAK package to provide adequate heat dissipation. C3 must be a tantalum capacitor to get an ESR (Equivalent Series Resistance) less than 400mOhm.

There are two signals (SEL_LR and SEL_FB) that can be testing in software to specify whether the wheel is left/right or front/back.

The communication comes in over CANH and CANL and is run into an MCP2562 (U4) CAN bus transceiver. The MCP2562 is the only part that must run at 5 volts. By setting the VIO input (pin 5) to 3.3V the processor can directly communicate with the transceiver using 3.3V signaling.

The processor is TM4C123GH6PM, an Arm Cortex M4-F class microcontroller. The processor is run using a 10MHz crystal X1 and two 18pF capactiors C10 and C11. There is a reset button (SW1) with a 10K pull-up resistor (R2).

The AS5050 hall effect rotation sensors (U1 and U2) are each tied to a dedicated SPI intefaces (SSI0 and SSI1, repsectively.)

For debugging, there is 6-pin connector (N2) that is designed to connect to FTDI 3.3V USB to serial cable. The LED (D1) and current limiting resistor (R1) are also available for debugging. Jumper J1 is meant to implement physical signal that allows
over the bus firmware updating to be enabled or disabled. J1 is also available for debugging.

The processor can be programmed and debugged via either of the JTAG/SWDEBUG connectors (N3 or N4). Both connectors conform to the ARM 10-pin JTAG/SWDEBUG connector specification. One connector is .05inch pitch and the other is .10inch pitch.

The motor directions are specified by PB0-3 (pins 45-48). Third SPI peripheral (SSI3) is dedicated to controlling the DAC (Digital to Analog Converter) in the motor section.

There are the usual bypass capacitors (C2-C8, C22-23) and mounting holes (H1-H4, H6-H9). There are two additional holes (H5, H10) that are aligned with the motor drive shafts.

Motor section

Motor power is passed through C13, U7, and U14 to provide regulated 5V for the various integrated circuits. There is no 3.3V in this section.

The H-bridges are venerable bipolar L298's (U13, U14) with 8 Schottky current shunt diodes. The L298's are dual H-bridges that have been ganged together to provide 3A of continuous current. The motors are connected to N5 and N6.

The direction control signals change infrequently, so they are directed through inexpensive (and lower bandwidth) optoisolator chips (U10, U11) with current limit resistors (R3-R6). Resistors R7-R10 are pull-up resistors that are fed into IN1-IN4 inputs of the H-bridge chips.

The DAC is controlled with SPI signaling through the SI8420 chips. This are electrically isolated chips that can send digital signals at up to 1MHz. The SEL, SCK and SDI signals are sent through these chip to the DAC chip (U15).

The DAC chip is an MCP48?2, which a dual channel DAC. The output of each DAC is used to set the maximum voltage across the H-bridge current sense resistors (R11, R12). The DAC outputs are compared to the sense resistor voltages using the MCP6542 comparator chip (U16). Whenever the current through the sense resistor exceeds the DAC output voltage, the enable pins for the L298 are cleared through the dual D flip-flops (U12).

The way this works, is that the processor sends out a 25KHz square wave through U9 (pin 2). This signal clocks a 1 into both flip-flops, thereby enabling both H-bridges. As the current builds up across the current sense resistor, the flip-flops are cleared to disable the H-bridge enable pin. This results in a PWM (pulse width modulated) signal on the H-bridge enable pin, where the electronics ensures that the maximum amount of current specified by the DAC voltage is not exceeded.

There are the usual set of bypass capacitors (C15-C21) and test points for debugging.

Rev. A Notes

  • The current sense resistor is too big. At maximum current (3A), the resistor will generate 5W of power. The current sense resistors are only 2W devices. The resistor needs to be dropped from .56 Ohm to .2 Ohm. This will require changing the DAC to be one that has a maximum voltage input rather than an internally generated one.

Parts

98
QtyValueFootprintReferences
15.1uFSynchro2_Rev_A:CAPC1608X55NC2, C4, C5, C6, C7, C8, C15, C16, C17, C18, C19, C20, C21, C22, C23
8PMEG3030EPSynchro2_Rev_A:DIOM5027X244ND2, D3, D4, D5, D6, D7, D8, D9
510KSynchro2_Rev_A:RESC1608X50NR2, R7, R8, R9, R10
5470Synchro2_Rev_A:RESC1608X50NR1, R3, R4, R5, R6
2.56Synchro2_Rev_A:RESC6432X76NR11, R12
218pFSynchro2_Rev_A:CAPC1608X55NC10, C12
222uFSynchro2_Rev_A:CAPAE530X540NC1, C13
222uFSynchro2_Rev_A:CAPMP3216X180NC3, C14
2AS5050Synchro2_Rev_A:QFN65P400X400X80-16NU1, U2
2ELD207Synchro2_Rev_A:SOIC127P600X175-8NU10, U11
2L298Synchro2_Rev_A:MULTIWATT15U13, U14
2LM2931Synchro2_Rev_A:DPAK_THERMALU3, U7
2SI8420Synchro2_Rev_A:SOIC127P600X175-8NU8, U9
110MHzSynchro2_Rev_A:XTAL1150X480X430NX1
11uFSynchro2_Rev_A:CAPC1608X55NC11
1470pFSynchro2_Rev_A:CAPC1608X55NC9
174XX74Synchro2_Rev_A:SOIC127P600X175-14NU12
1ARM_JTAG_10PINSynchro2_Rev_A:SMT_VERT_M1.27_2x5N3
1ARM_JTAG_10PINSynchro2_Rev_A:ARM_JTAG_2X5_2.54MMN4
1DAC_AOUTSynchro2_Rev_A:TEST_POINTTP10
1DAC_CSSynchro2_Rev_A:TEST_POINTTP9
1DAC_SCKSynchro2_Rev_A:TEST_POINTTP8
1DAC_SDISynchro2_Rev_A:TEST_POINTTP7
1DRIVE_MOTORSynchro2_Rev_A:Socket_MOLEX-KK-RM2-54mm_Lock_2pin_straightN6
1DR_MISOSynchro2_Rev_A:TEST_POINTTP18
1DR_MOSISynchro2_Rev_A:TEST_POINTTP19
1DR_SCLKSynchro2_Rev_A:TEST_POINTTP16
1DR_SELSynchro2_Rev_A:TEST_POINTTP17
1ENC_INTSynchro2_Rev_A:TEST_POINTTP15
1FTDI_CONNSynchro2_Rev_A:Pin_Header_Straight_1x06N2
1L3.3VSynchro2_Rev_A:TEST_POINTTP2
1L5.0VSynchro2_Rev_A:TEST_POINTTP1
1LGNDSynchro2_Rev_A:TEST_POINTTP3
1M1.0_HOLE__DRSynchro2_Rev_A:M1.0_HOLEH10
1M1.0_HOLE__TWSynchro2_Rev_A:M1.0_HOLEH5
1M3.0_#4_HOLE__JSynchro2_Rev_A:M3.0_#4_HOLEH1
1M3.0_#4_HOLE__KSynchro2_Rev_A:M3.0_#4_HOLEH2
1M3.0_#4_HOLE__LSynchro2_Rev_A:M3.0_#4_HOLEH3
1M3.0_#4_HOLE__MSynchro2_Rev_A:M3.0_#4_HOLEH4
1M3.5_#6_HOLE__NSynchro2_Rev_A:M3.5_#6_HOLEH6
1M3.5_#6_HOLE__OSynchro2_Rev_A:M3.5_#6_HOLEH7
1M3.5_#6_HOLE__PSynchro2_Rev_A:M3.5_#6_HOLEH8
1M3.5_#6_HOLE__QSynchro2_Rev_A:M3.5_#6_HOLEH9
1MB_RXSynchro2_Rev_A:TEST_POINTTP14
1MB_TXSynchro2_Rev_A:TEST_POINTTP13
1MCP2562Synchro2_Rev_A:SOIC127P600X175-8NU4
1MCP48X2Synchro2_Rev_A:SOIC127P600X175-8NU15
1MCP6542Synchro2_Rev_A:SOIC127P600X175-8NU16
1MGNDSynchro2_Rev_A:TEST_POINTTP6
1MPWRSynchro2_Rev_A:TEST_POINTTP5
1OMRON XG4A-2632Synchro2_Rev_A:OMRON_X4GA_2632N1
1PWM_CLKSynchro2_Rev_A:TEST_POINTTP4
1R971-KN-1Synchro2_Rev_A:DIOM2012X160ND1
1RESET_BUTTONSynchro2_Rev_A:KSS221GLFSSW1
1TC1015Synchro2_Rev_A:SOT95P280X145-5NU6
1TM4C123GH6PMSynchro2_Rev_A:QFP50P1200X1200X145-64NU5
1TWENSynchro2_Rev_A:TEST_POINTTP11
1TWIST_MOTORSynchro2_Rev_A:Socket_MOLEX-KK-RM2-54mm_Lock_2pin_straightN5
1TW_SENSynchro2_Rev_A:TEST_POINTTP12
1UPDATE_ENABLESynchro2_Rev_A:Pin_Header_Straight_1x03J1

Similar boards

  • 2 layers37.3 × 17.5 mmParts servo, the printed circuit board in 3D

    Parts servo

    portlandrobotics/btServo

    PARTS hobby servo controller project

    50 parts2
  • 4 layers33 × 58.4 mmRocket power board, the printed circuit board in 3D

    Rocket power board

    waterloo-rocketry/canhw

    Hardware monorepo avionics PCB

    86 parts15GPL-3.0
  • 2 layers80 × 60 mmTwo phase charging, the printed circuit board in 3D

    Two phase charging

    HuntieDK/BMW-i3-two-phase-charging

    Extends the BMW i3 60Ah BEV/REX charging to use two phases

    73 parts8MIT
  • 4 layers112 × 57 mmUniversalboxArm1-0, the printed circuit board in 3D

    UniversalboxArm1-0

    Solartraveler/UniversalboxArm

    PCB for experimenting with a STM32

    170 parts2
  • 2 layers100 × 100 mmNeuromorphic ir sensor tht, the printed circuit board in 3D

    Neuromorphic ir sensor tht

    RyanHailey21/neuromorphic-IR-hand-assembled

    All through-hole re-implementation of the Rev A neuromorphic IR event sensor: no SMD parts, solderable with a basic iron.

    102 parts
  • 2 layers43.2 × 47 mmCurrent sink or swim, the printed circuit board in 3D

    Current sink or swim

    ALeggeUp/current-sink-or-swim

    Project work from The Online Electronics Aprenticeship program at Contextual Electronics

    29 partsCC-BY-SA-4.0
  • 2 layers80 × 73.9 mmBoya Parametrica V1.0, the printed circuit board in 3D

    Boya Parametrica V1.0

    cepya2022/Water_Quality_Probe-

    The development of open-source code and hardware instruments enables both the creation of new technologies and the redesign and adaptation of existing instruments to the user's specific needs.

    37 parts
  • 2 layers34 × 28 mmCurrentSink, the printed circuit board in 3D

    CurrentSink

    plainsimpledot/currentSink

    1st PCB project building a current sink with uController interface

    42 parts

Questions

How big is the Synchro2 PCB?

It measures 100 × 100 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Synchro2 use?

98 parts, built around the TM4C123GH6PMI, AS5050 AB, MCP2562-H/P and ELD207(TA). The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Synchro2 KiCad files?

From the waynegramlich/synchro_drive_motor_driver_pcb repository on GitHub, at the commit this page was made from: the board is rev_a/synchro2.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Synchro2 design in my own project?

Its repository states no licence, so its author keeps all rights: ask waynegramlich before reusing the design.