Adding skriveleifs

This commit is contained in:
Tournesol02 2026-05-14 18:43:31 +02:00
parent 09e55c2feb
commit 1f86a799d0

View file

@ -183,28 +183,11 @@ carries higher hardware costs (sensors, processing power).
FOC provides faster response times and better load disturbance rejection \cite{jomsa-nga_torque_2024}.
\section{Research Gap}
The literature presented in the previous sections shows that significant work has been carried out on BLDC
motor control strategies, especially for torque ripple reduction, efficiency improvement, and dynamic performance
optimisation. Open-source projects such as VESC also provide high-performance and flexible solutions for electric
mobility systems.
However, most existing works mainly focus on control performance and do not consider low-tech constraints such as
local manufacturing, hardware repairability, or component accessibility. In many existing controllers, the hardware
design remains difficult to reproduce or repair without specialized equipment or advanced electronic knowledge.
In addition, the integration of wireless communication introduces new security concerns. While BLE connectivity
simplifies configuration and monitoring, unauthorized access to controller parameters could create safety risks,
especially for electric cargo bikes operating in public spaces.
To the best of our knowledge, there is currently no open-source motor controller that simultaneously addresses
high-performance control, local manufacturability, repairability, and BLE security for decentralized cargo bike
applications.
This project therefore aims to explore a modular and repair-oriented motor controller architecture compatible
with VESC while remaining adapted to the constraints of the Manufacture Autonome Décentralisée (MAD).
\section{Research gap}
Despite this progress, limited research has examined the adaptation of open-source motor controllers to LowTech and
repairability constraints. To date, researchers have not addressed the challenge of designing a controller that can
be locally fabricated, repaired with standard components, and secured against unauthorised wireless access requirements
that are critical for decentralised, community-operated fleets.
\section{Aim and Research Objectives}
@ -245,161 +228,143 @@ assistance based on system dynamics.
\section{STM32-Based Field-Oriented Control Motor Drive}
\label{sec:foc}
This section presents the design and implementation of a high-performance
motor controller based on Field-Oriented Control (FOC).
\subsection{Choice of FOC Over Trapezoidal Commutation}
Table~\ref{tab:foc_vs_trap} summarizes the key differences between the
two commutation strategies, based on the literature reviewed in
Section~\ref{sec:related}.
\begin{table}[htbp]
\caption{Comparison between FOC and trapezoidal (six-step) commutation}
\label{tab:foc_vs_trap}
\centering
\begin{tabular}{lcc}
\toprule
\textbf{Criterion} & \textbf{FOC} & \textbf{Six-Step} \\
\midrule
Torque ripple (at 500 rpm) & \SI{18.4}{\percent} & \SI{35.7}{\percent} \\
Low-load efficiency & High & Moderate \\
High-speed switching loss & Higher & Lower \\
Position sensor requirement & Encoder (high resolution) & Hall sensors \\
Implementation complexity & High & Low \\
Hardware cost & Higher & Lower \\
Dynamic response & Fast & Standard \\
\bottomrule
\end{tabular}
\end{table}
For our cargo bike application, rider comfort and smooth torque delivery
are priorities. FOC was therefore selected for the high-performance
controller, while a separate low-tech six-step board (Section~\ref{sec:sixstep})
was developed for repairability.
\subsection{Base Design: Cheap FOCer-2 Project}
The starting point was the open-source \textit{Cheap FOCer-2} project,
which provides a complete KiCad design for a VESC-compatible board based
on an STM32F405 microcontroller. This design includes:
\begin{itemize}
\item A three-phase MOSFET full-bridge power stage.
\item Gate drivers with built-in dead-time insertion.
\item Shunt resistors for phase current sensing.
\item USB and CAN interfaces.
\item An expansion header for encoder or Hall sensors.
\end{itemize}
The existing KiCad schematic and layout were used as the baseline for
our adaptations.
\subsection{Integration of the Rocacher FOC Tile}
Mr. Rocacher provided the Kicad schematic of a ready-to-use FOC tile based on an STM32L476
microcontroller.
The initial idea was to make this tile \textit{pluggable} into our
carrier board, similar to an Arduino shield. This would allow :
\begin{itemize}
\item Easy replacement of the computing core without re-soldering.
\item Modular upgrades of the microcontroller.
\item Simplified repair and maintenance.
\end{itemize}
However, the Cheap FOCer-2 project was not designed for such modularity.
Its routing is dense and highly optimized for a single, non-removable
F405 chip. Adapting it to accept an L476 tile while preserving all
critical functions (PWM, current sensing, USB communication) proved
challenging.
\subsection{Pin Compatibility Verification: L476 vs F405}
Before starting the PCB modifications, a pin compatibility study was carried out between the STM32L476
used on the Rocacher tile and the STM32F405 originally used in the Cheap FOCer-2 design. The objective
was to verify that the main functions required by the VESC firmware could still be used after replacing
the original microcontroller.
The verification mainly focused on:
\begin{itemize}
\item Physical pinout compatibility in the LQFP64 package,
\item PWM timer for Alternate functions,
\item USB DP/DM pins (PA11/PA12),
\item Analog inputs for current sensing,
\item UART communication for BLE integration.
\end{itemize}
During this analysis, three main pin conflicts were identified.
\begin{figure}[!h]
\centering
\includegraphics[width=\linewidth]{../PCB/CompatibiliteL4F4.pdf}
\caption{Comparison of F405 and L476 pin configurations}
\end{figure}
The first conflict concerned the SPI\_MISO signal on pin PA6. In the original STM32F405 design, this pin is
used for SPI communication related to current sensing. On the STM32L476 tile, the same pin is associated with
a DAC output, creating a functional conflict. To solve this issue, the SPI communication line was remapped
to PA5 on the L476, which offers a compatible alternate function.
The second issue concerned the EN\_GATE signal. In the original design, this signal was connected to PB5 on
the STM32F405. However, this pin is not accessible on the L476 tile. The signal was therefore moved to PC5,
configured as a standard GPIO output.
Finally, Hall sensor C was originally connected to PC8 (TIM8) on the STM32F405. Since this pin is not available
on the tile connector, the Hall sensor input was reassigned to PB3 using the TIM2\_CH2 alternate function,
which preserves the input capture capability required for Hall sensor decoding.
All other important functions remained compatible between the two microcontrollers, including PWM generation,
complementary PWM outputs, encoder inputs, UART, USB, and CAN communication. Some differences between the ADC
peripherals of the STM32F405 and STM32L476 still remain and will require firmware adaptations in future work.
\subsection{Schematic Design and KiCad Implementation}
The original Cheap FOCer-2 schematic was modified in KiCad in order to replace the integrated STM32F405
microcontroller with connectors for the Rocacher STM32L476 tile. The objective was to make the control part more
modular and easier to replace without modifying the power stage of the board.
The main modifications performed on the schematic were:
\begin{itemize}
\item Removal of the STM32F405 and its associated passive components.
\item Addition of two 20-pin headers for the L476 tile connection.
\item Re-routing of PWM, ADC, USB, and communication signals toward the headers.
\end{itemize}
Special attention was given to the routing of critical control signals, especially the PWM outputs used for
motor commutation and the analog signals used for current sensing.
After the modifications, the schematic was verified using the KiCad Electrical Rule Check (ERC). No electrical
errors were detected during this verification step, which validated the consistency of the schematic before
starting the PCB routing phase.
\subsection{Routing Challenges and Current Status}
After validating the schematic, the PCB routing phase was started in KiCad. The original Cheap FOCer-2 board
uses a very compact layout with dense routing around the STM32F405 microcontroller and the power stage.
Integrating connectors for a removable STM32L476 tile introduced several additional routing constraints.
One of the main difficulties was maintaining proper signal routing while keeping enough space for the tile
connectors and preserving the integrity of the control signals. Particular attention had to be given to the PWM
signals, current sensing traces, and power connections.
Several issues were encountered during the routing process:
\begin{itemize}
\item Some connector footprints associated with the tile did not appear correctly after importing the schematic
into the PCB layout.
\item The routing of high-current paths, especially the battery and motor phase connections, become more complex
due to the additional connectors and required extra vias.
\item Some Decoupling capacitors had to be repositioned, which could potentially affect switching noise and power
supply stability.
\end{itemize}
At the current stage of the project, the schematic has been validated and the PCB layout is still under development.
Once the routing is completed, the board will be manufactured and tested using the VESC firmware adapted for the
STM32L476 tile.
This section presents the design and implementation of a high-performance
motor controller based on Field-Oriented Control (FOC).
\subsection{Choice of FOC Over Trapezoidal Commutation}
Table~\ref{tab:foc_vs_trap} summarizes the key differences between the
two commutation strategies, based on the literature reviewed in
Section~\ref{sec:relatedwork}.
\begin{table}[htbp]
\caption{Comparison between FOC and trapezoidal (six-step) commutation}
\label{tab:foc_vs_trap}
\centering
\begin{tabular}{lcc}
\toprule
\textbf{Criterion} & \textbf{FOC} & \textbf{Six-Step} \\
\midrule
Torque ripple (at 500 rpm) & \SI{18.4}{\percent} & \SI{35.7}{\percent} \\
Low-load efficiency & High & Moderate \\
High-speed switching loss & Higher & Lower \\
Position sensor requirement & Encoder (high resolution) & Hall sensors \\
Implementation complexity & High & Low \\
Hardware cost & Higher & Lower \\
Dynamic response & Fast & Standard \\
\bottomrule
\end{tabular}
\end{table}
For our cargo bike application, rider comfort and smooth torque delivery
are priorities. FOC was therefore selected for the high-performance
controller, while a separate low-tech six-step board (Section~\ref{sec:sixstep})
was developed for repairability.
\subsection{Base Design: Cheap FOCer-2 Project}
The starting point was the open-source \textit{Cheap FOCer-2} project,
which provides a complete KiCad design for a VESC-compatible board based
on an STM32F405 microcontroller. This design includes:
\begin{itemize}
\item A three-phase MOSFET full-bridge power stage.
\item Gate drivers with built-in dead-time insertion.
\item Shunt resistors for phase current sensing.
\item USB and CAN interfaces.
\item An expansion header for encoder or Hall sensors.
\end{itemize}
The existing KiCad schematic and layout were used as the baseline for
our adaptations.
\subsection{Integration of the Rocacher FOC Tile}
Mr. Rocacher provided the Kicad schematic of a ready-to-use FOC tile based on an STM32L476
microcontroller.
The initial idea was to make this tile \textit{pluggable} into our
carrier board, similar to an Arduino shield. This would allow :
\begin{itemize}
\item Easy replacement of the computing core without re-soldering.
\item Modular upgrades of the microcontroller.
\item Simplified repair and maintenance.
\end{itemize}
However, the Cheap FOCer-2 project was not designed for such modularity.
Its routing is dense and highly optimized for a single, non-removable
F405 chip. Adapting it to accept an L476 tile while preserving all
critical functions (PWM, current sensing, USB communication) proved
challenging.
\subsection{Pin Compatibility Verification: L476 vs F405}
Before modifying the PCB, a thorough pin compatibility check was
performed between the STM32L476 and the STM32F405
(original Cheap FOCer-2 design). The following aspects were examined:
\begin{itemize}
\item Physical pinout in LQFP64 package.
\item Alternate functions for PWM timers.
\item USB DP/DM pins (PA11/PA12).
\item Analog inputs for current sensing.
\item UART for BLE communication.
\end{itemize}
Three pin conflicts were identified and resolved as follows.
First, the SPI\_MISO function on PA6 for the STM32F405 conflicts with a
DAC output on the same pin for the STM32L476 tile. Since this pin is
used for current sensing via SPI in the original Cheap FOCer-2 design,
the SPI communication was remapped to PA5 on the L476, which provides a
compatible alternate function.
Second, the gate driver enable signal (EN\_GATE) was originally assigned
to PB5 on the F405. This pin is not accessible on the L476
tile. The signal was therefore moved to PC5, which is available and
can be configured as a standard GPIO output.
Third, Hall sensor C was originally connected to PC8 (TIM8) on the F405.
This pin is not available on the L476 tile. The Hall sensor input was
therefore reassigned to PB3, configured as TIM2\_CH2, which provides
the necessary input capture functionality for Hall signal decoding.
All other critical functions (PWM timers, complementary PWM, enable
signals, encoder inputs, UART, USB, and CAN) remain fully compatible
between the two microcontrollers. The ADC channel differences between
the F405 (ADC123/ADC12) and the L476 (ADC3) must still be handled in
firmware, as noted previously.
\subsection{Schematic Design and KiCad Implementation}
The original Cheap FOCer-2 schematic was modified in KiCad to replace the
integrated F405 with connectors for the L476 tile. The main modifications
included:
\begin{itemize}
\item Removal of the F405 and its associated passive components.
\item Addition of two 20-pin headers to receive the Rocacher tile.
\item Re-routing of PWM, ADC, and USB signals to the headers.
\end{itemize}
The schematic passed Electrical Rule Check (ERC) with no errors.
\subsection{Routing Challenges and Current Status}
The PCB layout was then started. The original Cheap FOCer-2 routing is
very dense. Inserting connectors for the removable tile while maintaining signal integrity proved
difficult.
The main issues encountered were:
\begin{itemize}
\item Some footprints for the tile connectors did not appear correctly
in the layout after schematic import.
\item Routing of high-current paths (battery, motor phases) around the
connectors required additional vias, increasing resistance.
\item Decoupling capacitors had to be repositioned, raising concerns
about switching noise.
\end{itemize}
Currently, the schematic is validated, and the layout is under
development. Once routing is completed, the board will be manufactured
and tested with the VESC firmware adapted to the L476 tile.
% ************************************** SOFTWARE AND CONNECTIVITY *****************************************************
@ -410,7 +375,7 @@ STM32L476 tile.
\subsubsection{First Experiment}
VESC-controllers are not necessarily equipped with Bluetooth-modules by default. Often, it is necessary to add a
BLE-module. A standard HC-05 bluetooth-module compatible with arduino is a great way to send and recieve
BT-module. A standard HC-05 bluetooth-module compatible with arduino is a great way to send and recieve
bluetooth-packets from a host, e.g. a mobile phone, via a bridge translating the bluetooth packets to the UART protocol.
This could be demonstrated using a ESP8622's standard library with said module, by letting us send characters from one
device to another.
@ -661,56 +626,6 @@ where $e_{\text{ref}} = \SI{-0.5}{\meter}$ represents the desired equilibrium of
\subsection{Control Architecture Exploration}
Beyond the standard PI control structure simulated in the previous sections, this project explores a more sophisticated
control law: the Cascaded Loop Architecture. This approach is envisioned as a high-level software enhancement to meet
the robustness and safety requirements inherent to electric cargo mobility. This means that our control law includes two
feedback loops that use two different physical parameters.
The selected cascaded structure is a well-established industry standard, particularly in high-performance motion control
and robotics. Similar architectures are widely employed in Automated Guided Vehicles (AGVs) and platooning systems,
where a “follower” unit must synchronize its dynamics with a “leader” unit through precise feedback loops.
The proposed approach decomposes the complex task of “cart following” into manageable sub-tasks by nesting control
loops:
\begin{itemize}
\item Outer loop: Position control layer.
Using a linear encoder or distance sensor mounted on the trailers hitch, the system measures the relative
displacement (error) between the bicycle and the cargo cart. This error is processed by a Proportional (P)
Controller. The primary goal of this stage is to translate physical distance into a target velocity setpoint. By
saturating the output of this loop, we can prevent the cargo cart from ever exceeding the bicycles speed, thereby
ensuring it never “pushes” the cyclist.
\item Inner loop: Velocity control layer.
The velocity setpoint generated by the outer loop is fed into this internal layer, the inner loop is responsible for
commanding the motor torque directly to compensate for immediate mechanical disturbances. Because this loop operates
at a higher frequency, it can reject disturbances such as sudden changes in rolling resistance or friction, before
they significantly impact the overall position error.
\end{itemize}
\begin{figure}[!h]
\centering
\includegraphics[width=\linewidth]{./Figures/Schema_Autom_PIR.pdf}
\caption{Cascaded control architecture for the bicycle-cargo system.}
\label{fig:cascaded-loop}
\end{figure}
Fig.~\ref{fig:cascaded-loop} illustrates the cascade architecture for the dynamics of the cargo cart.
In this scheme, $x_{\text{ref}}$ denotes the desired position of the bicycle, whereas $x$ represents the measured
position of the cargo cart.
An outer Proportional Controller $K_{p,x}$ converts the position error $e_x = x_{\text{ref}} - x$ into a velocity
reference $v_{\text{ref}}$, which serves as the set-point for the inner loop.
The inner Proportional Controller $K_{p,v}$ then transforms the velocity error $e_v = v_{\text{ref}} - v$ into a
torque reference $\tau_{\text{ref}}$.
This command is processed by the motor/actuator block, which delivers the actual torque $\tau$.
The model of the plant maps this torque to velocity $v$, and the integrator $1/s$ reconstructs the position $x$.
The adoption of a cascaded loop architecture offers decisive advantages but comes with disadvantages. This precision
introduces increased complexity: the multiplication of tuning parameters and the requirement for high-resolution
feedback sensors, such as encoders, raise hardware costs and must come with high-performance software. These technical
constraints represent a significant challenge and may raise other issues.
% ******************************** RESULTS **************************************************************************
@ -778,7 +693,7 @@ cargo cart. The motor current measured during these experiments is shown in Fig.
\begin{figure}[!h]
\centering
\includegraphics[width=\linewidth]{./Figures/Motor_currents.pdf}
\includegraphics[width=\linewidth]{./Figures/Motor_currents.png}
\caption{Measured motor current under three loading conditions.}
\label{fig:motor-currents}
\end{figure}
@ -870,14 +785,6 @@ The VESC-based FOC PCB requires routing completion and prototype
manufacturing. Once fabricated, the board must be tested under real
operating conditions (varying loads, road profiles, and battery voltage).
\subsection{Control Strategy Enhancement}
Future work includes the implementation and comparison of the PI controller and the cascaded control structure on the
cargo cart, in order to evaluate their performance under different conditions (load variations, road profiles, etc.).
In addition, the lack of direct velocity measurements limited the ability to fully characterise the system dynamics.
Adding a speed measurement or improving state estimation would allow a more complete analysis of the model.
% ******************************** CONCLUSION **************************************************************************
\section{Conclusion/Summary}