
Bldc&foc motor controller
bejaouihamza/bldc-foc-pcb
This open-source hardware project is a compact, single-board FOC (Field-Oriented Control) motor driver designed for precision robotics, drones, CNC machines, and automation systems.

A differential drive robot that draws pictures
Vango pcb is an open-source printed circuit board by nmarks99, from the nmarks99/VanGo repository on GitHub, published under the MIT licence. It is a 2-layer board of 72.5 × 66 mm with 16 parts on 48 nets, routed with 115 tracks and 34 vias.
It is built around the XT60PW-M. Its parts include 5 ICs, 5 connectors and 1 switch. It belongs with the robots and motor control boards and the ESP32 boards of this library.
VanGo is a differential drive robot that can draw SVG images on a page.
First, an SVG image is converted to XY coordinates using this online tool: Coordinator. Then, using these XY coordinates, a trajectory of waypoints is generated for the robot to follow. Trajectory tracking is implemented using a simple PID steering control algorithm, and the robot determines its pose in space through wheel odometry, using quadrature encoders on the motors. For more in-depth information, please see the VanGo documentation at https://nmarks99.github.io/VanGo/. VanGo is still relatively early in development and several aspects of the project need more work and fine tuning, such as the trajectory tracking algorithm, a command line interface for the client application, and improved mechanical design. However, in its current state, VanGo demonstrates a good proof of concept.
vango-firmware is the firmware for the ESP32 board based on esp-idf-halvango-client is a desktop command line application for controlling the robotvango-utils is a utility library used by both the firmware and client.hardware directory contains the KiCAD project for the PCBThis project also uses another library I have developed, diff-drive, primarily for pose estimation via wheel odometry. In the future I hope to use both the VanGo and diff-drive projects as starting points for developing a general purpose, high-performance, and open-source, differential drive robot that anyone can build with firmware based on Rust on the ESP32 (think DIY TurtleBot).
One of my biggest motivations for this project was to learn more rust programming, particularly embedded rust, which is why this project is 100% rust code 🦀. Like mostly everyone else, I've primarily used C and C++ for programming microcontrollers in the past, most of the time using the Arduino framework together with PlatformIO which I've found to be a very pleasant experience. After having worked on this project for several months, using Rust on the ESP32, I've found it to be a equally pleasant experience, after some intial growing pains. Below are some of my opinions on the state of embedded Rust. Note this is generally with regards to Rust on ESP (esp-rs), however some of it applies to embedded Rust in a broader sense.
The Good
esp-idf-hal you get to program the ESP32 in Rust (almost) as if you were writing a program on your desktop
This means you get to take full advantage of the Rust standard library and mostly any external crates you may need.cargo flash to flash the board from the
command line and also set the partition table (sets how much space in memory you are reserving for your program):
flash = "espflash --release --partition-table partitions.csv"The Bad
esp-idf-hal turns out to be almost as easy to use as the popular IntervalTimer
in Arduino. Another thing that was very tough to find example code for was bluetooth. Eventually I found esp32-nimble
which works quite well and isn't too complicated. The developer is was also quick to reply to an issue I opened for an additional feature.| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | Conn_01x02 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | 3V3, J6, J7 |
| 2 | MD41B | vango_fplib:MD41B | U1, U3 |
| 1 | Adafruit_Feather_HUZZAH32_ESP32 | Module:Adafruit_Feather | A1 |
| 1 | Conn_01x06 | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J4 |
| 1 | I2C | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J3 |
| 1 | Left Motor | vango_fplib:N20_motor | U4 |
| 1 | NeoPixel | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J2 |
| 1 | REG15D | vango_fplib:REG15D | U2 |
| 1 | Right Motor | vango_fplib:N20_motor | U5 |
| 1 | SG90_Servo | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | Servo |
| 1 | SPI | Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_Vertical | J5 |
| 1 | SW_SPDT | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | SW1 |
| 1 | XT60PW-M | Connector_AMASS:AMASS_XT60IPW-M_1x03_P7.20mm_Horizontal | J1 |
It measures 72.5 × 66 mm and has 2 copper layers, 1.6 mm thick.
16 parts, built around the XT60PW-M. 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.
From the nmarks99/VanGo repository on GitHub, at the commit this page was made from: the board is hardware/vango-pcb/vango-pcb.kicad_pcb and its schematic hardware/vango-pcb/vango-pcb.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

bejaouihamza/bldc-foc-pcb
This open-source hardware project is a compact, single-board FOC (Field-Oriented Control) motor driver designed for precision robotics, drones, CNC machines, and automation systems.

BenjamimKrug/robo_humanoide
Repositorio para arquivos gerais necessários para o desenvolvimento do Robô humanoide





danielwilczak101/EasyControls
Originally part of the NASA Asteroid flyer program has been repurposed by the EPPL to allow anyone interested in controls to go online and connect with a real working device and test their own control algorithms on a…

IITB-Rocket-Team-Avionics/Ember
Experimental Flight Computer with potential mitigations of previous issues faced by FLYTE and a testbed for new systems.