meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
projects:micromanipulator:start [2026/08/02 15:44] – [2026-08-01] rahixprojects:micromanipulator:start [2026/08/03 20:47] (current) – more docs rahix
Line 1: Line 1:
 ====== Open Micro-Manipulator ====== ====== Open Micro-Manipulator ======
-We are building an //open micro-manipulator// after the amazing design of //Diffraction Limited// ([[https://www.youtube.com/watch?v=MgQbPdiuUTw|YouTube]]). He describes is as+We are building an //open micro-manipulator// after the amazing design of //Diffraction Limited// ([[https://www.youtube.com/watch?v=MgQbPdiuUTw|YouTube]]). He describes is as:
  
 > This project contains an open source low-cost, easy-to-build motorized XYZ Micro-Manipulator motion control platform achieving submicron precision. It's designed for applications such as optical alignment, probing electronic components, and microscopy. > This project contains an open source low-cost, easy-to-build motorized XYZ Micro-Manipulator motion control platform achieving submicron precision. It's designed for applications such as optical alignment, probing electronic components, and microscopy.
 +
 +We are building ours for die image stitching and laser alignment needs.
  
 {{:projects:micromanipulator:20260731_work-in-progress.jpg?600|}} {{:projects:micromanipulator:20260731_work-in-progress.jpg?600|}}
  
-[Work in Progres]+[Work in Progress]
  
 ==== Resources ==== ==== Resources ====
   * Upstream Project Documentation: https://github.com/0x23/MicroManipulatorStepper   * Upstream Project Documentation: https://github.com/0x23/MicroManipulatorStepper
 +  * Our design files and modified firmware: https://git.fa-fo.de/fafo/OpenMicroManipulator
  
  
 ===== Log ===== ===== Log =====
-==== 2026-08-02 ====+==== 2026-08-02 (fiona, anuejn, rahix) ====
 The code to drive the fafo-flavored circuit board has been pushed to git: [[https://git.fa-fo.de/fafo/OpenMicroManipulator]] The code to drive the fafo-flavored circuit board has been pushed to git: [[https://git.fa-fo.de/fafo/OpenMicroManipulator]]
  
Line 24: Line 27:
 We finished soldering the circuit board and confirmed motors and encoders of all three axis working. We finished soldering the circuit board and confirmed motors and encoders of all three axis working.
  
-==== 2026-08-01 ====+----- 
 + 
 +Running calibration on all 3 axes with 27° retration angle (we increased it in an attempt to improve the results). 
 + 
 +{{:projects:micromanipulator:2026-08-02_22-joint0.png?400|}} 
 +{{:projects:micromanipulator:2026-08-02_22-joint1.png?400|}} 
 +{{:projects:micromanipulator:2026-08-02_22-joint2.png?400|}} 
 + 
 +It does not work reliably yet, neither homing nor calibration yields great results so far. Assuming we will need a combination of improving the encoder to magnet alignment and also tuning software parameters more. 
 + 
 +==== 2026-08-01 (fiona, anuejn, rahix) ====
 Plotted the encoder values to understand why results do not add up. Plotted the encoder values to understand why results do not add up.
  
Line 34: Line 47:
  
 With a properly mounted encoder the measurements look a lot better, but the calibration process was still unhappy with the results. The reason for that was that the magnets were moved out of their linear range when homing. We fixed this by monkey-patching the code to retract 17.5 degrees after homing. With a properly mounted encoder the measurements look a lot better, but the calibration process was still unhappy with the results. The reason for that was that the magnets were moved out of their linear range when homing. We fixed this by monkey-patching the code to retract 17.5 degrees after homing.
-<code>+<code diff>
 diff --git a/firmware/MotionControllerRP/src/robot_joint/robot_joint.cpp b/firmware/MotionControllerRP/src/robot_joint/robot_joint.cpp diff --git a/firmware/MotionControllerRP/src/robot_joint/robot_joint.cpp b/firmware/MotionControllerRP/src/robot_joint/robot_joint.cpp
 index b343a1f..d4263e9 100644 index b343a1f..d4263e9 100644
Line 47: Line 60:
 </code> </code>
 Now the micromanipulator axis is working as intended and can be controlled via G-Code! Success! Now the micromanipulator axis is working as intended and can be controlled via G-Code! Success!
-`G0 X0can be used to move the X-Axis to the center position.+After calibrating joints with ''M56'', ''G0 X0'' can be used to move the X-Axis to the center position.
  
 We continued soldering the motor drivers for the remaining axis to the board. We continued soldering the motor drivers for the remaining axis to the board.
Line 55: Line 68:
 [do not question what the saw is doing on this picture] [do not question what the saw is doing on this picture]
  
-==== 2026-07-31 ====+==== 2026-07-31 (anuejn, fiona) ====
 Assembly arrived in the lab and we finished assembling it. Assembly arrived in the lab and we finished assembling it.