Readiness report
Donkey Car Self-Driving RC Platform · 2026-09-03 03:10 · complete · 29 searches, 21 pages fetched
Cybersecurity — software & network: Do not place on an open network · 5 findings
Details in the Cybersecurity section of the report below.
Readiness: Donkey Car Self-Driving RC Platform
Verdict: Ready with caveats · 2026-09-03 · est. parts cost $420–$580 (required items; 3D-printed parts and the optional LiPo kit excluded) Cybersecurity — software & network: Do not place on an open network
This is the cold check for this lab — there is no previous report, so the prices and stock levels below establish the baseline that future checks will measure drift against. Every part on the required bill of materials can be bought today and nothing is obsolete, but two of the three most expensive lines have moved away from what the lab's own build page assumes. The specified chassis (Exceed Magnet 1/16 Truck / HSP-94186) returned no US retail listing in two separate shopping passes, and the Donkey Car build page itself says these cars are "often ... out of stock" and that the HSP-94186 "can be found on AliExpress but takes about a month to get to the US" — a documented alternative, the WL Toys 144010, is plentiful but costs more and needs 3D-printed body-post adapters. The Raspberry Pi 5 8GB is in deep stock (17,329 pcs at DigiKey) but at $175.00 against the $60 the build page budgets, and no ECIA-authorized distributor shows stock against the snapshot's order code SC1112. Everything else — the PCA9685 driver, the wide-angle camera, jumper wires, power bank, SD card and fasteners — is readily available at sensible prices. Plan on a chassis decision and roughly double the documented budget.
Action required
| Part | Problem | Recommended action |
|---|---|---|
| RC Car Chassis (Exceed Magnet 1/16 / HSP-94186) | No US retail listing found in two shopping passes; the project's own docs say it is often out of stock and ships from AliExpress in about a month | Switch to the documented WL Toys 144010 alternative (see Substitutes) and budget a printed body-post adapter pair, or accept a ~1 month import lead time on the specified car |
| Raspberry Pi 5 Model B 8GB (SC1112) | In stock but $175.00 at DigiKey against the $60 the build page budgets (~2.9×); ECIA shows 0 authorized distributors with stock for SC1112 and rates supply-chain risk Med | Order early and budget $175 per car; the snapshot lists the Raspberry Pi 4B as a compatible fallback (not priced this run) |
| Optional LiPo balance charger | The mains-powered CC/CV charger the snapshot specifies (100–240 V AC) was not matched; the search returned balance boards and USB-powered chargers | If the LiPo upgrade is used, verify the input type on the specific charger before ordering — see Substitutes |
Cybersecurity — software & network
Do not place on an open network — The driving interface is an unauthenticated web service exposing a camera stream and vehicle control to everyone on the subnet, and the project offers no authentication to switch on - only network isolation.
| Component | Version | How known | Support status |
|---|---|---|---|
| Raspberry Pi OS (Debian 13 Trixie, 64-bit) | 13 | inferred (The snapshot records Debian 13 Trixie as stated in the lab documentation; no fetched project file pins an OS version.) | supported until 2028-08-09 |
| CPython | 3.13 | inferred (pyproject.toml sets requires-python = ">=3.12.0,<3.14"; the snapshot documents Python 3.13 as the Raspberry Pi OS runtime, so 3.13 is the version the car actually runs.) | supported until 2029-10-31 |
| donkeycar (core application) | not determined | not determined (pyproject.toml declares dynamic = ["version"] with version = {attr = "donkeycar.version"}, so the release version is resolved from source at build time and is not readable from the manifest.) | — |
| uv (Astral environment and package manager) | not determined | not determined (Installed by piping https://astral.sh/uv/install.sh into a shell; no version is recorded in the snapshot or any fetched file.) | — |
| tornado (Donkey Car web controller) | not determined | unpinned (pyproject.toml lists "tornado" under project.dependencies with no version constraint.) | — |
| numpy | 1.26.0 | inferred (pyproject.toml, project.dependencies, declares the range "numpy>=1.26.0" rather than a pinned version; 1.26.0, the lower bound, is the version checked against OSV this run.) | — |
| torch (optional torch autopilot stack) | 2.11.0 | inferred (pyproject.toml, project.optional-dependencies.torch, declares the series constraint "torch==2.11.*" rather than a pinned version; 2.11.0, the base of that series, is the version checked against OSV this run.) | — |
| torchvision | 0.26.0 | inferred (pyproject.toml, project.optional-dependencies.torch, declares "torchvision==0.26.*"; 0.26.0, the base of that series, is the version checked against OSV this run.) | — |
| torchaudio | 2.11.0 | inferred (pyproject.toml, project.optional-dependencies.torch, declares "torchaudio==2.11.*"; 2.11.0, the base of that series, is the version checked against OSV this run.) | — |
| tensorflow (PC and macOS training extras) | 2.19.0 | inferred (pyproject.toml, project.optional-dependencies.pc and .macos, declare "tensorflow==2.19.*"; 2.19.0, the base of that series, is the version checked against OSV this run.) | — |
| tf-keras | 2.19.0 | inferred (pyproject.toml, project.optional-dependencies.pc and .macos, declare "tf-keras==2.19.*"; 2.19.0, the base of that series, is the version checked against OSV this run.) | — |
| tensorflow-metal | 1.2.0 | read from project (pyproject.toml, project.optional-dependencies.macos ("tensorflow-metal==1.2.0") - the one fully pinned dependency in the manifest; auto-checked against OSV in code.) | — |
| ai-edge-litert (Raspberry Pi inference runtime) | 2.1.4 | inferred (pyproject.toml, project.optional-dependencies.pi, declares the range "ai-edge-litert>=2.1.4" rather than a pinned version; 2.1.4, the lower bound, is the version checked against OSV this run.) | — |
| python3-libcamera and python3-picamera2 (apt) | not determined | not determined (Installed with apt per the lab README; the version is whatever the Raspberry Pi OS release ships and is not recorded anywhere in the sources.) | — |
| Component | Finding | Severity | Fix available? |
|---|---|---|---|
| torch (optional torch autopilot stack) | PyTorch 2.11.0, the base of the ==2.11.* series this project pins for its optional PyTorch autopilot, can suffer memory corruption through torch.jit.script; it affects the computer used to train models rather than the car, and only if the PyTorch extras are installed. — GHSA-rrmf-rvhw-rf47 | low | No — project pins ==2.11.* |
| Donkey Car web controller (tornado, TCP 8887) | The snapshot records the Donkey Car web controller as an embedded Tornado server on TCP 8887 that serves a virtual joystick and a live camera stream to any browser on the local subnet, and records no authentication step for it, so anyone on the same network can drive the car and watch what its camera sees. | posture | Mitigation only — run the car on an isolated network segment or its own access point and never expose port 8887 to a shared campus network |
| Python dependencies (pyproject.toml) | Dependencies unpinned: 46 of 47 in pyproject.toml, tornado - the web server students reach over the network - among them, so the versions that actually get installed have no checkable security state and two identical builds a month apart can differ. | posture | Mitigation only — pin versions / use the lockfile |
| Remote access (OpenSSH TCP 22, VNC TCP 5900) | The lab instructs students to enable SSH on port 22 and optionally a VNC server on port 5900, with each student choosing the credentials during OS imaging and no password requirement recorded in the sources. | posture | Mitigation only — require strong per-student credentials at imaging time, prefer SSH keys over passwords, and leave VNC switched off unless a graphical session is genuinely needed |
| uv (Astral installer) | The environment manager is installed by piping a script fetched over the network straight into a shell (curl -LsSf https://astral.sh/uv/install.sh | sh), so whatever that URL serves at install time runs with the student's privileges and no version is ever recorded. | posture | Mitigation only — download the installer, read it, and install a specific uv release rather than piping the live script into a shell |
What this means for your lab
Treat the car as an open device on whatever network you join it to. Donkey Car's driving interface is a small web server on port 8887 that hands out a virtual joystick and a live camera feed, and nothing in the lab's materials asks anyone to log in first - so any person on the same Wi-Fi can open it in a browser, watch the camera, and steer the vehicle. The car also has SSH switched on, and optionally a remote-desktop (VNC) service, protected only by whatever password each student typed while writing the SD card. The software itself is in reasonable shape: the operating system (Debian 13) and Python 3.13 are both still supported, and the versions this check could pin down came back clean apart from one low-severity PyTorch issue that only touches the machine you train models on. The bigger practical problem is that the project fixes almost none of its dependency versions, so what a student installs today and what they install next month may differ, and neither can be checked in advance. Practical steps: put these cars on their own network segment or a dedicated access point rather than the campus network, insist on strong individual passwords at imaging time (SSH keys are better), leave VNC off unless a student actually needs a desktop, and talk to campus IT before connecting the cars to anything shared.
Not checked
- donkeycar (core application): Version is dynamic in pyproject.toml (version = {attr = "donkeycar.version"}), so no release version could be read from the manifest to check.
- uv (Astral): No version stated in the snapshot or any fetched file; installed from a live install script.
- tornado and 44 other unpinned PyPI dependencies (pillow, requests, pandas, matplotlib, opencv-contrib-python, kivy, paho-mqtt, pyserial and the rest): Declared in pyproject.toml with no version constraint, so there is no version to check against OSV.
- matplotlib and pandas: The snapshot recorded pins of 3.7.* and 2.0.*, but pyproject.toml as fetched this run declares both with no version constraint, so the snapshot's versions were not checked - the manifest has changed since the snapshot was written.
- python3-libcamera, python3-picamera2 (apt): Unpinned apt packages whose version comes from the Raspberry Pi OS release; no version stated in the sources.
- Raspberry Pi OS package inventory: Only the two apt packages the lab names were considered; the OS image's own package set was not enumerated.
- setuptools / wheel (build backend): build-system.requires lists both with no version constraint.
Parts
| Part | Spec/Package | Status | Stock | Price | Source |
|---|---|---|---|---|---|
| 1. RC Car Chassis — Exceed Magnet 1/16 Truck / HSP-94186 | 1/16 hobby RC truck, brushed 380/390 motor, discrete ESC with 5 V BEC, 3-wire steering servo | hard to obtain | — | — | No US seller found; Stirlingkit lists the HSP 94186 with matching specs but no price or stock |
| 2. Single Board Computer — Raspberry Pi 5 Model B 8GB (SC1112) | 85 × 56 mm SBC, 40-pin GPIO, 5.0–5.2 V USB-C, 3.3 V logic | available but overpriced | 17,329 | $175.00 | DigiKey, listed as SC1432 ("SBC 2.4GHZ 4 CORE 8GB PI 5", 85.60 × 56.50 mm) — Active |
| 3. 16-Channel 12-Bit PWM I2C Breakout — Adafruit 815 (PCA9685) | 62.5 × 25.4 mm breakout, 2.54 mm headers, I2C 0x40 default, 3.3 V VCC | readily available | 488 (Mouser), 334 (DigiKey) | $14.95 | Adafruit; also stocked at Mouser and DigiKey at $14.95 (ECIA: lifecycle risk Low, supply-chain risk Low) |
| 4. Wide-Angle Camera Module — Raspberry Pi Camera Module 3 Wide | 120° wide lens, MIPI CSI-2 FPC, libcamera/picamera2 compatible | readily available | 7,262 | $35.00 | DigiKey SC1224 ("RASPBERRY PI CAMERA 3 WIDE") — Active |
| 5. USB Power Bank — Anker 10,000 mAh | 5 V USB output, ≥ 3.0 A continuous, fits under the top plate | readily available | — | $25.99 | Target; range $20.79–$44.99 across Target, Best Buy, Newegg, eBay. Output current is not stated in any listing — check it |
| 6. MicroSD Card — SanDisk SDSQUA4-064G-GN6MA, 64GB | microSDXC, Class 10 / UHS-I, A1/A2 preferred | readily available (retail only) | — | $16.00 | Wired Watts; $12.32–$50.99 across Newegg, PC Richard, Best Buy, Micro Center. No authorized distributor lists this exact SKU (retail part) |
| 7. Jumper Wires — Adafruit 266, female-to-female | 40 × 6" (150 mm), 28 AWG, 0.1" (2.54 mm) sockets | readily available | 264 (DigiKey), 79 (Mouser) | $3.95 | Adafruit; same price at DigiKey and Mouser (ECIA: lifecycle risk Low, supply-chain risk Low) |
| 8. Board Mounting Fasteners — M2.5 × 12 mm screws, nuts, washers (4 each) | M2.5 × 0.45 mm, 12 mm; nylon or steel with insulating washers | readily available (commodity) | — | $20.78 | 240–300 pc M2/M2.5/M3 assortment (Asia Sell); kits run $3.06–$127.48. The McMaster-Carr SKU 92000A105 is not a distributor catalog number — not checked |
| 9. Roll Cage Structural Screws — M3 × 10 mm (3) | M3 thread, 10 mm, pan or button head; #6 SAE acceptable | readily available (commodity) | — | covered by the same assortment kit | McMaster-Carr SKU 92000A120 not checked (not a distributor catalog number) |
| 10. Small Mechanical Fasteners — M2 × 6 mm (8) | M2 thread, 6 mm; M2.2/M2.3/#4 SAE acceptable | readily available (commodity) | — | covered by the same assortment kit | McMaster-Carr SKU 92000A012 not checked (not a distributor catalog number) |
| 11. 3D-Printed Top Plate and Roll Cage | FDM, black PLA, 0.2–0.3 mm layers, 0.5 mm nozzle, no supports | not checked | — | — | Thingiverse thing:2566276 and the Donkey Car Store both downloaded but returned no readable text (JavaScript-rendered) |
| 12. Optional Drive Battery Upgrade — Turnigy 1800 mAh 2S 20C LiPo | 7.4 V nominal, 1500–2200 mAh, ≥ 20C, Deans/T or Tamiya lead, JST-XH balance | readily available (class) | — | $14.99 | SpeedyFPV — Turnigy 1800 mAh 2S 30C w/ XT60 (see Substitutes); 20C packs from Spektrum/Dynamite at $25.19–$29.00 |
| 13. Optional LiPo Balance Charger | 100–240 V AC in, CC/CV 8.4 V at 0.8–1.5 A, JST-XH port | available in class, exact type not matched | — | $9.99 | Buddy RC — ISDT UC2, USB-powered not mains (see Substitutes); the rest of the results were balance boards, $3.90–$18.99 |
| 14. Optional LiPo Safety Guard Bag | Fire-resistant pouch, approx 185 × 75 × 60 mm, hook-and-loop | readily available | — | $7.95 | Best Buy (Aries Lipo Safe); $3.49–$23.99 across Tenergy, iFlight, ProTek, HobbyTown |
| 15. Optional Chassis Adapters (Desert Monster / Blaze / Short Course) | 3D-printed body-post adapter brackets | not checked | — | — | Thingiverse returned no readable text; the build page confirms adapters can be printed or bought from the Donkey Car Store |
Substitutes
| For part | Substitute | Differences | Verified | Judgment |
|---|---|---|---|---|
| 1. RC Car Chassis | WL Toys 144010 — $159.18 (Banggood) | Sellers list it as 1/14 rather than 1/16 — inside the snapshot's stated 1/16-to-1/10 latitude. Brushless motor instead of the specified brushed 380/390: electrically fine (the lab only needs a discrete ESC and a 3-wire 50 Hz servo) but faster, and the build page warns it "takes some getting used to for beginners". Not a drop-in mechanically — the build page says the adapters for this car must be printed from Thingiverse or ordered from a print service. Costs $149.80–$254.60 against the $92 the build page budgets for the Magnet. | Verified: availability and price (Google Shopping, this run); scale and brushless motor (seller listing titles); documented-alternative status and the adapter requirement (donkeycar.com build page, fetched this run); latitude band (snapshot). Not verified: that this specific car ships with a discrete hobby ESC and a standard 3-wire steering servo — the snapshot warns the sibling 144011/144001 need both replaced. Body-post adapter geometry not verified (Thingiverse unreadable this run). | Acceptable with caveats — the practical way forward for a US purchaser today, at extra cost and one extra printed part |
| 1. RC Car Chassis | HSP 94186 Kidking via Stirlingkit | The exact specified car through a specialist importer rather than a US retailer. Specification matches the snapshot line for line: 1/16 scale, RC380 carbon brushed motor, brushed waterproof 03058 ESC, 7.2 V 1100 mAh NiMH included, 174 mm wheelbase. No adapters needed. | Verified: specification match to the snapshot (Stirlingkit product page, fetched this run). Not verified: price, stock, shipping time — the page carried none of them. | Plausible, unverified — the listing exists and matches, but nothing in the evidence shows it is purchasable or at what price |
| 13. Optional LiPo Balance Charger | ISDT UC2 1S/2S balance smart charger — $9.99 (Buddy RC) | JST-XH 2.54 balance port and 1S/2S LiPo CC/CV charging match the snapshot's substitution latitude. The one real difference: it is USB-powered, not the 100–240 V AC mains dock the snapshot's electrical constraints specify, so it needs a USB supply the lab probably already has. Charge current is not stated, so the 0.8–1.5 A requirement is unconfirmed. | Verified: JST-XH balance port, 1S/2S LiPo, USB input (shopping result title, this run). Not verified: charge current, CC/CV profile detail, AC-mains operation (it is not mains-powered). | Plausible, unverified — meets the written substitution latitude, but confirm the input type and charge rate before ordering |
Verify any substitute against its own datasheet or product page before ordering — the comparisons above are only as good as the evidence gathered on the date of this report.
Other dependencies
- Donkey Car documentation portal (
https://docs.donkeycar.com) — live; the full build page was fetched this run and still documents the parts list, print settings and PCA9685 wiring the snapshot records. - Donkey Car source repository (
https://github.com/autorope/donkeycar) — live; repository root listed this run (13 entries, default branchmain). - Donkey Car documentation repository (
https://github.com/autorope/donkeydocs) — live; README fetched this run. - Thingiverse model thing:2566276 (top plate, roll cage and chassis adapter STLs) — not checked; the page downloaded but returned no readable text (JavaScript-rendered), so the model's continued availability could not be confirmed automatically. Verify by hand before a class relies on it.
- Donkey Car Store (
https://donkeycar-701334.square.site) — not checked; downloaded but no readable text, so pre-printed part availability is unconfirmed. - NitroRCX Exceed vehicle catalog (
https://www.nitrorcx.com/1rcelca.html) — not checked; downloaded but no readable text. - DIY Robocars Waveshare PiRacer Pro guide — live, fetched this run; it quotes the pre-assembled PiRacer Pro at $268 and warns it ships with outdated Donkey Car software.
- DIY Robocars 1/28-scale build guide — live, fetched this run; quotes a complete 1/28 build at "less than $150".
- Mini RC Hat store page (
https://diyrobocars.myshopify.com/products/mini-rc-hat-for-raspberry-pi-zero-2-w) — live and in the catalog at $24.00 (needed only for the 1/28-scale variant). - Raspberry Pi camera documentation (
https://www.raspberrypi.com/documentation/accessories/camera.html) — not checked; the fetch was blocked. - Astral uv installer (
https://astral.sh/uv/install.sh) — not checked this run. - Fabrication — FDM printing in PLA only (0.2–0.3 mm layers, 0.5 mm nozzle, no supports, roll cage printed inverted); post-processing means re-drilling the M2, M2.5 and M3 through-holes and clearing the roll-bar side slots. No custom PCB gerbers exist for this build, so there is no board-fab dependency.
Watch list
- The chassis. This is the line most likely to break the lab. The specified Exceed Magnet / HSP-94186 already has no US retail presence, and the substitute (WL Toys 144010) is a different manufacturer on a different product cycle. Re-check both before every cohort, and keep printed adapters on hand.
- Raspberry Pi 5 8GB pricing. At $175 against a documented $60, and with zero authorized-distributor stock on the SC1112 order code, this is the single biggest cost risk. Watch whether the DigiKey price moves and whether other distributors restock.
- The wide-angle camera cable. The Pi 5 uses a 22-pin 0.5 mm FPC while the Pi 4 uses a 15-pin 1.0 mm one; which cable ships in the Camera Module 3 Wide box was not verified this run. Confirm before a bulk order.
- Power bank output current. No listing stated a continuous output rating. The Pi 5 wants 5 V at 3–5 A, and several cheap Anker 10,000 mAh units are USB-C input only. Verify the specific model each time.
- 3D model hosting. Thingiverse and the Donkey Car Store could not be read automatically two ways this run. If the model ever disappears, the whole mechanical build stops — keep a local copy of the STLs.