Readiness report
ODrive v3 Brushless Servo Drive · 2026-09-03 15:54 · complete · 21 searches, 9 pages fetched
Cybersecurity — software & network: Do not place on an open network · 18 findings
Details in the Cybersecurity section of the report below.
Readiness: ODrive v3 Brushless Servo Drive
Verdict: At risk · 2026-09-03 · est. parts cost $210–$650 per station Cybersecurity — software & network: Do not place on an open network
This is the cold check — no previous readiness report exists, so this report is the baseline every future check will measure drift against. Every individual component on the bill of materials can be ordered today, several of them from more than one distributor, and the two parts that looked troubled turned out to have evidence-verified substitutes. The problem is the centrepiece. The vendor's own product page calls the board "ODrive v3.6 (NRND)" and says "Recommended to use ODrive S1 instead"; the vendor's comparison page says the v3.6 "is approaching its end of life, and strongly recommended against for new and existing designs". The recommended replacement does not replace this lab: the S1 controls one motor where this lab drives two, and the same comparison table marks the v3.6 with an X for both "Next-Gen Firmware Support" and "ODrive GUI Support" — the successor boards run a different, closed software stack, which is exactly what the lab's snapshot records. The repository holds no Gerber or fabrication files, so the board cannot be rebuilt from the lab's own materials either. The lab runs today on boards still listed at $259 and on surplus stock; it has no supported path beyond that.
Action required
| Part | Problem | Recommended action |
|---|---|---|
| ODrive v3.6 board assembly | Vendor-declared NRND and approaching end of life; the recommended successor (ODrive S1) is single-axis and on an incompatible closed firmware stack | Buy the boards and spares now while the vendor still lists them at $259.00; start planning a curriculum migration, because the successor hardware needs a different lab |
| NTCG163JF103FT1 (inverter FET thermistor, ×2) | Active on paper but zero stock at all five ECIA distributors (DigiKey 12-week factory lead, Mouser 55,997 on order, Future 116,000 on order) | Substitute ERT-J1VG103FA at $0.19 with 605,202 in stock — a parametrically verified match (see Substitutes) |
| NVMFS5C612NLT1G (inverter MOSFETs, ×12) | Lifecycle status Not For New Designs; ECIA lifecycle risk Med | Still 45,000 in stock at $7.73, but switch to NVMFS5C612NLET1G — Active, $5.54, identical package and ratings |
| NVD5C668NLT4G (brake-driver MOSFET) | Out of stock at DigiKey with a 57-week factory lead; only 1 of 5 ECIA distributors holds any | Order from Mouser (2,389 in stock @ $3.08). DigiKey's suggested alternate IPD50N06S409ATMA1 was checked and is Discontinued at DigiKey with zero stock anywhere — do not use it |
| Low-side current shunt resistors (4–6) | The snapshot's representative part number WSL2512R0010FEA exists in no catalog, and the lab's materials never state the board's actual shunt value | Read the fitted shunt value off the board or from the firmware's board-revision constants before ordering, then buy the matching WSL2512 value at ≥2 W |
| 24 V DC bus supply | Not a sourcing problem but a shopping hazard: the same search returns 30 W units (MEAN WELL RPS-30-24 at $12.90, HDR-30-24 at $13.40) alongside the 30 A units this lab needs | Order by wattage, not by the model number's digits — the lab needs a 700 W-class supply |
Cybersecurity — software & network
Do not place on an open network — The GUI's backend daemon listens on all interfaces with no authentication on handlers that command motor motion, and it runs on an end-of-life Electron and Vue stack whose pinned dependencies carry critical advisories with no in-version fix.
| Component | Version | How known | Support status |
|---|---|---|---|
| ODriveGUI (Electron desktop application) | 0.1.0 | read from project (the version field of GUI/package.json (fetched/02-package.json)) | — |
| electron | 15.5.5 | read from project (pinned in GUI/package-lock.json (fetched/01-package-lock.json)) | unsupported since 2022-05-24 |
| vue | 2.6.11 | read from project (pinned in GUI/package-lock.json (fetched/01-package-lock.json)) | unsupported since 2022-07-01 |
| vuex | 3.5.1 | read from project (pinned in GUI/package-lock.json (fetched/01-package-lock.json)) | — |
| socket.io-client | 3.0.4 | read from project (pinned in GUI/package-lock.json (fetched/01-package-lock.json)) | — |
| socket.io-parser | 4.0.2 | read from project (pinned in GUI/package-lock.json (fetched/01-package-lock.json), resolved under socket.io-client) | — |
| xmlhttprequest-ssl | 1.5.5 | read from project (pinned in GUI/package-lock.json (fetched/01-package-lock.json), resolved under socket.io-client) | — |
| ws | 7.2.5 | read from project (pinned in GUI/package-lock.json (fetched/01-package-lock.json)) | — |
| chart.js | 2.9.3 | read from project (pinned in GUI/package-lock.json (fetched/01-package-lock.json)) | — |
| chartjs-plugin-streaming | 1.8.0 | read from project (pinned in GUI/package-lock.json (fetched/01-package-lock.json)) | — |
| uuid | 8.2.0 | read from project (pinned in GUI/package-lock.json (fetched/01-package-lock.json)) | — |
| parseuri | 0.0.6 | read from project (pinned in GUI/package-lock.json (fetched/01-package-lock.json), resolved under socket.io-client) | — |
| vue-template-compiler | 2.6.11 | read from project (pinned in GUI/package-lock.json (fetched/01-package-lock.json)) | — |
| @vue/cli-service | 4.4.6 | read from project (pinned in GUI/package-lock.json (fetched/01-package-lock.json)) | — |
| @babel/traverse | 7.10.4 | read from project (pinned in GUI/package-lock.json (fetched/01-package-lock.json), build toolchain) | — |
| cipher-base | 1.0.4 | read from project (pinned in GUI/package-lock.json (fetched/01-package-lock.json), build toolchain) | — |
| ODriveGUI backend daemon (Flask + Flask-SocketIO) | not determined | unpinned (GUI/server/odrive_server.py imports flask, flask_socketio, flask_cors and engineio; no version constraint for any of them exists anywhere in the repository) | — |
| odrivetool / odrive (PyPI host control tool) | not determined | unpinned (tools/requirements.txt contains only an index URL and '-e .'; tools/setup.py install_requires lists ipython, PyUSB, requests, IntelHex, matplotlib, monotonic and setuptools with no version pins) | — |
| ODrive embedded firmware | 0.5.6 | inferred (recorded in the lab snapshot as the top release in CHANGELOG.md; CHANGELOG.md was not fetched this run) | — |
| STM32CubeMX HAL | 1.19.0 | inferred (recorded in the lab snapshot from CHANGELOG.md; not fetched this run) | — |
| ARM CMSIS-DSP | not determined | not determined (no version is stated in the lab's sources) | — |
| Firmware build toolchain (Tup, GNU Make, arm-none-eabi-gcc) | not determined | not determined (no versions are stated in the repository root files) | — |
| ODriveArduino / ODriveEnums.h | not determined | not determined (the Arduino library carries no version pin) | — |
| Component | Finding | Severity | Fix available? |
|---|---|---|---|
| @babel/traverse | The build toolchain pins @babel/traverse 7.10.4, which can be made to execute attacker-controlled code while compiling — it only matters for someone who builds the GUI from source. — GHSA-67hx-6x53-jw92 | critical | Mitigation only — build dependency only; regenerate the lockfile before building the GUI from source (fixed at 7.23.2). |
| cipher-base | The build toolchain pins cipher-base 1.0.4, which skips type checks and can be fed crafted data to rewind a hash — it only matters for someone who builds the GUI from source. — GHSA-cpq7-6gpm-g9rc | critical | Mitigation only — build dependency only; regenerate the lockfile before building the GUI from source (fixed at 1.0.5). |
| socket.io-parser | The pinned socket.io-parser 4.0.2 accepts malformed packets without validating them, so anything that can connect to the GUI's daemon socket can crash it or exhaust its memory. — GHSA-qm95-pgcg-qqfq, GHSA-2m8v-j782-fhvr, GHSA-677m-j7p3-52f9 | critical | No — project pins socket.io-client ^3.0.4 in GUI/package.json, which resolves socket.io-parser to 4.0.2; the fix starts at 4.0.5. |
| xmlhttprequest-ssl | The pinned xmlhttprequest-ssl 1.5.5 allows code injection and does not validate TLS certificates properly, so traffic between the GUI and its daemon can be tampered with. — GHSA-h4j5-c7cj-74xg, GHSA-72mh-269x-7mh5 | critical | No — project pins socket.io-client ^3.0.4 in GUI/package.json, which resolves xmlhttprequest-ssl to 1.5.5; the fix starts at 1.6.2. |
| chart.js | The live-plotting library is pinned at chart.js 2.9.3, which is vulnerable to prototype pollution from the data it is given. — GHSA-h68q-55jf-x68w | high | Yes — update to 2.9.4. |
| electron | The GUI runs on Electron 15.5.5, which carries 38 known advisories including context-isolation escapes and use-after-free bugs, so content the GUI renders could break out and run code on the lab PC. — GHSA-qqvq-6xgj-jw8g, GHSA-532v-xpq5-8h95, GHSA-9wfr-w7mm-pc7f, GHSA-h7rp-cf8h-j98x (+2 more) | high | No — project pins electron ^15.5.5 in GUI/package.json; the earliest fixed builds are Electron 22.3.25 and later. |
| ws | The WebSocket library carrying GUI traffic is pinned at ws 7.2.5, which can be exhausted into a denial of service by a crafted request, taking the GUI's link to the drive down. — GHSA-96hv-2xvq-fx4p, GHSA-3h5v-q93c-6h6q, GHSA-6fc8-4gx4-v693 | high | Mitigation only — regenerate the lockfile to pick up ws 7.5.11 within the same major version, or keep the GUI off shared networks. |
| parseuri | parseuri 0.0.6, which socket.io-client uses to parse the daemon's address, can be hung by a crafted URL, and no fixed version exists. — GHSA-6fx8-h7jm-663j | moderate | Mitigation only — no fixed version has been published; the parser is only reached with the address the GUI itself supplies. |
| uuid | uuid 8.2.0 is missing a buffer bounds check in its v3/v5/v6 generators. — GHSA-w5hq-g745-h8pq | moderate | No — project pins uuid ^8.2.0 in GUI/package.json; the fix starts at 11.1.1. |
| vue-template-compiler | vue-template-compiler 2.6.11 can be induced to emit cross-site-scripting into a compiled template, and no fixed version exists for the Vue 2 line. — GHSA-g3ch-rx76-35fx | moderate | Mitigation only — no fixed version has been published for Vue 2's compiler; it is a build-time dependency. |
| vue | vue 2.6.11 has an inefficient regular expression in parseHTML that can be made to hang the GUI. — GHSA-5j4c-8p2g-v4jx | low | No — requires platform migration (the fix is in the Vue 3 line). |
| electron | Electron 15 reached end of life on 2022-05-24 and receives no further security updates, so the advisories against the pinned 15.5.5 build have no fix inside that major version. | posture | No — requires platform migration. |
| ODriveGUI backend daemon (Flask + Flask-SocketIO) | The daemon that the GUI talks to starts with socketio.run(app, host='0.0.0.0', port=5000), so it listens on every network interface of the lab PC rather than only on localhost. | posture | Mitigation only — bind the daemon to 127.0.0.1, or keep the lab PC off shared networks and behind a host firewall. |
| ODriveGUI backend daemon (Flask + Flask-SocketIO) | None of the daemon's socket.io handlers require authentication, and they include setProperty and callFunction, so anyone who can reach port 5000 can change the drive's configuration and command the motor to move. | posture | Mitigation only — isolate the lab PC on its own network segment and never leave a motor able to move freely while the bus is powered. |
| ODriveGUI backend daemon (Flask + Flask-SocketIO) | The daemon accepts connections from any web origin: SocketIO is created with cors_allowed_origins="*" and Flask-CORS is enabled with support_credentials=True, so any page the lab PC browses can open a socket to it. | posture | Mitigation only — restrict cors_allowed_origins to the GUI's own origin. |
| ODriveGUI backend daemon (Flask + Flask-SocketIO) | The daemon's Flask session key is hardcoded in the public repository as app.config['SECRET_KEY'] = 'secret', so any session cookie it issues can be forged by anyone who has read the source. | posture | Mitigation only — set SECRET_KEY from an environment variable to a random value. |
| odrivetool / odrive (PyPI host control tool) | Dependencies unpinned: 8 of 8 in tools/setup.py (ipython, PyUSB, requests, IntelHex, matplotlib, monotonic, setuptools, pywin32) — 'pip install odrive' installs whatever is current, so the tool students run against the drive has no checkable security state. | posture | Mitigation only — pin versions / use a lockfile. |
| vue | Vue 2.6 reached end of life on 2022-07-01, so the GUI's UI framework is no longer receiving security fixes. | posture | No — requires platform migration. |
What this means for your lab
The desktop GUI that comes with this lab starts a small server on the lab PC, and that server listens on every network connection the PC has, not just on the PC itself. It asks for no password, and the commands it accepts include changing the drive's settings and telling the motor to move. In practice that means anyone else on the same campus or lab network, while the GUI is open, could spin a motor that is bolted to a bench or a robot arm - a safety problem before it is a data problem. The GUI itself is also built on a version of Electron and of Vue that stopped receiving security updates in 2022, and the versions its lockfile pins carry several serious known flaws with no fix available inside those versions. Nothing in the drive's own firmware was checkable - there is no vulnerability database for vendor microcontroller firmware - so treat 'not checked' there as unknown, not as safe. What to do: run the GUI only on a PC that is not on the shared campus network, or on an isolated lab segment; keep the motor mechanically restrained or unloaded whenever the bus is powered and the GUI is open; and raise this with campus IT before connecting any lab PC running this software to a network they manage.
Not checked
- ODrive embedded firmware 0.5.6: vendor firmware for an embedded microcontroller; no advisory database covers it, and CHANGELOG.md was not fetched this run
- STM32CubeMX HAL 1.19.0: vendor microcontroller HAL package; no advisory database covers it
- ARM CMSIS-DSP: no version is stated in the lab's sources, so there is nothing to look up
- Firmware build toolchain (Tup, GNU Make, arm-none-eabi-gcc): versions are neither pinned nor stated in the repository
- ODriveArduino / ODriveEnums.h: Arduino library with no version pin, and no advisory database covers the Arduino ecosystem
- odrivetool / odrive (PyPI) and its dependencies: installed unpinned via 'pip install odrive'; no exact version exists to check
- Flask, Flask-SocketIO, Flask-CORS, python-engineio (GUI backend daemon): imported by GUI/server/odrive_server.py with no version constraint anywhere in the repository; no exact version to check
- Host operating system and Python runtime: no version or codename is stated in the lab's materials
- 893 further dependencies in package-lock.json: beyond the 500-dependency automatic check cap (e.g. dotenv, dotenv-expand, duplexer, duplexer3, duplexify)
Parts
Active integrated circuits and semiconductors
| Part | Spec/Package | Status | Stock | Price | Source |
|---|---|---|---|---|---|
| STM32F405RGT6 | 64-LQFP, VDD 1.8–3.6 V, ARM Cortex-M4F | Active | DigiKey stock not reported; Arrow 2,009 | $12.50 (DigiKey) | DigiKey; Arrow $8.278; Mouser 0 (27,739 on order) |
| STM32F405RGT6TR (reel variant) | 64-LQFP (10x10), VDD 1.8–3.6 V | Active | 198 | $13.25 | DigiKey |
| DRV8301DCAR (×2) | 56-HTSSOP / 56-PowerTFSOP, supply 6–60 V | Active | 3,888 | $8.73 | DigiKey; Mouser 30 @ $8.52 |
| NVMFS5C612NLT1G (×12) | 8-PowerTDFN 5-lead / 5-DFN 5x6, 60 V, 36 A (Ta) / 235 A (Tc) | Not For New Designs | 45,000 | $7.73 | DigiKey; Rochester 240,000 @ $2.03; Mouser 2,269 @ $5.79 |
| NVD5C668NLT4G | TO-252-3 / DPAK, 60 V, 49 A (Tc) | Active (57-week DigiKey lead) | 0 at DigiKey; Mouser 2,389 | $3.01 (DigiKey list) | Mouser @ $3.08 is the only stocking distributor |
| NTCG163JF103FT1 (×2) | NTC 10 kΩ, 3380 K, ±1%, 0603 (1608 metric) | Active (12-week lead) | 0 at all 5 ECIA distributors | $0.18 | DigiKey (backorder only) |
| Low-side shunt resistors (4–6) | 0.5 mΩ or 1.0 mΩ, ≤1%, ≥2 W, 2512 or 1206 | not checked | — | — | Representative MPN WSL2512R0010FEA is in no catalog and no ECIA distributor lists it |
Electromechanical and external hardware
| Part | Spec/Package | Status | Stock | Price | Source |
|---|---|---|---|---|---|
| JS102011SAQN (DFU/boot switch) | SPDT slide, 300 mA DC / 6 V, SMT right angle, 2.00 mm actuator | Active | 57,265 | $0.85 | DigiKey |
| AMT102-V (quadrature encoder, 1–2) | Supply 3.6–5.5 V, 2–8 mm open-centre, motor/chassis mount | Active | 3,774 | $34.23 | DigiKey (Same Sky, formerly CUI Devices) |
| ST-LINK/V2 (SWD programmer) | USB dongle, 3.3 V SWD | Active | 7,336 | $25.65 | DigiKey; the vendor page confirms the ST-Link is the right tool for the v3.6 |
| External brake resistor (0.5 Ω, ≥50 W) | Chassis-mount wirewound, aluminium housed | Readily available (and shipped with a new board) | — | $7.95 | Parts Connexion (Riedon 0R5, 50 W, ±1%); also $9.53 RS - America |
| Motor phase thermistors (up to 2) | 10 kΩ NTC probe, motor-embedded or lug | Readily available | — | $7.19 | Walmart - Envistia Mall; also $1.39 Vetco, $3.32 TE Connectivity |
| DC bus power supply (24 V, 30 A) | 720 W-class switching supply or LiPo pack | Readily available | — | $70.49 | Walmart - Tasharina Corp; also $101.49 eBay, $139.99 Powerwerx |
| Brushless motor, 5065-class 270 KV (1–2) | 3-phase BLDC outrunner, phase R 10 mΩ–1 Ω | Readily available | — | $89.00 | ODrive Robotics (the vendor's own motor); also $34.00 eBay, $60.50 Mayrc |
| ODrive v3.6 board assembly | 140 x 50 mm PCBA, 12–56 V in, dual 3-phase inverter | Obsolete / NRND — vendor end-of-life | not stated on the fetched page | $259.00 | ODrive Robotics; clone listing $47.55 USA.Banggood (unverified) |
Substitutes
| For part | Substitute | Differences | Verified | Judgment |
|---|---|---|---|---|
| NVMFS5C612NLT1G (NRND) | NVMFS5C612NLET1G — onsemi, Active, $5.54, 1,695 in stock | VDS 60 V = 60 V; ID 38 A (Ta) / 250 A (Tc) vs 36 A (Ta) / 235 A (Tc) — exceeds, acceptable; gate drive 4.5 V / 10 V identical; Ciss 6660 pF identical; dissipation 3.8 W (Ta) / 167 W (Tc) identical; TJ -55 to 175 °C identical; package 8-PowerTDFN 5-lead / 5-DFN 5x6 identical. Cheaper than the original and Active where it is NRND | verified: package/case + supplier device package, drain-source voltage, gate drive voltage, continuous and pulsed current (DigiKey parametrics on both parts). Not verified: pin-for-pin lead arrangement and RDS(on) — the snapshot's ≤3 mΩ requirement is in neither parametric block; what the trailing "E" encodes is assumed, not evidenced | Acceptable |
| NTCG163JF103FT1 (zero stock) | ERT-J1VG103FA — Panasonic Industry, $0.19, 605,202 in stock | 10 kΩ = 10 kΩ; ±1% = ±1%; B-value tolerance ±1% = ±1%; B value 3380 K = 3380 K; 0603 (1608 metric) = 0603 (1608 metric); 100 mW = 100 mW; -40 to 125 °C identical. DigiKey classes it a Parametric Equivalent. Caveat: its own status is Last Time Buy (ECIA lifecycle risk High), but 8 distributors hold stock — buy the lab's lifetime supply at once | verified: package/case + mounting type, nominal resistance, resistance tolerance, B-value tolerance, power rating, operating temperature (DigiKey parametrics on both parts); B value 3380 K (DigiKey description on both). Not verified: the full resistance-vs-temperature curve against the firmware's derating table — no datasheet was fetched | Acceptable (first choice) |
| NTCG163JF103FT1 (zero stock) | NCP18XH103F03RB — Murata, $0.18, 160,259 in stock | Same parametric match as above on every field; its own status is Not For New Designs (ECIA lifecycle risk Med, supply-chain risk Low), and Avnet holds 340,000 @ $0.06189 at qty 4000 | verified: package/case + mounting type, nominal resistance, resistance tolerance, B-value tolerance, power rating, operating temperature (DigiKey parametrics on both parts); B value 3380 K (DigiKey description on both). Not verified: full R-T curve vs the firmware's derating table | Acceptable (second choice) |
| NVD5C668NLT4G (57-week lead) | IPD50N06S409ATMA1 — Infineon | Checked on DigiKey's own suggestion and rejected: status Discontinued at DigiKey, no price, no stock; ECIA supply-chain risk High, 0 of 2 distributors with stock | verified: lifecycle status and stock at DigiKey and across ECIA (part_lookup this run) | Rejected — worse than the original |
| NVD5C668NLT4G (57-week lead) | DMTH6010SK3Q-13 — Diodes Inc., $2.03 | 60 V VDS meets the ≥60 V requirement; TO-252 matches the package family by description only; continuous current 16.3 A vs the original's 49 A (Tc) — the 70 A pulsed rating is what a brake chopper needs, and the snapshot states no numeric brake current, so this cannot be settled from evidence | not verified: footprint and lead arrangement, RDS(on), pulsed-current adequacy — no parametric block and no stock figure were returned for this part, and no datasheet was fetched | Plausible, unverified — prefer buying the original from Mouser |
| Low-side shunt (representative MPN not in catalog) | WSL25121L000FEA — Vishay Dale, Active, $1.85, 10,930 in stock | 1 mΩ matches the snapshot's 1.0 mΩ option; ±1% meets ≤1%; 2512 (6332 metric) matches; but it is rated 1 W against the snapshot's stated ≥2 W — it falls short of a stated requirement | verified: package/case, resistance, tolerance, power rating (DigiKey parametrics). Not verified: nothing about the board's actually fitted shunt — the lab's materials never state it | Not acceptable as specified — it confirms the family is stocked, but check the board's real shunt value and rating first |
| ODrive v3.6 board | ODrive S1 — $149.00, backorder shipping by September 14 | Axis count 1 vs the lab's 2 — hard stop, this lab is explicitly a dual-axis controller with per-axis firmware objects; voltage 12–48 V (50.5 V max) vs the lab's 12–56 V — narrower, falls short at the top; and the vendor's comparison table marks the v3.6 X for both "Next-Gen Firmware Support" and "ODrive GUI Support" while the S1 is ✓ for both — the two boards are on different software stacks | verified: axis count, voltage range, continuous current, price and lead time (vendor product page fetched this run); firmware and GUI stack difference (vendor comparison table fetched this run) | Not acceptable — replaces the hardware but invalidates the lab |
| ODrive v3.6 board | Third-party "ODrive V3.6" clone — $47.55, USA.Banggood | The claim this substitution hinges on — that the board carries the same STM32F405/DRV8301 silicon and runs the same open-source v3.6 firmware image — was not confirmed; the shopping result exposes only a Google Shopping redirect, not the seller's own product page | not verified: silicon, firmware compatibility, board revision, quality, warranty — nothing beyond the listing title and price | Plausible, unverified — confirm compatibility with the seller before treating the price as equivalent value |
Verify any substitute against its own datasheet before ordering — the checks above are made against distributor parametric data and vendor pages, which is not the same as reading the part's specification sheet.
Other dependencies
- PCB fabrication files — not available. The snapshot records that Gerbers, layer count, copper weight and exact outer dimensions are absent from the uploaded repository files, and nothing found this run contradicts that. The board cannot be re-fabricated from the lab's own materials. The vendor product page does mention "3D files available to download from this OnShape page" — mechanical data, not fabrication data, and that link was not followed.
- Vendor shop, shop.odriverobotics.com — live. Both the v3.6 and S1 product pages were fetched successfully this run.
- Vendor documentation, docs.odriverobotics.com — live. The hardware comparison page was fetched successfully this run.
- GitHub repository, github.com/odriverobotics/ODrive — live. The GUI directory listed successfully (12 entries) and five files were fetched from the master branch this run.
- Main project site (www.odriverobotics.com), the Discourse forum, the community-chat link, Travis CI (travis-ci.org/madcowswe/ODrive) and the GitHub Actions link — not checked. None were fetched this run. Both CI references point at a legacy
.orgTravis URL and amadcowswe/repository path; worth an eyeball at the next check. - Board running change — mechanical. The fetched vendor page warns that "Due to supply constraints ODrive v3.6 may come with electrolytic capacitors that are 2mm taller taller than previous versions (10.8 - 12.8mm tall)" — a clearance detail for anyone reusing an existing enclosure or mounting.
Watch list
- The ODrive v3.6 board itself. Vendor-declared NRND and end-of-life, with the successor on an incompatible stack. This is the line most likely to end the lab rather than merely inconvenience it — check whether the vendor still lists it at every future check.
- NTCG163JF103FT1 inverter thermistors. Zero stock at all five ECIA distributors today, and both verified substitutes carry their own lifecycle flags (Last Time Buy, Not For New Designs). This part family is retiring; buy ahead.
- NVD5C668NLT4G brake-driver MOSFET. One stocking distributor and a 57-week factory lead — a single Mouser stock-out turns this into a hard-to-obtain part.
- NVMFS5C612NLT1G inverter MOSFETs. Already Not For New Designs with ECIA lifecycle risk Med. Deep stock today (45,000 at DigiKey, 240,000 at Rochester), but NRND parts do not restock.
- The low-side shunt resistors. Still unresolved: nobody has established what value and rating the board actually carries. Worth settling once, from a real board, so future checks have something exact to look up.
- STM32F405RGT6 supply concentration. Active and low-risk, but only 1 of 5 ECIA distributors held stock this run, with tens of thousands on order elsewhere — a thin position for the part the whole board is built around.