Skip to content

Latest commit

 

History

History
540 lines (338 loc) · 52.5 KB

File metadata and controls

540 lines (338 loc) · 52.5 KB

Agrofelis Motors Hub Driver Design and Fabrication

Abstract

This document delves into the manufacturing and functional intricacies of a composite module tailored for controlling and sensing a pair of in-wheel motor hubs digitally, over the air. The documentation decomposes the different elements involved into sub-modules, into their sub elements in an organized and progressive manner. A detailed exposition of each component's rationale and its seamless integration with counterparts is provided, bolstered by design plans and photographic evidence of the actual implementation.

The document offers a roadmap through the Agrofelis repository, elucidating the source file locations and the production processes underpinning the manufacturing of the Agrofelis Motors Hub Driver. The document presents the structural elements of the unit, the three type of PCB sub-components, the software running on the micro-controller, key tools employed in the manufacturing process and ends with a compendium of indicative suppliers to purchase the different parts.

Motors Hub Driver

The Agrofelis Motors Hub Driver module's purpose is to digitally control over the air, a pair of motors via two drivers, to monitor their thermal, current and positional indicators as well as to guide the air flow cooling the electronic components, to actuate their power, speed and direction. The module is composed by structural elements, PCB boards separating the different functionalities into simpler standalone sub modules and the software running on the micro controller.

Two such modules are employed in the Agrofelis robot, to achieve four wheel drive and precision control. The following figure illustrates the schematics of the overall module.

Views and projections of the complete motor hub driver module

Find below a photo of the implemented module, positioned within the front and the back enclosures of the vehicle.

Actual implementation of the motors hub driver module

In the following sections the structural and electronics sub-component of the unit, are documented.

Structural component

This component of the Agrofelis Motors hub driver, deals with the structural elements of the composite module. The structural component is formed by two parts enclosing and mounting the related sub elements. Moreover the structural component serves for guiding the air flow to efficiently cool down the electronics during their operation. The structure body, is composed of layers of ply-wood and 3d printed air fins, glued and painted.

The individual elements forming the structural body are illustrated by the following figure.

Exploded view of the structural elements, fabricated via laser cutting and 3d printing

The top part of the structural body, creates sockets to host two temperature sensors, sockets to host the two power modules vertically, sockets to attach the analog drivers, as well as holes indicating exactly where the PCB boards are mounted and a socket for an 80 mm fan.

The following photos showcase the top and bottom parts of the structure, manufactured using a low end CNC, equipped with a laser.

A low cost CNC equipped with a laser, cutting one structural element / layer from a 4 mm plywood

Three laser cut layers of 4 mm plywood stacked to form the bottom body of structural element

Two laser cut layers of 4 mm plywood stacked to form the top body of they structural element.

The 3d printed air fins glued on the bottom part of the structure are illustrated below.

An inner view of the compartment formed via the 3d printed air fins

The bottom and top part and how these fit together using the motor drivers as building blocks, are captured by the following photo.

A front view focusing on the 3d printed air fins guiding the airflow on both sides of the motor drivers

The Motors Hub structure sub-module, is implemented using the following parts:

  1. Five 4mm ply-wood layers were cut into 204.83 mm X 119.67 mm parts using a laser cutter. The layers 1-3 form the bottom part and the remaining the top part.
  2. Four 3d printed elements guiding the air flow across the sides of the analog motor drivers as well providing extra support to the top layer.
  3. Wood glue
  4. A spray paint
  5. Capton tape to secure the temperature sensors in the top wood layer slot.
  6. Eight Standoff, 2mm bolts and screws to mount the Controller and ADAC sub-modules, into the wooden top layer.
  7. Two 2.8mm X 16mm screws, securing the top layer with the outer fins.

The schematics and source files to cut and 3d print parts 1 and 2 are located within the following folders respectively.

More specifically, the laser cut folder documents the procedure for exporting and transforming the Rhino diagrams into five SVG (scalable vector graphics) files and consequently to five NC (Numerical Control) instructions, used to cut the related parts. The 3d print folder contains two STL (stereolithography) files (a, b) and two Gcode (geometry code) instruction files for the inner and outer fins structural elements.

Electronic sub-modules

The electronics sub-modules of the Agrofelis Motors hub driver, sum into four PCB sub-modules namely the:

  1. Motors hub controller module.
  2. Motors hub power module (A).
  3. Motors hub power module (B).
  4. Motors hub ADAC module.

Their compilation is illustrated by the following diagram.

Views of the electronic elements of the microcontroller, attached on the top and left, right sides of the structural component.

In the following sections the three type of modules are documented in further detail.

Motors hub controller

This sub-module of the Motors Hub Driver integrates all electronics components of the overall module. The controller decomposes the functionality of signal processing, sensor impulse broadcasting and for controlling the actuators via wireless means. The module digitally drives the two motor hubs via an ESP32 and reads and intercepts the hall sensors of the analog drivers using the ADAC module. The module senses the current drawn by the motors, reads the individual temperature of the analog drivers and controls the power, the speed and spin direction of the motors.

The PCB is illustrated by the following figure.

The motors hub driver PCB schematic

Lines in green, indicate a connection between two points in the board. Lines in black offsetting the green lines indicate curves cutting the copper surface, creating the end routes between the connect coordinates in the board. Lines in yellow indicate bridges, connecting two points from the top side of the board via a wire. Lines in red, indicate components or connectors of the board and their orientation.

The Motors Hub controller is composed of the following elements:

  1. A PCB board.
  2. The printed schematic glued on top of the PCB, indicating the location of components and the underlying routes of the PCB.
  3. One ESP32 with 38 pins.
  4. Two 20-pin female headers allowing to remove the ESP32.
  5. One 2-pin female header for connecting the 12v fan.
  6. One 4-pin female header.
  7. One 2-pin JST male connector for the 5v supply.
  8. One 3-pin JST male and female connector used to connect two temperature sensors via the one wire protocol.
  9. Two Green 5mm Screw terminal PCB Connectors, one for the speed link of both motors and one for the 12v input.
  10. Two 5-wire 7cm ribbon cable, used to connect the power modules.
  11. Two 5-pin female headers used to connect the power modules at the end of ribbon cable.
  12. One 3-wire 7cm ribbon cable, used to connect the temperature sensors.
  13. Two temperature sensors DS18B20 connected via one wire.
  14. Pieces of wire for implementing the PCB bridges as indicated by the yellow color in the PCB.PRINT.Stickers schematic.
  15. A case cooler 8cm LogiLink FAN101 at 12V.
  16. The Agrofelis Motor Hub Power Driver modules and the Agrofelis Motors hub ADAC module.
  17. Non-mandatory connectors, two 2-pin terminal, high current red and black wire, male and female connectors to power the analog motor drivers with.
  18. Glue stick to secure the copper side of the pcb from extrernal factors applied after its function has been verified.
  19. The software for the back and front dual motor driver.

Remarks:

  • One pin is trimmed off the twenty pin female headers, to match each side of the 19 pins of the ESP32.
  • The temperature sensor male headers, are removed and connected with the 3-wire ribbon cable, to lower their height profile.

Various listed elements of the controller, are layed out by the following photo.

Components composing the Motors hub controller

Below, the module with most of its elements established, is illustrated.

Photo of the assembled motors hub controller

The temperature sensors as positioned and secured using capton tape in the top part of the structural component, are presented below.

Closeup of the two temperature sensors located in the laser cut slots of the top body of the structural component.

Photo the temperature sensors isolated using temperature resistant capton tape

After the functionality of the board has been verified, the copper side of the PCB is shielded using hot glue to prevent corrosion and improve its longevity.

The copper side of the PCB, shielded using hot glue

The schematics and source files to manufacture part 1 using a regular CNC equipped with a drill, are located within the following folder:

More specifically, the folder documents the procedure for exporting and transforming the Rhino diagrams into two SVG files and consequently to two NC instructions files, enhanced using two custom JavaScript applications.

