1-DOF SEA Finger Exoskeleton — Project Work Report
| Student: | Drin Duka |
|---|---|
| Platform: | STM32 NUCLEO-F446RE, Maxon ESCON 50/5, Harmonic Drive PMA-8A |
| Project focus: | Minimum viable tendon-driven SEA actuation and embedded control |
| Last updated: | 6 July 2026 |
| Presentation target: | Friday, 10 July 2026 |
Current status: The embedded MVP has been reached. The ESCON 50/5, PMA-8A actuator, encoder, supervised power-up, automatic tuning, and low-speed potentiometer control were already validated. On Monday, 6 July, the STM32 NUCLEO-F446RE was successfully integrated with the ESCON: PA4 / A2 generated the analog speed command, PC0 / A5 generated the high-active enable signal, and pressing the Nucleo user button produced stable motor rotation at approximately 100 rpm. Releasing the button returned the analog command to 0 V and disabled the ESCON. Evidence was captured through multimeter measurements, ESCON Studio monitor screenshots, physical setup photos, and video proof of repeated start/stop operation.
Project objective
The immediate objective is to demonstrate a minimum functional chain for a one-degree-of-freedom series-elastic finger exoskeleton:
STM32 command
→ Maxon ESCON motor controller
→ Harmonic Drive PMA actuator
→ encoder feedback
The complete finger mechanism, tendon transmission, spring-force measurement, and Myo sEMG integration remain later stages. The current actuator-and-controller MVP is now functional and documented enough to support the 10 July 2026 presentation. The remaining work should focus on preserving the working demo, cleaning up documentation, and optionally adding a simple PC/Myo command layer without risking the achieved result.
Laboratory log
17 June 2026 — Initial hardware familiarisation
Main objective
Identify the available hardware and establish a realistic commissioning sequence for the 1-DOF SEA project.
Work completed
- Inspected the available actuator, ESCON controllers, STM32 board, encoder connection, bench power supply, wiring tools, and mechanical components.
- Identified the main actuator candidates:
- Harmonic Drive PMA-8A-50-01-E500ML
- Harmonic Drive PMA-5A-50-01-E256ML
- Identified the main control hardware:
- Maxon ESCON 50/5
- STM32 NUCLEO-F446RE
- GW Instek GPS-4303 bench power supply
- Connected a previously used ESCON controller to ESCON Studio through USB.
- Confirmed that the controller was recognized.
- Read and preserved its existing configuration as a reference.
- Clarified the required connection chain:
- bench power supply → ESCON J1
- ESCON J2 → brushed DC motor terminals
- actuator encoder → ESCON J4
- PC USB → ESCON J7
- Established the staged workflow:
- inspect and configure the controller;
- prepare and verify cables;
- confirm wiring with a supervisor;
- perform a supervised power-up;
- auto-tune and test the actuator;
- integrate the STM32.
Result
This session was limited to basic identification, software access, and planning. No motor-power or movement test was performed.
22 June 2026 — Cable preparation
Main objective
Prepare the electrical cables required for safe connection of the power supply and actuator to the ESCON.
Work completed
- Prepared the J1 power leads:
- banana plugs at the bench-supply side;
- ferrules at the ESCON side;
- separate positive and negative conductors.
- Prepared the J2 motor leads:
- ferrules at the ESCON side;
- two separate conductors for the brushed DC motor;
- temporary insulated alligator clips for the motor tabs.
- Reworked the cable terminations until the ferrules, conductor lengths, and strain relief were acceptable.
- Confirmed the intended motor connection:
- J2 pin 1 → one motor terminal;
- J2 pin 2 → the other motor terminal;
- remaining J2 connections unused for the first temporary test.
- Confirmed that the alligator clips must not touch each other or the actuator housing.
- Prepared the setup for later continuity, polarity, and short-circuit checks with a multimeter.
Result
The necessary power and motor cables were prepared. The system remained unpowered.
1 July 2026 — STM32 verification and fresh ESCON configuration
Main objective
Confirm the STM32 development environment and configure a fresh ESCON 50/5 for the PMA-8A actuator.
STM32 work completed
- Generated, built, and flashed a project for the NUCLEO-F446RE.
- Confirmed communication through ST-LINK.
- Verified GPIO input and output operation.
- Confirmed that pressing the user button changes the LED blink rate.
This confirms that:
- the board is detected;
- compilation works;
- firmware flashing works;
- the program executes correctly;
- the user button can be read;
- the onboard LED can be controlled.
ESCON work completed
A fresh ESCON 50/5 was selected:
- Part number: 409510
- Barcode / traceability number: 662093002309
The controller was connected through USB and detected in ESCON Studio.
The displayed error was:
VCC undervoltage / power supply voltage too low
This was expected because no external DC supply was connected to J1 at that stage.
Configuration entered
Motor
| Parameter | Configured value |
|---|---|
| Motor type | maxon DC motor |
| Speed constant | 218 rpm/V |
| Winding thermal time constant | 35 s, provisional |
| Maximum permissible speed | 6000 rpm |
| Nominal current | 0.60 A |
| Maximum output current limit | 1.00 A for initial commissioning |
Feedback and controller mode
| Parameter | Configured value |
|---|---|
| Speed sensor | Digital incremental encoder |
| Encoder resolution | 500 counts/rev |
| Encoder direction | Default direction, to be verified during commissioning |
| Operating mode | Speed controller, closed loop |
| Inner loop | Inner current control loop |
| Tuning type | Automatic tuning |
Enable and command
| Parameter | Configured value |
|---|---|
| Enable function | Enable |
| Enable input | Digital Input 2 |
| Enable polarity | High-active |
| Set-value type | Analog set value |
| Initial set-value source | Analog Input 1 |
| Offset | Fixed, 0 rpm |
| Current limit | Fixed, 1.00 A |
| Speed ramp | Fixed |
| Acceleration | 100 rpm/s |
| Deceleration | 100 rpm/s |
I/O assignments
| I/O | Function |
|---|---|
| Digital Input 1 | None |
| Digital Input 2 | Enable |
| Digital I/O 3 | Ready, high-active |
| Digital I/O 4 | None |
| Analog Input 1 | Set value |
| Analog Input 2 | None |
| Potentiometer 1 | None initially |
| Potentiometer 2 | None |
| Analog Output 1 | Actual speed averaged |
| Analog Output 2 | Actual current averaged |
Result
The fresh controller was configured and prepared for supervised commissioning on 2 July 2026.
2 July 2026 — Supervised power-up, auto-tuning, and first controlled motion
Main objective
Perform the first powered commissioning of the PMA-8A actuator through the fresh ESCON 50/5 and verify conservative closed-loop speed control.
Work completed
- Dimitrij inspected the physical power, motor, and encoder wiring before energizing the system.
- External power was applied to J1.
- The previous VCC undervoltage condition cleared.
- Automatic tuning was run under supervision.
- During tuning, the rotor made small oscillatory identification movements rather than a large continuous rotation.
- Tuning completed successfully.
- The set-value source was temporarily changed from Analog Input 1 to Potentiometer 1.
- Digital Input 2 remained configured as a high-active enable input.
- The ESCON auxiliary +5 V output was connected to Digital Input 2 through a removable jumper to provide the enable signal.
- A conservative 0–100 rpm potentiometer range was used.
- The actuator responded successfully and rotated at the commanded low speed.
- The observed 100 rpm motion appeared slower than expected visually, but the movement was stable and suitable for a first safety-oriented test.
- STM32-to-ESCON control was deferred because the required small signal leads and connector wiring were not available before the laboratory closed.
Result
The first powered commissioning was successful. The ESCON powered correctly, automatic tuning completed, encoder-based closed-loop control remained operational, the enable input functioned, and the actuator followed a stable 100 rpm potentiometer command.
The next step is to replace the temporary potentiometer command with a verified STM32 DAC signal and digital enable output.
Work plan to presentation
Friday, 3 July 2026 — STM32 integration preparation attempt
Main objective
Prepare the STM32 side of the embedded command interface so that the NUCLEO-F446RE could later replace the temporary ESCON potentiometer command.
Intended control concept
The planned test behavior was intentionally simple:
Nucleo user button pressed
→ STM32 enables the ESCON through Digital Input 2
→ STM32 outputs a small analog voltage on PA4 / DAC_OUT1
→ ESCON receives this as an Analog Input 1 speed command
→ motor rotates slowly
Nucleo user button released
→ DAC command returns to 0 V
→ ESCON enable goes LOW
→ motor stops/disables
Work completed
- Identified the required STM32-to-ESCON signal connections:
- PA4 / A2 → ESCON Analog Input 1+
- STM32 GND → ESCON Analog Input 1−
- PC0 / A5 → ESCON Digital Input 2
- STM32 GND → ESCON signal ground
- Prepared the concept for four low-current signal leads between the Nucleo board and the ESCON J5/J6 terminal connectors.
- Confirmed that PA4 should be used as the STM32 internal DAC output rather than requiring an external DAC module.
- Planned PC0 as the digital enable output for the ESCON.
- Planned PC13, the Nucleo user button, as the temporary human input for testing.
- Started configuring the STM32 project with:
- PA4 = DAC_OUT1
- PC0 = GPIO output
- PC13 = user button input
- Encountered software/toolchain confusion when code generation produced files that were not immediately usable in the expected STM32CubeIDE workflow.
- The STM32 project did not reach the stage where the final motor-control code could be opened, edited, built, flashed, and verified.
- The STM32 was therefore not connected to the ESCON for a motor test.
Result
The Friday session clarified the required embedded interface and wiring, but the actual STM32-to-ESCON integration was not completed. The main remaining problem is not the motor controller itself, but the STM32 software workflow and verification sequence.
The working potentiometer-controlled ESCON configuration from 2 July remains the project backup demonstration.
Weekend, 4–5 July 2026 — recovery planning away from the laboratory
Main objective
Reframe the next laboratory session around a recoverable minimum viable prototype rather than trying to complete the whole system at once.
Planning conclusion
The project should not depend on Myo, BLE, tendon mechanics, or encoder sharing until the basic embedded motor-control chain works. The Monday strategy is therefore:
1. Preserve the working ESCON potentiometer demo.
2. Verify STM32 output signals independently with a multimeter.
3. Connect STM32 to ESCON only after the signals are proven correct.
4. Attempt a simple button-to-motor test.
5. If STM32 integration fails, fall back to the documented potentiometer demonstration.
Monday, 6 July 2026 — STM32-to-ESCON embedded MVP achieved
Main objective
Recover the STM32 integration workflow and demonstrate a safe embedded command chain:
Nucleo user button
→ STM32 DAC and digital enable outputs
→ Maxon ESCON 50/5
→ Harmonic Drive PMA-8A actuator
Starting problem
The previous STM32 attempt on Friday did not reach a usable motor-control test because the generated project was not immediately buildable in the expected STM32CubeIDE workflow. At the start of this session, the main uncertainty was whether the STM32 code could be edited, built, flashed, and verified reliably before connecting it to the ESCON.
Software workflow recovered
A new STM32CubeIDE-compatible project was created under the name new-stm-code. Unlike the earlier EWARM/IAR-style generated folder, the new project contained the expected CubeIDE build files, including .project, .cproject, .mxproject, Core/, Drivers/, .settings/, and the linker script.
The following STM32 functions were configured:
| STM32 function | Board pin | Purpose |
|---|---|---|
| DAC output | PA4 / A2 | Analog speed command to ESCON Analog Input 1 |
| GPIO output | PC0 / A5 | Digital enable command to ESCON Digital Input 2 |
| User button | PC13 | Temporary manual command input |
| LD2 LED | PA5 | Visual indication of active command |
The generated project successfully built with 0 errors and 0 warnings. The build output confirmed that the DAC driver was compiled and that Core/Src/main.c was included in the build.
STM32 output verification before connection
Before connecting the STM32 to the ESCON, the output signals were verified independently using a multimeter.
A forced-output test first confirmed that the firmware was actually running and that the output pins could be controlled. LD2 blinked, while the measured outputs alternated between:
| State | PA4 / A2 | PC0 / A5 |
|---|---|---|
| Command OFF | 0 V | 0 V |
| Command ON | approximately 1.0 V | approximately 3.3 V |
After that, the code was changed to a hold-to-run behavior using the blue Nucleo user button:
Button released
→ PA4 / A2 = 0 V
→ PC0 / A5 = 0 V
→ LD2 OFF
Button pressed
→ PC0 / A5 = 3.3 V
→ PA4 / A2 ≈ 1.0 V
→ LD2 ON
This verified that the STM32 could safely generate both required ESCON control signals before any motor-controller connection was made.
STM32-to-ESCON wiring
After verifying the STM32 outputs, four low-current signal connections were made between the Nucleo board and the ESCON:
| Wire color used | STM32 side | ESCON side | Function |
|---|---|---|---|
| Blue | PA4 / A2 | J6 pin 1 — Analog Input 1+ | Analog speed command, approximately 1 V |
| Black | GND | J6 pin 2 — Analog Input 1− | Analog reference |
| Yellow | PC0 / A5 | J5 pin 2 — Digital Input 2 | Digital enable, approximately 3.3 V |
| Black | GND | J5 pin 5 — Signal GND | Digital reference |
The ESCON remained powered from the external bench power supply through J1. The STM32 did not power the ESCON or the motor; it only supplied the command and enable signals.
ESCON configuration used
The ESCON was configured for closed-loop speed control using Analog Input 1 as the command source.
The working command relationship used in this test was:
0 V → 0 rpm
1 V → 100 rpm
Digital Input 2 remained configured as the high-active enable input. Therefore, the motor could only run when both conditions were true:
PC0 / A5 = HIGH → ESCON enabled
PA4 / A2 ≈ 1 V → nonzero speed command
Final test result
The STM32 button-controlled motor test was successful.
When the blue Nucleo user button was pressed:
- PC0 / A5 went HIGH at approximately 3.3 V;
- PA4 / A2 produced approximately 1.0 V;
- ESCON Digital Input 2 became active;
- ESCON Analog Input 1 received the speed command;
- demand speed rose to approximately 100 rpm;
- actual speed followed at approximately 100 rpm;
- the PMA-8A actuator rotated visibly and stably.
When the button was released:
- PA4 / A2 returned to 0 V;
- PC0 / A5 returned LOW;
- the ESCON disabled;
- the motor stopped.
Several repeated button press and release cycles were recorded on video to confirm repeatability. A sticky note was attached to the rotating output so that the motion could be seen clearly on video.
Evidence captured
The following evidence was captured during the session:
- video of the STM32 button producing repeated start/stop motor motion;
- physical setup photos showing the STM32, ESCON, signal wiring, motor, and power supply;
- multimeter verification of STM32 output voltages;
- ESCON Studio monitor screenshot at rest:
- Analog Input 1 approximately 0 V;
- demand speed 0 rpm;
- actual speed 0 rpm;
- ESCON Studio monitor screenshot while running:
- Analog Input 1 approximately 1 V;
- demand speed approximately 100 rpm;
- actual speed approximately 100 rpm;
- screenshots of the working ESCON command and enable configuration.
Result
This session achieved the embedded-control MVP. The system is no longer only a motor-controller test. It now demonstrates a complete low-level embedded command chain:
STM32 NUCLEO-F446RE
→ analog speed command + digital enable
→ Maxon ESCON 50/5
→ Harmonic Drive PMA-8A actuator
→ stable low-speed rotation
The working demo should now be preserved and treated as the baseline system for the final presentation.
Tuesday–Wednesday, 7–8 July
- Preserve the working STM32 button-controlled motor demo as the baseline.
- Back up the working STM32CubeIDE project and ESCON configuration.
- Add a separate serial-command firmware version only after the working button version is saved.
- Test laptop-to-STM32 serial commands:
0→ stop and disable;1→ enable and command approximately 1 V.
- If serial control is stable, begin a limited Myo armband bridge through the laptop.
- Use the Myo only as a simple relaxed/clenched command source at first.
- Avoid changing motor/controller configuration unless a backup is available.
Thursday, 9 July
- Freeze the MVP.
- Capture final photographs, screenshots, plots, and short videos.
- Complete the report.
- Prepare the presentation and demonstration sequence.
Friday, 10 July
- Present the minimum viable prototype and documented commissioning results.
Minimum viable prototype
The MVP has been achieved at the low-level embedded actuation layer.
The following items have now been demonstrated:
- The ESCON powers correctly without unexplained faults.
- The actuator completed supervised auto-tuning.
- Encoder feedback is valid for ESCON closed-loop speed control.
- The actuator moves stably at low speed.
- The STM32 generates a verified digital enable signal on PC0 / A5.
- The STM32 generates a verified analog speed command on PA4 / A2.
- The STM32 commands repeatable motor start/stop motion through the ESCON.
- ESCON Studio confirms the 0 V / 0 rpm and 1 V / 100 rpm operating points.
- Video and screenshot evidence has been captured.
A limited Myo armband demonstration remains a stretch goal. It should be attempted only through a separate serial-command layer so that the working STM32 button demo remains preserved.
Planned Myo integration
The intended high-level behaviour is:
relaxed hand
→ target open position
clenched hand
→ target flexed position
The motor must not rotate indefinitely. The final command must be bounded by a defined position or angle limit.
For the first demonstration, the simplest architecture is:
Myo armband
→ laptop receiver and EMG processing
→ serial command to STM32
→ STM32 enable and analog command
→ ESCON
→ PMA-8A actuator
Direct Myo-to-STM32 communication would require an additional BLE-capable interface or USB-host implementation because the NUCLEO-F446RE does not provide a direct Myo receiver by itself.
The first Myo test should remain simple:
- relaxed state → stop or return command;
- clenched state → low-speed assisted movement;
- fixed maximum command;
- fixed timeout;
- immediate disable if communication is lost.
Evidence captured and remaining
Captured evidence
- Photograph/video proof of the STM32 button-controlled motor demo.
- Multiple repeated press/release cycles showing reliable start and stop behavior.
- Sticky-note marker on the rotating output to make rotation visible in video.
- ESCON Studio monitor screenshot with button released:
- Analog Input 1 approximately 0 V;
- demand speed 0 rpm;
- actual speed 0 rpm.
- ESCON Studio monitor screenshot with button pressed:
- Analog Input 1 approximately 1 V;
- demand speed approximately 100 rpm;
- actual speed approximately 100 rpm.
- Physical photos of the STM32, ESCON, power supply, wiring, and actuator setup.
- Multimeter verification of STM32 outputs before connection.
Remaining useful evidence
- Final screenshot of the ESCON current limit and ramp settings.
- Exported ESCON configuration file for the final working setup.
- Backup of the working STM32CubeIDE project folder.
- Optional serial-command test evidence.
- Optional Myo-triggered test evidence if time allows.
Current limitations
- The current demonstration uses speed control, not absolute output-angle control.
- The STM32 does not yet read the motor encoder directly; encoder feedback is handled internally by the ESCON.
- The command is currently manual through the Nucleo user button, not yet through serial or Myo.
- The complete finger mechanism, tendons, series-elastic spring, and force sensor are not yet integrated.
- Myo armband control has not yet been implemented.
- The 35 s winding thermal time constant remains provisional.
- The signal wiring is still a temporary laboratory setup and should be kept documented and strain-relieved.
- Temporary motor connections and alligator clips still require careful insulation and mechanical security.