This commit is contained in:
0x23 2025-10-18 16:23:08 +02:00
commit 40d292ff46
15 changed files with 53 additions and 62 deletions

View file

@ -19,13 +19,19 @@ A 'magnetic gearing' approach increases the resolution of the low-cost magnetic
The device can be controlled via simple G-Code commands over a USB serial interface and is thus easily integrated into other projects.
The firmware implements a complete motion planning stack with look-ahead for smooth and accurate path following capabilities.
## Getting Started
## 💬 NEW: Discord Server
Below is a list of high level steps you can follow if you want to replicate the project.
If you have questions or problems with the build or just want to discuss subjects related to the project,
joint the projects community [Discord Server](https://discord.gg/maRvMVpa2Q').
Visit the projects community [Discord Server](https://discord.gg/maRvMVpa2Q) to meet and discuss subjects related to the project,
get help for the build or share ideas and applications.
1. Read this Document and watch the linked videos
2. Get the parts listed in [Bill of Materials](documentation/bom/bom.md)
3. Build the device and electronics
4. Upload firmware using VSCode with PlattformIO plugin
5. Calibrate axis
## 🐍 NEW: Python-API
## 🐍 Python-API
The lightweight Python API handles all serial communication and provides convenient command execution and debug message printing.
The interface includes functions to home, move, and calibrate the device, as well as to query device information.
@ -71,7 +77,7 @@ set_max_acceleration(linear_accel, angular_accel)
set_servo_parameter(pos_kp, pos_ki, vel_kp, vel_ki, vel_filter_tc)
```
## ✨ NEW: Firmware v1.0.1
## ✨ Firmware v1.0.1
This update improves calibration, homing, logging, and adds several new G-Code commands.
@ -114,7 +120,7 @@ Please check the dimensions of your build against the values set in the construc
## ⚙ Electronics
IMPORTANT: If you fabricated PCB verion v1.2 (see version label on the board) you need to drill out a misplaced via on diode D1 that shorts 5V rail to ground (See [repair image](electronics/pcb_v1.2_fix.jpg) ). The problem was fixed in v1.3.
IMPORTANT: If you fabricated PCB version v1.2 (see version label on the board) you need to drill out a misplaced via on diode D1 that shorts 5V rail to ground (See [repair image](electronics/pcb_v1.2_fix.jpg) ). The problem was fixed in v1.3.
The electronics are designed in **KiCAD** and only commonly available modules (motor drivers and MCU boards) are used and connected by a simple PCB. No SMD soldering is required to populate the board to make the build extra accessible.
For usual winding resistance of your motors, the device should be powered by $${\color{lightgreen} 5V-6V }$$ (2A) to keep current and heating to a reasonable level.
@ -124,6 +130,10 @@ For usual winding resistance of your motors, the device should be powered by $${
<img src="images/ControllerPCB.jpg" alt="Image 2" style="flex: 1; object-fit: contain; height: 10vw;">
</div>
## ⚙ Bill of Materials (BOM)
See the full [BOM here](documentation/bom/bom.md).
## ⚙ Firmware
The firmware is written in C++ and takes some inspiration from the 'SimpleFOC' project. It aims to be streamlined and readable without any extra fuss, focusing on the hardware used in this project.

56
bom.txt
View file

@ -1,56 +0,0 @@
(Incomplete - work in progress...)
--- Mechanics -------------------------------------------------------------------
Qty. Name Size Comments
* 12 Steel ball D=1.25mm (0.05") Precision of G10 or better.
Can be sourced from small ball bearings
* 1m PU stretch cord D=1mm e.g. 'Stretch Magic' or 'Magic String'
* 70 Neodym Cylinder Magnet D=3mm h=4mm
* 1m Brass Pipe OD=2mm ID=1mm
* 12 M2 Screw M2x12mm, Countersunk
* 6 M3 Grub Screw M3x4
--- Electronics -------------------------------------------------------------------
Qty. Name Comments
* 1 DC-DC Step Down Module 4.75-23V Step-Down Buck Converter Module
* 1 (1N5819) OR (PMEG4010) Diode (either through hole or SMD can be used)
* 1 RaspberryPi Pico 2
* 3 MT6835 Magnetic Encoder Module
* 3 TB6612FNG Driver
* 3 470 μF Electrolytic Capacitor (anything > 100µF will work well)
* 3 10.0 μF Ceramic Capacitor 0603 (optional)
* 2 4.7k Resistor 0603 (optional)
* 1 2 Pin Power Header 7.5 mm pitch
* 4 4 Pin Header 2.5 mm pitch
* 1 8 Pin Header 2.0 mm pitch
* 3 NEMA 17 Stepper Motor (Body length <= 38mm)
--- 3D Printing ------------------------------------------------------------------
Qty. Name Comments
* 3 WireFlexureMount 0.4mm+ nozzle will probably require post-processing.
* 3 RubberBandCollet 0.4mm+ nozzle will probably require post-processing.
* 3 BallJointMount 0.4mm+ nozzle will probably require post-processing.
* 3 Motor Mount
* 1 EndEffector
* 1 Base Block

37
documentation/bom/bom.md Normal file
View file

@ -0,0 +1,37 @@
# Bill of Materials (BOM)
## Mechanics
| Name | Qty | Description | Comments | Suggested link | Image |
|------|-----|-------------|----------|----------------|-------|
| Steel ball | 12 | Ø1.25 mm (0.05") | Precision G10 or better. Can be sourced from small ball bearings | |
| PU stretch cord | 1 m | Ø1mm | e.g. "Stretch Magic" or "Magic String" | [Aliexpress](https://www.aliexpress.us/item/3256805953910514.html)| ![Pu strech cord](images/PU_StretchCord.png)|
| Neodym Cylinder Magnet | 70 | Ø3mm h=4 mm | N42 Grade | [Ebay Link](https://www.ebay.de/itm/365333642187?var=635110190027)|
| Brass Pipe | 1 m | OD=Ø2mm ID=Ø1 mm | | [Amazon](https://a.co/d/1pRFmtf)| ![Brass Pipe](images/BrassPipe.png)|
| M2 Screw | 12 | M2×12 mm, Countersunk | | |
| M3 Grub Screw | 6 | M3×4 | | |
## Electronics
| Name | Qty | Description | Comments | Suggested link | Image |
|------|-----|-------------|----------|----------------|-------|
| DC-DC Step Down Module | 1 | 4.7523 V Step-Down Buck Converter | | [Aliexpress](https://www.aliexpress.us/item/3256806752772875.html)| ![DC-DC Step Down](images/DC_DC-StepDown.png)|
| (1N5819) OR (PMEG4010) | 1 | Diode (through-hole or SMD) | | |
| Raspberry Pi Pico 2 | 1 | Microcontroller board | | | ![Raspberry Pi Pico 2](images/RaspberryPiPico2.png)|
| MT6835 Magnetic Encoder Module | 3 | Magnetic encoder | | [Aliexpress](https://www.aliexpress.us/item/3256808005140674.html)| ![MT6835 Magnetic Encoder Module](images/MT6835.png)|
| TB6612FNG Driver | 3 | | | [Aliexpress](https://www.aliexpress.us/item/3256806060073976.html)| ![TB6612FNG Driver](images/TB6612FNG.png)|
| 470 µF Electrolytic Capacitor | 3 | > 100 µF | anything > 100µF will work well | |
| 10 µF Ceramic Capacitor 0603 | 3 | Optional | | |
| 4.7 k Resistor 0603 | 2 | Optional | | |
| 2 Pin Power Header | 1 | 7.5 mm pitch | | |
| 4 Pin Header | 4 | 2.5 mm pitch | | |
| 8 Pin Header | 1 | 2.0 mm pitch | | |
| NEMA 17 Stepper Motor | 3 | Body ≤ 38 mm | Body length <= 38mm | |
## 3D Printing
| Name | Qty | Description | Comments | Image |
|------|-----|-------------|----------|-------|
| WireFlexureMount | 3 | | 0.4 mm+ nozzle may require post-processing | ![Wire Flexure Mount](images/WireFlexureMount.png)|
| RubberBandCollet | 3 | | 0.4 mm+ nozzle may require post-processing | ![Rubber Band Collet](images/RubberBandCollet.png)|
| BallJointMount | 3 | | 0.4 mm+ nozzle may require post-processing | ![Ball Joint Mount](images/BallJointMount.png)|
| Motor Mount | 3 | | | ![Motor Mount](images/MotorMount.png)|
| End Effector | 1 | | | ![End Effector](images/EndEffector.png)|
| Base Block | 1 | | | ![Base Block](images/BaseBlock.png)|

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB