Skip to the content
2 layers23.8 × 13.5 mmVlakinostalo, the printed circuit board in 3D

WiFi based controller for DC motor

Size
23.8 × 13.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
25
Nets
30
Pads
104
Tracks, vias
484, 16
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
17 Jul 2018
Updated
7 Aug 2018

Overview

Vlakinostalo is an open-source printed circuit board by andrejcampa, from the andrejcampa/WiFi-motor-controller repository on GitHub, published under the LGPL-3.0 licence. It is a 2-layer board of 23.8 × 13.5 mm with 25 parts on 30 nets, routed with 484 tracks and 16 vias.

It is built around the BD6220F-E2, DS3501U+H and FDG1024NZ. Its parts include 8 resistors, 4 capacitors, 4 connectors, 3 ICs and 2 switches. It belongs with the radio and wireless and robots and motor control boards and the ESP8266 boards of this library.

Main components

3

README

README.md

Wifi motor controller

WiFi motor controller is a highly efficient DC motor controller for creating simple remote controlled toys using a mobile device. The main purpose of the project was to build a simple WiFi controller for N/HO scale trains. However, the motor driver is not limited to trains but can also be efficiently implemented to other simple DIY toys. The project is divided into three independent and customizable parts: hardware (HW) part, software (SW) part and optional custom 3D printed train.

Key Specifications:

  • Supply voltage 6-15V (polarity insensitive)
  • Maximum output current 0.5A (BD622OF)/ 1A (BDF6221F)
  • Access point to the device (independent to mobile device system), no external software needed to control the device

Contents

Support via PayPal

1. HW Part

module

Fig 1.1: The picture of the front and back of the WiFi motor control with dimensions in mm.

The hardware of the controller was created with KiCad EDA; I have been using nightly builds release 5, since it is a huge step forward with features, libraries, etc. There are some inconsistencies between the Linux and Windows version thus you might need to make some slight changes to the naming of parts (for instance in windows the library symbol for a resistor is device:R while in Linux Device:R). The hardware is based around BD622XF H-bridge driver and the most important features of HW are summarized in the block diagram. The maximal pulse voltage at the motor is equal to the input voltage reduced by the diode bridge voltage drop (~0.5V). Please consider using the power supply voltage of 12V - 15V to maximize the performance of H-bridge, since the module is very small 13.5 mm x 23.8 mm (31 mm) and the current capacity is limited.

blockdiagram

Fig. 1.2: Block diagram of the module.

Interface pins definition and connection

connecting

Fig. 1.3: Definition of pins and “connection scheme”.

Pin nameDescription
ext C (- +)optional external capacitor, beware of the polarity!
LEDstwo connections for LEDs, the maximal current is 10 mA limited by 1k resistor, this is FET driven output connected to high voltage Uin and can be used for signaling. Also marked as out 1 and out 2 in the block diagram.
Motor_DCthe output for DC motor, polarity and PWM voltage signal is controlled by MUC.
U 6V-15Vmain input power for the HW and motor, Uin = 6V-15V

PCB

The latest Gerber for PCB production can be found in the directory HW/gerber/vlak.zip. The compressed archive was already used and sent to one of the cheap Chinese PCB Manufacturer. Please contact me if you need some additional information or how to reduce the costs of a prototype.

2. SW part

Flashing

The main WiFi + MCU unit is based on a small esp8285 module, ESP-M2 (doit.am). Please refer to documentation how to flash the module. You have the option to program the ESP module on the board. However, you have to supply the power to the input pins and additionally solder the ground, Rx and Tx pin directly to the module (see ESP-M2 documentation). To flash you will need to short and hold flash pads and in the meantime short the reset pads, Figure 2.1. Flash and Reset pads are exposed on the front side of PCB.

flashing Fig. 2.1: Exposed pads for flashing the module.

Program

The program is written in Arduino IDE, using the open libraries, Arduino core for ESP8266 Wifi chip. To improve the response time I have used an asynchronous web server. The soft access point (SoftAP) is implemented. The program uses for SSID SRS and the serial number (SRS xxxx), the default password is SRS12345 and is for now only changeable from the program. The default page is packed in the header file as the stream of characters (string), so no file system is needed. To access and to control the module you have to open the web browser after connecting to the hotspot. In the browser you should write the address 192.168.4.1 to access the control panel, Fig 2.2. With the slide bar you can adjust the speed, with the left and right button you can control the direction while the X button will stop the motor. In all cases soft acceleration is adapted to stabilize the module and motor, to have smooth driving experience. On the right side, the two additional buttons for turning LEDs on and off are presented. The program is written for N and HO scale train purposes and can be easily adjusted for other needs by modifying the existing page and program.

Screenshot

Fig. 2.2: Screenshot of UI.

3. 3D printed parts

The first 3-D printed locomotive is in directory 3D. You need FreeCAD to open and edit the locomotive hull. The completed locomotive can be seen in the demonstration video.

