English · Deutsch
A motor, ESC (electronic speed controller) and servo test bench on two processors: an ESP32-S3 touch panel (user interface, settings, SD card) and an RP2350 coprocessor (measurement, outputs, and every protocol with timing requirements), connected over CAN (Controller Area Network) at 1 Mbit/s.
Status: under construction. The panel boots, every screen exists, and the CAN link runs on hardware. The output drivers are built and an armed bank drives every bound pin at its role's rest whether or not anything commands it; a motor and a servo have each been run from the panel on a bring-up bench. What is unmeasured is the timing on an instrument -- no bit width, frame period or reply delay in this tree has been seen on a scope or an analyser. Most other measurements wait on parts that are not fitted. Screens showing simulated values are marked SIMULATION.
STATUS.md records what is built, what is open and what is not planned.
This bench drives motors and servos. Keep clear of the propeller plane whenever the bench is armed.
Arming is deliberate: a two-second hold on ARM, with the command sent when the hold completes rather than when the finger lifts. Disarming and STOP are a single press.
Three stop mechanisms are designed in: a heartbeat whose absence removes the outputs, the coprocessor's own link watchdog, and a STOP command over the link. The line between the panel's J8 and the coprocessor's GP3 is fitted on the bring-up bench, so arming works there. The heartbeat's retriggerable monostable is on no board, so firmware at both ends is the only thing gating the outputs and there is no hardware backstop behind it. The STOP command over the link is written and not run on hardware. Safety specifies all three.
Nothing here has been through a safety certification. The MIT (Massachusetts Institute of Technology) licence's "without warranty of any kind" applies.
| Screen | Function | State |
|---|---|---|
| Motor & ESC | voltage, current, consumption, RPM (revolutions per minute) and temperatures plotted live | screen built; values simulated |
| Servo | commanded and measured position; installed-limit search; two-servo synchronisation | screen built and commanding over the link; drives the pins bound as surfaces, run on a bring-up bench, timing unmeasured |
| Analyser | sixteen receiver channels with history, the digital channels, LIVE / FRAME LOST / FAILSAFE / SILENT | S.BUS decoder built; PIO (programmable input/output) receiver not written |
| Programmer | BLHeli_S, AM32, ESCape32, VESC and Hitec parameter tables | screen built; no protocol on a wire |
| Balance | blade count, correction mass and angle, sensor placement guides | screen built; sensors not fitted |
| Battery | per-cell spread and verdict | screen built; cell monitor not fitted |
| Logs | browse, import and plot CSV (comma-separated values) from the card; runs are recorded while armed | built |
| Setup | settings in both themes, stored in NVS | built; persistence confirmed on hardware |
The host suite needs a C compiler and CMake:
cmake -S test/host -B test/host/build -DCMAKE_BUILD_TYPE=Debug
cmake --build test/host/build
ctest --test-dir test/host/build --output-on-failureThe panel firmware needs ESP-IDF (Espressif Internet-of-Things Development Framework) v5.4 or newer; the coprocessor firmware needs pico-sdk 2.0 or newer. Building has the toolchains, the commands and the CI gates.
The wiki is generated from
docs/ in English and German. Edit the files, not the wiki.
| Page | Content |
|---|---|
| What this is for | requirements and their state |
| Building | toolchains, commands, CI |
| Bringing up the link | wiring the two boards and verifying the bus |
| Screens | operating the bench |
| Balancing · Servo procedures · Receiver buses | the measurements |
| Safety | stop mechanisms and the required external circuit |
| The link · OpenYGE · Performance | firmware reference |
CONTRIBUTING.md has the rules and the checks CI runs. Two of them cannot be corrected after the fact: protocols are implemented from specifications, not from other implementations (a licensing rule), and coverage has a per-file floor as well as a total.
Security and safety reports: SECURITY.md.
rcbench is MIT licensed: LICENSE.
- DejaVu Sans Mono. The three font tables under
shared/gfx/are glyph bitmaps rendered from DejaVu Sans Mono bytools/gen_font.py, under the Bitstream Vera Fonts Copyright (NOTICE). No font file is redistributed. - Protocols are implemented from published specifications. Permissive reference code (PX4's receiver decoders under BSD (Berkeley Software Distribution); MIT reference code for SRXL2, JETI EX Bus, DShot and DroneCAN) was read for confirmation only.
- Design references: ArduPilot's IOMCU (the two-processor split and the watchdog ratio); YGE's OpenYGE material, from which the specification is written; the published protocols and configurators of BLHeli, AM32, ESCape32, VESC and Hitec.
- Third-party code in the tree: none.
test/host/greatest.his a test harness written for this project; it is not thegreatestlibrary.