| 1 | Sep 2026 | Sep 2026 | Amily, Atirav | Sponsor Feedback | A second ankle exoskeleton for a bilateral system had been planned (CAD review, BOM, inventory check, and purchasing list completed), but Prof. Kang questioned whether building more hardware was the right priority, since it would take significant time and add little research contribution compared to improving the controller. | Team unanimously decided, with sponsor backing, to stay with a single exoskeleton. Effort split set at 75/25 controller/hardware from September into October, moving to 100% controller from October into November; Jira timeline updated to reflect this. |
| 2 | Sep 2026 | Sep 2026 | Amily | Data Infrastructure | While setting up the Hugging Face dataset for automatic data backup, the repository was accidentally created with the MIT License instead of the intended CC BY 4.0, and the license cannot be changed after creation. | Amily is investigating whether the existing dataset can be migrated with the correct license while preserving collected data. Fallback is to create a new dataset repository with CC BY 4.0 and update the upload pipeline. |
| 3 | Sep 2026 | Sep 2026 | Atirav, Amily | Mechanical Design | The original 1/16″ 7×7 braided steel Bowden cable (96 lb working load limit) was undersized for the ~117 lb (523 N) peak cable force, especially given the high-jerk torque profile from the controller, and the cable repeatedly went slack during last semester’s testing. | Upgraded to 3/32″ 7×7 aircraft cable (920 lb breaking limit), combined with a planned soft-start motion profile to reduce jerk. Amily also investigating the root cause of slack (cable deformation, crimping, tensioning mechanism, or dynamic loading). |
| 4 | Sep 2026 | Sep 2026 | Narayanan, Atirav | Software / Calibration | IMU frame calibration fits were unreliable: iterative Euler-angle optimization sometimes converged to a reflection instead of a rotation with a small residual masking the error, and phase alignment using gyro magnitude locked onto a rotation 180° off while appearing confident. | Switched to a closed-form Kabsch solution with a determinant check (det R = +1), added an explicit lever-arm term for accelerometers, scored candidate lags by the rotation-fit residual, and averaged fits across all trial pairs with outlier rejection. |
| 5 | Sep 2026 | Sep 2026 | Narayanan | Sensor Integration | The ankle encoder has no physical zero: its raw power-on reading clustered near one value in most sessions but was ~90° off in another, indistinguishable from a fault without direct checking. | Implemented per-session homing using a quiet-stand median with an IQR-based stillness check, 0/360 wraparound handling, and a startup sanity check. Encoder sign and mechanical ratio fitted with Atirav using waveform correlation and a slow sweep. |
| 6 | Sep 2026 | Nov 2026 | Atirav | Electronics Design | The proto-board header connections used to wire sensors in parallel for power and I2C caused high-frequency noise and NaN values, the connectors could be plugged in reversed, and an AS5600 encoder was damaged by ESD. | Atirav designed a sensor connector PCB with ESDS302DBVR ESD protection on SDA/SCL, 47 µF bulk capacitors, and 100 nF bypass capacitors at each sensor, plus a move to shielded twisted-pair cabling. The PCB was delayed (see Issue 17), so an interim hand-built board was used instead. |
| 7 | Sep 2026 | Sep 2026 | Amily, Atirav | Mechanical Design / Procurement | Existing barrel adjusters could not fit the thicker 3/32″ cable. Drilling them out (suggested by the OpenExo team) would thin the walls and often deformed the part, and the lab lacked a suitable clamp. An M10 adjuster would not fit the CAD envelope without re-machining aluminum parts. | Ordered M7 and M8 barrel adjusters with matching nuts to check fit within the existing design envelope; the M8 nut was confirmed to fit. |
| 8 | Sep 2026 | Sep 2026 | Pawan, Amily | Electronics / Embedded | The shared I2C bus (two BNO085 IMUs, AS5600 encoder, ADS1115 ADC) was limited by the Jetson’s default 100 kHz clock, falling short of the 100–200 Hz sampling target. The Jetson’s 400 kHz-capable port was broken. | Amily found the bus speed could be changed via the Linux device tree; Pawan reconfigured the working port to 400 kHz, reaching a stable 198 Hz full-sensor sweep. Moving the IMUs to SPI was documented as a fallback if more headroom is needed. |
| 9 | Sep 2026 | Sep 2026 | Pawan, Atirav | Electronics Design | Sensors repeatedly dropped off the I2C bus when the Jetson was powered from a separate wall adapter/DC supply for bench work, requiring 20+ unit checks across connectors, cables, and sensors to isolate. | Root cause was no common ground between the Jetson and sensor power domains. Grounds are now explicitly bonded between the Jetson and the sensor buck-boost converter regardless of the Jetson’s power source, and the requirement was added to the bench setup notes. |
| 10 | Sep 2026 | Oct 2026 | Gautam | Dataset Mismatch | Optimization-based fitting of the GaTech-to-exo IMU transformation frequently converged to local minima, reaching only ~60–70% accuracy, with the lowest accuracy on the most important axes (accelerometer z, gyroscope x). Adding constraints added complexity with little benefit. | Team shifted to estimating GaTech IMU placement through simulation (Gautam in Simulink, Amily in MuJoCo using motion capture data) and deriving the transformation from the estimated sensor positions. |
| 11 | Oct 2026 | Oct 2026 | Amily, Atirav | Software / Testing | During the sensor rate and read-failure test (Test 1), the data collection process occasionally stalled for ~19–54 ms, causing failures even though the sensors themselves were meeting their rates. The stall was traced to Python’s garbage collector slowing down as the logger buffered ~500,000 rows. | Suspended garbage collection during runs and pinned the logger to a single CPU core (real-time scheduling was not available without root access). Test 1 passed on repeated bench runs; walking conditions still pending. |
| 12 | Oct 2026 | Oct 2026 | Amily, Atirav | Test Design | Frozen-data test (Test 2) criteria incorrectly flagged healthy sensors: unloaded FSRs naturally stay near-constant, and the encoder holds the same value for ~12–15 samples near swing reversal, exceeding the original 5-sample threshold. | Revised the test so each channel is only evaluated while its own input is active, and changed the encoder unchanged-value limit from 5 samples to 50 ms. Bench test then passed and flagged only the intentionally frozen shank gyro (positive control). |
| 13 | Oct 2026 | Oct 2026 | Amily, Atirav | Software / Timing | Read-time skew test (Test 3) met the 10 ms 99th-percentile limit, but 0.13–0.20% of control loops reused a stale IMU reading during ankle motion, exceeding the 0.1% tolerance. Traced to the logger’s catch-up scheduling starting a loop early before a new IMU sample was available. | Team plans to switch to a fixed 10 ms loop deadline instead of catch-up scheduling and rerun the test. Amily later found IMU packet intervals vary from ~7–13 ms, so some loops get no new packet and the next gets two; timestamp-based freshness checks are being considered. |
| 14 | Oct 2026 | Oct 2026 | Gautam | Dataset Mismatch | Transformation matrices between GaTech and exoskeleton IMU locations, derived from a Simulink walking model with mounted virtual IMUs, were not accurate enough to test on the exoskeleton. | Team moved to a MuJoCo model driven by GaTech motion capture data (Amily) to fit IMU position and orientation. Gautam’s Simulink results were used to cross-validate, with both placing the shank IMU at ~3/4 shank length. |
| 15 | Oct 2026 | Oct 2026 | Pawan | Sensor Integration | IMU frame transformation errors are silent: a flipped axis sign or swapped axis produces a believable but wrong signal that would surface later as an apparent controller tuning problem rather than a data problem. | Pawan validated every axis against physical references instead of mounting drawings: gravity at standing pose to confirm accelerometer axis and sign, and deliberate dorsiflexion/plantarflexion to confirm gyro signs. Transformed signals were then compared against GaTech channels during standing and walking. |
| 16 | Oct 2026 | Oct 2026 | Narayanan | Software / Evaluation | Running the new waveform metrics package on real data exposed two bugs: CMC saturated at 1.0 with many strides, and peak metrics took the maximum value, missing the negative push-off peak. | Rewrote CMC using the Kadaba formula and changed peak detection to follow the signal’s dominant direction, improving per-stride peak ICC from 0.13 to 0.72. |
| 17 | Oct 2026 | Nov 2026 | Atirav | Procurement | The custom sensor connector PCB was delayed due to miscommunication with JLCPCB over email for their PCBA service; a reply sent to JLCPCB was never acknowledged. | Atirav built an interim board on an MRSD lab protoboard with 2.54 mm JST connectors, bypass and bulk capacitors, silvered copper wiring, and a custom standoff to insulate it from the aluminum frame. ESD protection now comes from the TVS diodes built into the Adafruit sensor breakouts. |
| 18 | Oct 2026 | Oct 2026 | Atirav, Pawan | Electronics Design | The off-brand AS5600 encoder breakout failed again (the second one lost) and took the ADS1115 ADC with it. The most likely cause is ESD from the velcro backmount, which generates static on every don/doff. | Switched to the Adafruit AS5600 breakout with built-in TVS diodes and I2C pull-ups; Atirav designed a new encoder mount for its hole pattern with larger openings for the JST SH connectors. Distal sensors rewired with fresh JST crimps and grounded to a single point on the frame, and wiring checked to confirm ground is not tied to the wearer. |
| 19 | Oct 2026 | Oct 2026 | Atirav, Amily | Software / Safety | The new 3/32″ cable snapped during testing. An error in the CAN exit message structure sent a non-zero “stop” command that was actually a full-torque command, and the torque limit function was scaling applied torque up by 4x due to a pre-scaler. | Fixed the CAN exit message in both deployment and testing code and synced the change across all branches. Added global torque thresholds to the actuator driver so no rogue commands can reach the motor. Amily repaired the cable assembly so testing could continue. |
| 20 | Oct 2026 | Oct 2026 | Narayanan, Pawan | Software / Controls | In the first powered run of the ML controller (85 strides), the torque sent to the motor was the mirror image of the model’s output, so the exoskeleton resisted the wearer. The assistance scale was also set to 0.2 instead of 0.02, so requests reached ~21 N·m and were clipped at the 2 N·m limit, flattening the torque waveform. | Corrected the sign convention between controller output and motor driver and restored the intended 0.02 scale. Added a bench check that commands a known low torque and confirms direction at the output before the exoskeleton goes on a person. |
| 21 | Oct 2026 | Oct 2026 | Amily | Manufacturing / Tooling | Cutting and crimping the thicker 3/32″ cable was much harder than expected; the lab’s cutters and crimpers were not adequate for a reliable crimp, even with body weight applied. Since the crimp is in the main force path, a weak crimp could fail even if the cable is strong enough. | Cable replacement was completed manually. Team plans to source proper cutting and crimping tools and run a controlled pull test on crimped connections before installing them on the exoskeleton. |
| 22 | Oct 2026 | Oct 2026 | Gautam | Software / Performance | The CAN-to-control loop test initially showed very high latency because the TCN model used a large amount of memory. Under full load, the loop averaged 86.87 Hz, short of the 100 Hz target. | Parallelized the model code on the Jetson’s GPU and moved the deployment code to NumPy-only data structures, roughly halving latency. The later end-to-end latency test confirmed the full pipeline runs above 100 Hz with each cycle under 10 ms. |
| 23 | Nov 2026 | Nov 2026 | Gautam, Amily | Electronics / Embedded | IMUs restarted with I2C errors (Errno 121) whenever the motor driver was powered: with the actuator on at 0 N·m, 22 of 33 sensor checks failed, the foot IMU restarted 19 times, and the foot accelerometer missed 86.8% of samples. Failures also occurred on the bench with the motor powered. | Gautam isolated the cause with a dropout monitor and a zero-torque CAN sender, pointing to the powered motor driver rather than walking motion. Later 60 s and 180 s runs showed no dropouts or only short gaps (max 67 ms). Amily separated true dropouts from normal 7–13 ms packet timing jitter. Monitoring continues under full walking load. |
| 24 | Nov 2026 | Nov 2026 | Gautam | Software / Controls | Two problems in the TBE controller: a single heel strike could be recorded twice, corrupting stride counts and times, and FSR reads could fail with an I2C error (Errno 121), likely from motor noise, which stopped the control loop. | Heel strikes are now only accepted 0.5 s after the previous one. Each FSR read retries twice with a 3 ms timeout and holds the previous value if missed, with a safe stop after 75 consecutive failures (~0.5 s). Shutdown path restructured so motor torque is always zeroed and buses released on any exit. |
| 25 | Nov 2026 | Nov 2026 | Atirav, Amily | Testing / Logistics | The scheduled EMG data collection session at the MetaMobility Lab was lost because the exoskeleton could not read valid sensor signals, even though the sensors appeared connected. The session ended before the issue was found. | Root cause was a loose ground cable in the sensor wiring; Atirav rewired the connection and data collection was completed a few days later. Team plans to run a sensor and wiring check before every lab session. |
| 26 | Nov 2026 | Nov 2026 | Narayanan, Atirav | Controls / Tuning | The wearer reported poorly timed assistance. Narayanan first trained TCN variants predicting 50–150 ms ahead to compensate for suspected lag, but later feedback showed assistance was actually arriving too early, so predicting further ahead moved timing the wrong way. | Added a configurable output delay buffer that holds predictions before sending them to the actuator, clears on swing or when assistance is disabled, and can be set from the dashboard. Delayed trials felt better to the wearer and reduced lateral gastrocnemius EMG versus TBE. |
| 27 | Nov 2026 | Nov 2026 | Atirav | Mechanical Design | At higher assistance levels enabled by the thicker cable, the shoe was not rigid enough to transmit torque from the exoskeleton to the foot and visibly deformed under load. | Filled the sole of the shoe with hot glue, making the joint much more rigid and giving a firm connection to the exoskeleton. |
| 28 | Nov 2026 | Nov 2026 | Pawan | Mechanical Design | During extended lab trials, nuts on the assembly loosened with prolonged use, and the subject found the extruding bolts uncomfortable; both issues could end a session early. | Refitted the loosened nuts with locknuts and covered extruding bolts with plastic caps. Team will confirm both fixes hold through a full-length session. |