To use the WiFi module with the 3D printed hull you also need Tomytec TM-07R Motorized Chassis (N scale). By connecting the LEDs (3 mm size) and module like in Fig. 1.3 you should get a connection similar as shown in Fig. 3.1. For this project you can use very thin wires 0.05mm2 (30AWG) since the current capacity of such wire is enough for our 0.5A or 1A maximal current.

3D connection

Fig. 3.1: Assembling the module into the 3D printed hull.

Please contact me if the detailed step by step instructions are needed!

4. Support

You are encouraged to support the project in many different ways

  1. To track bugs.
  2. To improve the SW part with a better response.
  3. To create custom control panels in HTML.
  4. To develop new 3-D printable locomotives on different chassis.
  5. To make different toys using the module.
  6. And last and maybe also very important to support the project by donating the money. The development of the HW part and printable toys take not only the time but also other resources, I have to buy (PCB, electronic components, filament,…). Unfortunately, I have the very limited amount of the own funds for a project, to speed up the development process please think about the donation. With the additional funds, even higher integration could be achieved (especially replacing the ESP module, with custom PCB antenna and ESP8285 SOC).
  7. To reduce the costs of creating a module by yourself we could make a campaign for professional assembly, but the production should be around 100 pieces or more.
  8. For testing purposes (very limited amount of pieces) and for the compensation of the costs, I am willing to hand solder a few modules.

Support via PayPal

Parts

25
QtyValueFootprintReferences
210kResistor_SMD:R_0603_1608MetricR1, R2
21kResistor_SMD:R_0603_1608MetricR5, R7
24.7kResistor_SMD:R_0603_1608MetricR3, R4
247uCapacitor_SMD:C_1210_3225MetricC3, C4
250Resistor_SMD:R_0603_1608MetricR6, R8
11uCapacitor_SMD:C_0603_1608MetricC2
122uFCapacitor_SMD:C_0603_1608MetricC1
1BD6220FPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU3
1DS3501UPackage_SO:MSOP-10_3x3mm_P0.5mmU2
1D_Bridge_+AA-ESP-M:HD_bridge_bournsD1
1ESP-M1&M2ESP-M:ESP-M2P1
1FDG1024NZPackage_TO_SOT_SMD:SOT-563Q1
1FlashResistor_SMD:R_0603_1608MetricSW2
1LInductor_SMD:L_Coilcraft_LPS4018L1
1LEDsConnector_PinHeader_2.00mm:PinHeader_2x02_P2.00mm_VerticalJ3
1MAX15062APackage_DFN_QFN:DFN-8_2x2mm_P0.5mmU1
1Motor_DCConnector_PinHeader_2.00mm:PinHeader_1x02_P2.00mm_VerticalM1
1U 6V-15VConnector_PinHeader_2.00mm:PinHeader_1x02_P2.00mm_VerticalJ2
1ext CConnector_PinHeader_2.00mm:PinHeader_1x02_P2.00mm_VerticalJ1
1resetResistor_SMD:R_0603_1608MetricSW1

Similar boards

  • 4 layers70 × 70.5 mmPCB FINAL UPDATED, the printed circuit board in 3D

    PCB FINAL UPDATED

    bash227/ECG-Motor-Control-Power-Management-PCB

    A multi-function PCB integrating biomedical signal acquisition (ECG), DC motor control, and advanced power management for wearable applications.

    111 parts2MIT
  • 4 layers91.4 × 63.5 mmMovement control, the printed circuit board in 3D

    Movement control

    GaryBlackbourne/raspberry-robot

    49 parts2
  • 2 layers55 × 48.8 mmMtch6102 breakout, the printed circuit board in 3D

    Mtch6102 breakout

    sekigon-gonnoc/mtch6102_breakout

    Breakout board of MTCH6102, a 2D capacitive touch sensor, for DIY split keyboards with TRRS connectors.

    78 parts32
  • 4 layers86 × 56 mmRv1106, the printed circuit board in 3D

    Rv1106

    EPSILON0-dev/Raven1106

    Raspberry Pi-style SBC based on the Rockchip RV1106G3

    217 parts4
  • 4 layers38.7 × 18.5 mmHand wave sensor, the printed circuit board in 3D

    Hand wave sensor

    clacktronics/VL53Lx_panel_hand_wave_sensor

    Mount and PCB for hand wave sensor

    26 partsMIT
  • 4 layers140 × 100 mmAura, the printed circuit board in 3D

    Aura

    sikevux/aura-asic

    Aura ASIC universal PCB | Created by the Community

    449 partsUnlicense
  • 2 layers140 × 70 mmDual, the printed circuit board in 3D

    Dual

    sirkha/PocketBeagleStepperCarrier

    A board that utilizes a PocketBeagle to control stepper motors via Pololu like carriers.

    193 parts

Questions

How big is the Vlakinostalo PCB?

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

What parts does the Vlakinostalo use?

25 parts, built around the BD6220F-E2, DS3501U+H and FDG1024NZ. 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 Vlakinostalo KiCad files?

From the andrejcampa/WiFi-motor-controller repository on GitHub, at the commit this page was made from: the board is HW/vlakinostalo.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Vlakinostalo design in my own project?

Its repository publishes it under the LGPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).