Robot_Link¶
Repo: https://github.com/EmbeddedEra/Robot_Link (from EmbeddedEra/Project_Template, SOP-022).
A DJI-style wireless robot kit: two or more motors (brushed or BLDC, up to 30 V / 20 A each), live
video and control from a phone or PC. The architecture table and phases are in the repo README;
this note holds the decisions, the log and the open items.
Decisions¶
- Motor control = VESC firmware (vedderb/bldc, GPLv3). It is the only mature stack with brushed DC, BLDC/FOC and dual-motor support. moteus has no brushed mode; ODrive's firmware is closed or NRND; SimpleFOC has no proven 20 A board. Gate driver DRV8353 per motor. 60 V MOSFETs, not 40 V: a 30 V bus plus regen spikes leaves no margin at 40 V.
- One radio: Ebyte E611-900NW20S (902–928 MHz), chosen 2026-09-29 for getting through walls and pipes. Its two transparent channels split the job: Ethernet = video (camera RTSP), UART = control and telemetry (STM32G0 ↔ STM32G0), so driving and e-stop do not depend on the camera's Linux. Dropped: BL-M8812EU2 / WFB-ng / ground SBC / PixelPilot. Cost: no live 1080p (the SD card records full quality on board) and no second link (the watchdog stops the motors on link loss).
- Ebyte has no true HD video module. The E611 is the only video+data family. Its manual gives a 16 Mbps air rate in a 1–2 MHz BSS channel; the throughput expected in practice is a few Mbps, i.e. 720p H.265. No latency figure is published anywhere (product page, 4 downloads and the 868/915NW33S manual all checked 2026-09-29).
- Camera = a bought module, not a chip on our PCB. The SSC338Q is sold as 38×38 camera boards (sensor board + SoC board); the bare chip means distributor/NDA sourcing and our own DDR routing. The module connects to our link board by Ethernet (4 wires, from its 6-pin JST "Ethernet & UART0" port) and power. (2026-09-29)
- Target use = inspection of dark pipes → Sony IMX307 (2 MP starlight, OpenIPC lists it for SSC338Q) with a fast ≈F1.0 lens, plus dimmable white LEDs around the lens. IMX335 (5 MP) only if a lit-environment variant is wanted later. (2026-09-29)
- Pan/tilt: two hobby servos, added 2026-09-29. The whole camera module rides the tilt head; ~10-wire harness through the pan axis (the sensor-to-SoC FPC is too short to split them).
- Link board (our PCB) = E611 + STM32G0. The MCU drives servos and LED dimming and passes control from the E611 UART to the motor board; on the ground unit the same MCU reads the sticks.
- Stack: link board on top, motor board below, one board-to-board connector (5 V, GND, UART, CAN, ESTOP). The ground station reuses the link board without a camera, plus a USB-Ethernet bridge so the phone/PC sees the video as a network.
Prices seen 2026-09-29¶
- E611-900NW20S: LCSC ~$22 @10 (C42464126), JLCPCB $24, Alibaba $18–21. Ebyte publishes an Altium
E611.PcbLib. Not at Digi-Key/Mouser. - BL-M8812EU2 (dropped, for reference): ~$10, Taobao; needs 5 V > 3 A and a fan.
Open¶
- Phase 1 bench kit order: the list with prices is in the repo at
docs/bench-kit.md(24 lines, about $660–730). Goes through Purchasing (SOP-004). First ask Ebyte sales whether an E611 test kit with an RJ45 jack exists; if not, a Rev 0 breakout (E611 + HR911105A MagJack + 3.3 V + UART + U.FL) from JLCPCB. - Bench (go/no-go for the single-radio design): E611 glass-to-glass video latency, real throughput, and UART control latency while video is streaming (both channels share the air); range through pipe walls; confirm VESC brushed-DC mode on a 3-phase bridge.
- Camera board: IMX307 boards come on SSC335, not SSC338Q, which is fine for one 720p stream. Candidate: ipcameraboard.com IP35S307 (SSC335 + IMX307, 38×38, 100M Ethernet, UART, 12 V/PoE, 1.5 W, M12, no SD slot), $19.20, sales@ipcameraboard.com. SD-slot alternative on Alibaba ("30fps IP Camera Board Module With Sd Card Slot H.265 1080p Starlight", SoC unchecked). Confirm the IMX307 sensor driver in OpenIPC's SSC335 build on the bench. A 12 V camera means a 12 V rail on the link board.
- Size the LED lights for pipe inspection (lumens, beam angle, heat) and their driver on the link board.
- Ground unit: pick the USB-Ethernet bridge chip (e.g. RTL8152B) and check it can couple to the E611's PHY; confirm phones accept it as a USB network adapter (Android and iPhone).
- The E611 and the SSC338Q both expose a PHY: work out PHY-to-PHY wiring (magnetics or cap-coupled) from the E611 hardware-design chapter and the camera board's port.
- Product IPN (class A) and board IPNs from the ERP (SOP-001), then fill in
product.yml. - Set the
KICAD_LIB_TOKENsecret on the repo sokicad-checks.ymlpasses. - Rename
hardware/board-1→hardware/motor-boardwhen PCB work starts (SOP-021 step 1), then addhardware/radio-board. - FCC: a product needs radio certification. Check the E611's FCC ID status.
Log¶
- 2026-09-29: Project started. Repo created from the template;
product.ymland README filled. Architecture chosen (above). Research: VESC vs moteus/ODrive/SimpleFOC; Ebyte E611 vs OpenIPC/WFB-ng. - 2026-09-29: System block diagram drawn in draw.io:
docs/block-diagram.drawio(+ exported SVG in the README). Open items are drawn as dashed boxes: servo driver, ground-station ADC for the sticks, Hall/encoder inputs. - 2026-09-29: Camera becomes a bought SSC338Q module on the pan/tilt head, and our "radio board" becomes a "link board" (radios + STM32G0 for servos/LEDs/UART). Target use set to dark pipes: IMX307 + LED lights. Diagram updated.
- 2026-09-29: Down to one radio, the E611: Ethernet carries video, UART carries control. 8812EU, WFB-ng and the ground SBC dropped. Diagram, README and note updated.
- 2026-09-29: Phase 1 bench kit priced in
docs/bench-kit.md. Distributor parts come from part-lookup; marketplace parts come from a scout and are marked search/est. No E611 test kit with an RJ45 jack found.