The PCB board is developed in two phases. The first phase handles the drilling aspect using a drill bit, specifically for this purpose. In the second phase, the drill bit is changed into one appropriate for curving the copper of the PCB.

Within the aforementioned folder, the following respective files encode the desired movements to be perform.

The SVGs are converted into CNC instructions using the open source laserGRBL software. Consequently, using the following JavaScript applications the NC files are enhanced to incorporate Z axis movements based on the continuity and the coordinates of the schematics and the scope of the instructions (drilling or routing).

The end instructions to reproduce the board are the:

The first pattern indicating the paths visiting each hole to make and the second pattern indicating the curves to route, are illustrated by the following figure.

The PCB's drilling and curving patterns

The top non conductive cover of the PCB is enriched with a diagram printed in photographic paper, glued and punctured using a needle. The related PDF containing more than one diagram to cover four pcb, is stored in the following folder.

Multiple layout covers of the PCB, printed on an A4 page, cut and glued on the top side of controller

Motor hub power module

This sub-module of the Motors Hub Driver decomposes the functionality of powering , sensing the current and reversing the direction of a motor hub driver.

Two identical modules are employed for the first and second motor driver mounted on the left and right side of the structural component of the module, vertically within the curved slots. The power modules interfaces with the Motors hub controller using a 5-wire ribbon cable carrying 12v & 5v, and the signals for activating two relays, one controlling the direction of the motor and another chained with a large relay supplying high current power to the motor driver. The module interfaces indirectly with the controller module via the ADAC module capable of monitoring a 5v signal and more specifically with the current sensor of the power module.

The PCB is illustrated by the following figure.

The PCB layout diagram of the Motor hub power module component

Lines in green, indicate a connection between two points in the board. Lines in black offsetting the green lines indicate curves cutting the copper, creating the end routes between connected points in the board. Lines in yellow, indicate bridges connecting two points from the top side of the board via a wire. Lines in red, indicate components or connectors of the board and their orientation.

The PCB is manufactured using a low budget VEVOR CNC 3018 Pro.

A low cost CNC mounted with a drill, curving an one side copper plated PCB fabricating the Motor hub power module

The Motors Hub Power Driver is composed of the following elements:

  1. A PCB board, with its schematics located within PCB.CNC.power/ folder.
  2. The PCB top side printed cover located within PCB.PRINT.Stickers.
  3. Two relays trigger/able with 3v [HK4100F-DC 3V SHG Relay 6Pin].
  4. One car relay, trigger/able with 12v with 20 amp capacity [6770718 - 12v 20A].
  5. An [ACS712] 20 amp current Sensor.
  6. One 5-pin male header.
  7. A JST-SM 2-pin connector, connecting with the motor driver reverse function.
  8. One small wire for connecting the PCB with the 20 amp relay.
  9. One 3-pin header for connecting the PCB with the 20 amp relay.
  10. One 4cm high current wire.
  11. One 6.2mm female connector.
  12. Glue stick to secure the copper side of the pcb from corrosion.
  13. Two 40v 1amp diodes, protecting the digital GPIO of the ESP32 from the back voltage, potentially generated by the Relay coils.

This sub-module is used twice, within the Motors hub driver module.

Remarks:

  • Two pins of the 3v relays are trimmed as illustrated in the schematics, interfacing with the PCB with only the utilised pins.
  • The ACS712 20 amp current sensor pins/connectors are de-soldered and pins are soldered from the bottom side of the sensor's PCB, interfacing with the PCB of the module.
  • It was noticed that not all HK4100F-DC 3V were operational with ESP32. About 45% of these relays are manufactured more efficiently and are triggerable by the low amp digital output of the ESP32. During tests those found to cooperate with the ESP32, were triggerable with less voltage, 1.8v, while the non triggerable ones required at least 2v. This issue can be mitigated by employing a ULN2003 relay driver circuit IC, which could be integrated in either the power module or the controller module.
  • A diode not depicted by the photos is installed in parallel with the relay's triggering pins.

Various elements of the controller are layout by the following photo.

A photo of the parts composing the Motors hub driver module

Below, the module and details for establishing its components, are provided.

Close up of the pins and wire used to mount the 20 amp Relay on the PCB

Close up of the 20 amp Relay mounted on the PCB by interfacing with the triggering pins and the 30V power channel

Close up photo of the current sensor, mounted on the PCB

The bottom/copper side of the assembled module, is captured below.

The copper side of the implemented PCB

The assembled module with its counterpart, are captured by the following photos.

The implemented motor hub power module

The two motor hub power modules ready to be mounted into the sides of the structural component

After the functionality of the board was verified, the copper side of the PCB was shielded using hot glue to prevent corrosion and improve its longevity.

The schematics and source files to manufacture part 1 using a regular CNC equipped with a drill, are located within the following folder:

More specifically. the folder documents the procedures for exporting and transforming the Rhino diagrams into two SVG files and consequently to two NC instructions files, enhanced using two custom JavaScript applications.

The PCB board is developed in two phases. The first phase handles the drilling, using a drill bit appropriate for drilling. In the second phase, the drill bit is changed into an appropriate one for curving the copper of the PCB.

Within the folder, the following respective files encode the related movements to be followed by the CNC.

The SVGs are converted into CNC instructions using the open source laserGRBL software. Consequently, using the following JavaScript applications developed, the NC files are enhanced to incorporate Z axis movements based on the continuity and coordinates of the schematics and the scope of the instructions (drilling or routing).

The end instructions to reproduce the board, are the:

The first pattern indicating the paths visiting each hole to make and the second pattern indicating the curves to route, are illustrated by the following figure.

The PCB’s drilling and curving patterns

The top non conductive cover of the PCB is enriched with a diagram printed in photographic paper, glued and punctured using a needle. The related PDF containing more than one diagram to cover nine PCBs, is stored in the following folder:

Multiple layout covers of the PCB, printed on an A4 page, cut and glued on the top side of controller

Motors hub ADAC

This sub-module of the Motors Hub Driver allows to interface 5v sensors with ESP32, operating at 3.3v via a bidirectional logic level conditioner. Moreover, using an external ADAC the module can handle additionally 4 analog channels, enough so an ESP32 can operate and sense two motor drivers simultaneously.

The module interfaces with the two current sensors signals of the power modules as well as with the six hall sensors, tracking the rotation of the motors hubs.

The PCB is illustrated by the following figure.

Motors hub ADAC PCB layout

Lines in green, indicate a connection between two points in the board. Lines in black offsetting the green lines, indicate curves cutting the cooper, creating the end routes between connected points of the board. Lines in yellow, indicate bridges connecting two points from the top side of the board via a wire. Lines in red, indicate components or connectors of the board and their orientation.

The Motors Hub ADAC is composed of the following components:

  1. A PCB board, with its schematics located within PCB.CNC.adac/ folder.
  2. The PCB top side printed cover located within PCB.PRINT.Stickers.
  3. One MCP3008 8-channel 10 bit ADC.
  4. One 4-channel I2C safe Bi-directional Logic Level Converter between 5V and 3.3V.
  5. One 7-pin ribbon cable for connecting with the ADAC module.
  6. One 4-pin male header for connecting with the Agrofelis controller.
  7. One 8-pin female header.
  8. Two 7cm single wire cables connecting the ADAC with the current sensors of the Agrogelis Motor Power driver.
  9. Glue stick to secure the copper side of the PCB from extrernal factors applied after its functionality has been verified.

Remarks:

  • The first and second channels of the MPC3004 ADAC are connected to the current sensors of the power module.
  • The remaining channels of the ADAC are connected with the hall sensors of the motor. The Hall sensors signals connected between the motor and the analog motor drivers are intercepted following the yellow, green, blue, yellow, green, blue and closing with the ground.
  • The ground of the halls sensors outlet, is connected with the ground pin of the Motors hub ADAC module.
  • One pin from the 8-pin female header, is trimmed off to match the 7 input pins of the module.

Various listed elements of the sub-module, are layout by the following photo.

The components composing the Motors hub ADAC module

The module with its components mounted in the PCB

The module interfaces with the controller module via the SPI interface, as depicted by the following photo.

The Motors hub ADAC module connected with controller and mounted on the top part of the structural component

After the functionality of the board was verified, the copper side of the PCB was shielded using hot glue to prevent corrosion and improve its hardness.

The schematics and source files to manufacture part 1 using a regular CNC equipped with a drill, are located within the following folder:

More specifically the folder, documents the procedure for exporting and transforming the Rhino diagrams into two SVG files and consequently to two NC instructions files, enhanced using two custom JavaScript applications.

The PCB board is developed in two phases. The first phase handles the drilling, using a drill bit appropriate for drilling. In the second phase, the drill bit is changed into one appropriate for curving the copper of the PCB.

Within the folder, the following respective files encode the desired movements to be action-ed.

The SVGs are converted into CNC instructions using the open source laserGRBL software. Consequently, using the following JavaScript applications the NC files are enhanced to incorporate Z axis movements based on the continuity, the coordinates of the schematics and the scope of the instructions, as drilling or routing.

The end instructions to reproduce the board, are the:

The first pattern indicating the paths each drill follows and the second pattern indicating the curves to route, are illustrated by the following figure.

The PCB’s drilling and curving patterns

The top non conductive cover of the PCB is enriched with a diagram printed in photographic paper, glued and punctured using a needle. The related PDF containing more than one diagram to cover, eight PCBs, is stored in the following folder:

Multiple layout covers of the PCB, printed on an A4 page, cut and glued on the top side of controller

Agrofelis Motors Hubs Software

The software of the modules is contained within the src folder. The software is composed of a C++ application and web application developed to reflect and control the internal state of the microcontroller.

The repository contains two instances of the C++ software, corresponding to the front or the back motor hub drivers, controlling a total of four wheels persisted in the following paths. The software primarily differentiates in declaring the identifier of the module.

Driver Structure

This Agrofelis Motors Hubs Driver Software adheres to a common baseline pattern that has been established in nearly all Agrofelis modules. This baseline pattern introduces a "context" class, which is passed to practically all classes as a common ground, enabling instances to exchange information when necessary. The second baseline pattern established refers to the frequency of execution, providing the facilities to trigger specific functionalities at desired intervals. This design consideration accommodates components like the gyroscope, or in our case the hall sensors, which require much more frequent updates compared to components such as GPS or potentiometer sensors. As a bootstrap template, the software provides six different execution frequencies, ranging from 50 milliseconds to 5-second intervals. Using this approach, delays blocking the execution are avoided and the different calls can be organized based on their responsiveness requirements.

The software encodes easy to follow concrete implementations such as current sensors and motor(s), resulting in a one-to-one mapping between the physical element and its respective software counterpart.

The core of the project revolves around an ESP32 microcontroller and various components used to sense and control two motor hub drivers, each capable of delivering 250 watts of power. The module leverages web sockets to share the internal state of the components as well as to control it. This approach provides a robust interface with a compact communication protocol, enabling multiple actors to view, control or relay information from the module. The software initializes both a web and a WebSocket server, facilitating over-the-air firmware updates. The module itself comprises an ESP32, a logic-level shifter, two current sensors and six relays, two of which are connected in series with a high-amperage relay (rated at 20 amps).

The software monitors all sensors, detects hardware errors, allows to remotely action commands operating the module and adapts the voltages dynamically to reach and maintain the desired actuation across the two motors.

The following table indexes and summarizes the implemented classes of the Agrofelis motors hub driver software.

Class Description
DualMotorDriverBack.ino and DualMotorDriverFront.ino Boots the application, initialises the top classes and encodes the triggering frequencies of various functional elements.
Context Provides a common ground for sharing information and encodes the triggering frequencies, helpful functions and a unique identifier of the model. The object more over hosts the two DallasTemperature sensors reading facilities by tapping to the Onewire interface. The class also encodes the identifier of the module, annotating the reflected indicator data.
Invoker Tracks the execution frequencies so these are called at the right time.
CommandParser Base class for monitoring and parsing the web socket interface. The class defines the function parsing compact commands of the form <1|1>, where the first parameter corresponds to the applicable action number and the second is an integer value used by the related action.
ADAC Class establishing the unctions for utilizing the MCP3008 8 channel 10 bit analog ADAC paired with a level shifter connected using the SPI interface
Sensor Base class wrapping the functions conveying a sensor. The class reads an analogue port when the apply function is being triggered. The class maintains a gated smoothing read out of the sensor by comparing the previous mean with the current read value. Moreover, when a movement is detected based on the absolute difference of the first derivative, a boolean flag is maintained. Lastly, it prints out the object's internal state on print(), reflecting the sensor's port, smoothed value, un-smoothed sensor value and whether or not the sensor is detecting a movement.
SensorADACCurrent Class extending the Sensor class reading the date over the ADAC and implementing the specialties of a current sensor. The class translates raw sensor values to amperage. Moreover, because the current sensor reads rapid current spikes that can be missed, the class maintains a decaying max read value that is renewed based on the maximum observed value within a time window.
SensorHalls The class reads and decodes the 3 hall sensor values in high frequency and derives the rotational change in positive or negative rotation. The class can detect a problem in the ADAC interface, detect if there is power and also detect if the sensors have missed a step. Lastly the class tracks the cumulative wheel rotation, functioning as an odometer as well as an absolute position. The class is utilised by the Motor class.
Motor The class implements the control and sensing of the motor by utilizing the SensorADACCurrent, the SensorHalls and the temperature sensor. The class tracks the motor's state, current, projected and desired rotational speed and adapts the voltage driving the motor accordingly. The class implements the function to rotate the motor either forward or backwards or to maintain a particular rotational speed via the feedback mechanism accounting for external factors, such as resistance. The class tracks the temperature and current and cuts off the power to the module if excessive heat or current is detected. The class moreover allows for an external actor to set a positive or negative impulse in the computation, for example to synchronize it with its counterpart motor. The class is instantiated with the board port mappings, enabling its re-usability.
MotorsHubController The class implements the control code to actuate two motors in an adaptive synchronized way. It extends the CommandParser and defines the applicable commands that drive the actuators. Furthermore, the class publishes the internal state of the Motors, their sensors and their states. The class cam monitor the rotational speed difference of the motors and adapts them in order to maintain the desired synchronized or differential motion of the left and right in-wheel motor hubs.

Single Page Web Application

The Agrofelis motor hub driver establishes a WebSocket server that implements a message protocol for reflecting in a standardized way the indicator data of the module and controlling its exposed commands. Consequently, multiple agents can tap into this channel and operate its functionality. One such "agent" has been implemented in the form of a client side web application. The HTML-based web application follows a simple pattern where HTML elements are tagged to correspond with specific commands. For instance, an input element might correspond to command 3, which controls speed. Moreover, by simply setting the class of an input element to “sensor”, it will automatically reflect the value received from the motor hub. A common JavaScript file parses the HTML structure and, with very few annotations, reflects motor hub sensor values in the HTML. Likewise, it listens for input modifications and submits the related command to the module.

Each of the motor hub drivers can be accessed also via lightweight standalone web applications, enabling to review the internal state of the module as well as to control it. The two respective applications, differentiating mostly to specify which sensor identifiers they should tap into, are available in the following paths:

Both of the HTML files utilise the following assets:

File Description
styles.css Defines the css styles of the web application.
motorsHubController.js Establishes a web socket connection with the related IP of the module. Parses the HTML to identify the related sensors and actuators. Listens for interface changes as well as for websocket messages and according reflects or submits the related information.
agrofelis_logo_white_web.svg The scalable vector graphic logo of the project.
jquery.min.js minified js library dependency JQuery.

Special care has been devoted so the setup and code is very lightweight, clean and straightforward in order to be easily modifiable, assisting the rapid prototyping.

Unificator

The motors hub driver application runtime information and its modules can also be accessed and controlled via the Agrofelis Unificator software, which is able to unify multiple Agrofelis modules connected via various interfaces, including Serial, WiFi, Websockets, and USB. Lightweight single-page web applications can easily map, bind and monitor the internal state of two motor hub drivers and their sensors, as well as other modules as seen by the following screenshot.

Agrofelis Unificator

For further details on the Agrofelis Unificator software, please refer to the related chapter in the Agrofelis documentation.

Power Distribution Module

The module receives power from the power distribution module, which is documented in the relevant chapter of the documentation. [https://github.com/meltoner/agrofelis/tree/main/components/vehicle-power#switchable-power-points]

Motors Hub Components and Indicative Suppliers

In the pursuit of crafting a resilient and high-performing robot, the selection of reliable suppliers for essential components holds profound significance. We present a comprehensive overview of the suppliers who have contributed to our robot-building endeavor. This compilation of essential supplier information not only showcases the parts acquired and supplier names but also includes product types and URLs for direct reference, along with pertinent notes where necessary. Furthermore, the table presents information about quantities, VAT-inclusive prices, and subtotals, all denominated in euros (€), allowing for a detailed financial analysis. Keep in mind that this list of suppliers serves as an illustrative guide, aimed primarily at providing details about the requisite components essential for the construction of each module.

Motors hub controller module

The following table provides an overview of indicative suppliers associated with various parts described in the motors hub controller module.

No. Product Product URL Supplier Used Quantity VAT Price (€) Subtotal (€) Note
#1 Copper board PCB board GRobotronics 0.25 9.90 2.48 Base Component
#2 A4 paper Paper Bitprice 1 12.00 12.00 Base Component
#3 ESP32 with 38 pins Development Board AliExpress 1 3.59 3.59 -
#4 20-pin female headers Female Pin Header Kit Nettop 1 9.90 9.90 Base Component
#5 2-pin female header Female Pin Header Kit Nettop 0 9.90 0.00 Shared Resource
#6 4-pin female header Female Pin Header Kit Nettop 0 9.90 0.00 Shared Resource
#7 2-pin JST male connector XH Connector Kit GRobotronics 1 6.20 6.20 Base Component
#8 3-pin JST male and female connector XH Connector Kit GRobotronics 0 6.20 0.00 Shared Resource
#9 Green screw terminal 2P Screw Terminal GRobotronics 2 0.30 0.60 -
#10 Two 5-wire ribbon cable Ribbon cable 28AWG GRobotronics 0.50 1.00 0.50 Shared Resource
#11 5-pin female headers Female Pin Header Kit Nettop 0 9.90 0.00 Shared Resource
#12 One 3-wire ribbon cable Ribbon cable 28AWG GRobotronics 0.15 1.00 0.15 Shared Resource
#13 DS18B20 temperature sensors DS18B20 Temperature Sensor Nettop 2 2.20 4.40 -
#14 Wire pieces for PCB bridges Ribbon cable 28AWG GRobotronics 0.05 1.00 0.05 Shared Resource
#15 8 cm case cooler Case Cooler MG Manager 1 2.83 2.83 -
#17 Black and red wire Black-red wire GRobotronics 1 8.00 8.00 Base Component
Green screw terminal 2P Screw Terminal GRobotronics 2 0.30 0.60 -
Connectors Standoff, Bolts & Nuts Kit GRobotronics 1 4.90 4.90 -
#18 Glue gun Hot Glue Stick GRobotronics 1 0.40 0.40 -
#19 In-House Developed Software Dual Motor Driver Software In-House 1 0.00 0.00 -
Total 56.60

So, the cost for manufacturing the motors hub controller, excluding expenses related to shipping and assembly, amounts to approximately 56 euros.

Motors hub power module

The subsequent table presents indicative suppliers for the necessary components detailed within the motors hub power module.

No. Product Product URL Supplier Used Quantity VAT Price (€) Subtotal (€) Note
#1 Copper board PCB board GRobotronics 0.50 9.90 4.95 Shared Resource
#2 A4 paper Paper Bitprice 0 12.00 0.00 Shared Resource
#3 3V SHG relay 6Pin Relay Hellas Digital 2 0.50 1.00 -
#4 12V car relay 20A Microrele Soulis Niaos 1 6.00 6.00 -
#5 ACS712 20A current sensor module Current Sensor AliExpress 1 1.02 1.02 -
#6 5-pin male header Male Pin Header Hellas Digital 1 0.24 0.24 Base Component
#7 Green screw terminal 2P Screw Terminal GRobotronics 1 0.30 0.30 -
#8 Small wire for PCB Ribbon cable 28AWG GRobotronics 0.05 1.00 0.05 Shared Resource
#9 3-pin male header Male Pin Header Hellas Digital 0 0.24 0.00 Shared Resource
#10 4 cm high current wire Black-red wire GRobotronics 0 8.00 0.00 Shared Resource
#11 6.2 mm female connector Crimp Wire Connectors Soulis Niaos 1 0.20 0.20
#12 Glue stick Hot Glue Stick GRobotronics 1 0.40 0.40 -
#13 1A 40V Schottky Diode Schottky Diode Hellas Digital 1 0.08 0.08 -
Total 14.24

In terms of fabricating the motor hub power driver, the overall cost, excluding shipping and assembly expenses, sums to around 14 euros.

Motors hub ADAC module

Finally, the ensuing table outlines the components and coresponding vendors of the motors hub ADAC module.

No. Product Product URL Supplier Used Quantity VAT Price (€) Subtotal (€) Note
#1 Copper board PCB board GRobotronics 0.50 9.90 2.48 Shared Resource
#2 A4 paper Paper Bitprice 0 12.00 0.00 Shared Resource
#3 MCP3008 8-Channel 10-Bit ADC Microcontroller Hellas Digital 1 5.87 5.87 -
#4 4-channel I2C-safe Bi-directional Level Converter GRobotronics 1 4.90 4.90 -
#5 7-pin ribbon cable Ribbon cable 28AWG GRobotronics 1 0.60 0.60 -
#6 4-pin male header Male Pin Header Hellas Digital 0 0.24 0.00 Shared Resource
#7 8-pin female header Female Pin Header Kit Hellas Digital 1 0.20 0.04 Base Component
#8 One wire cable Ribbon cable 28AWG GRobotronics 1 0.60 0.60 -
#9 Glue stick Hot Melt Glue Stick GRobotronics 1 4.00 4.00 -
Total 18.49

So, the estimated cost for producing the motor hub ADAC amounts to approximately 18 euros, excluding shipping and assembly charges.

Cost estimation overview

This section outlines the indicative costs associated with constructing the Agrofelis motors hub driver module. These figures are derived from estimated costs per item discussed in the indicative suppliers section, encompassing a diverse array of components crucial to the motor hub driver's assembly. It is important to note that the cost estimation provided in this section incorporates applicable taxes. However, it is crucial to acknowledge that this estimation serves as a preliminary assessment and is subject to potential variations.

The values provided here are based on information gathered from indicative suppliers and are intended to provide a rough estimate of the project's financial requirements. In this estimation, we have focused solely on the intrinsic value of each component and have excluded supplementary expenses such as transportation, customs clearance, and unforeseen charges. These figures are the initial step in budget assessment and lay the foundation for more detailed financial planning.

The table showcased below provides a detailed breakdown of components and their indicative costs, enhancing comprehension for informed decision-making and budget formulation.

Construction Part Sub-Total (€)
Μotors hub controller 56.60
Μotors hub power driver 14.24
Μotors hub ADAC 18.49
Grand Total 89.33

Consequently, we observe that the total manufacturing cost for the motor hub controller, power driver, and ADAC is approximately 90 euros, exclusive of shipping and assembly costs.

Conclusion

The rationale of the module, its sub components and their elements were elaborated. Photos outlining details of the different phases of the manufacturing process are provided. Source code files, schematics, instructions and printouts to reconstruct the Agrofelis motors hub driver module have been documented.

motors_hub_driver_real2.jpg