|
rcbench
Servo and ESC test bench: panel, IOmcu and shared C
|
Files | |
| hitec_record.c | |
| The Hitec programmer's record on the card: HITEC.TXT in the folder BENCH/HITEC/CONF, the values before a write (hitec_card.h). | |
| knob_task.c | |
| The knob's I2C bus, its sensor's registration and the task that polls it. | |
| knob_task.h | |
| The rotary knob's reader: an MT6701 at 0x06 on an I2C (Inter-Integrated Circuit) bus of its own (BOARD_KNOB_PIN_SDA, BOARD_KNOB_PIN_SCL), polled from a task of its own. | |
| kst_files.c | |
| The card as the servo programmer's files see it. See kst_files.h. | |
| kst_files.h | |
| main.c | |
| The panel application: app_main, the console report and the main loop's hardware glue. | |
| panel.h | |
| What the panel's files share: firmware/panel/main/main.c and the files cut from it. One section per file, each holding what that file defines and another file uses. A file's own state stays static in that file. | |
| panel_arm.c | |
| The bench's arm on the control task: the state the loop starts from, the watch on an arm until the render side has seen it, the run's totals, the latched stop and the act the arming policy asks for, the OUTPUTS screen's binding onto the IOmcu's output pages, disarming wherever it was asked for, one motor command, and the screens' commands in their order. | |
| panel_art.c | |
| The board's drawing: fetched from the IOmcu a slice of a poll at a time on the control task, kept in flash a sector a pass on a safe bench, and published for the picker on the UI task. | |
| panel_boot.c | |
| The panel's start-up: the board, the settings, the display, touch, the card, the link and the IOmcu, each reported to the splash as it happens. | |
| panel_card.c | |
| The card's files outside the run log: the ESC profiles read at start-up, the log viewer's list, open and delete, and the servo programmer's record and file requests, which the logger task serves (panel_log.c). | |
| panel_control.c | |
| The control task: touch, STOP, arming, the outputs, the link and the heartbeat. | |
| panel_files.c | |
| FILES' card task: the file manager's card (fm_io.h) over the storage component, the task cardjob that runs the screen's requests (fm_req.h), and the screen's way to it (files_io_t). | |
| panel_frame.c | |
| The render loop, from app_main once the tasks are running. | |
| panel_hitec.c | |
| The control task's half of the programmer for servos by Hitec: the HITEC page's link module (hitec_link.h), the commands of the programmer's model and what the model is fed. | |
| panel_limit.c | |
| The INA3221 channels' current limits on their way to the IOmcu's SENSE_LIMIT page. | |
| panel_link.c | |
| The link to the IOmcu: exchange(), through which every request to the far end goes, and the control page, which carries ARM, THROTTLE, the pole count, CLEAR and the throttle's endpoints. The link report is here too. Control task only, and app_main before that task exists. | |
| panel_log.c | |
| The logger: the runlog task, which makes every card call of a run, a servo test and the fault log. A run is written to AUTO LOG FOLDER, a test to USER LOG FOLDER (SETUP > SD CARD; CARD_AUTO_LOGS and CARD_USER_LOGS by default, card_tree.h), each under its folder's next number (log_take.h). The control task's side, which numbers the runs and posts the rows, is in main.c. | |
| panel_main.h | |
| What main.c shares with the four files split from it. | |
| panel_perf.c | |
| The PSRAM probe at start-up, the frame times, and the lows of every stack and of the internal heap (panel_perf.h). | |
| panel_perf.h | |
| The console's measurements of the panel itself: PSRAM (pseudo-static RAM) speed at start-up, the frame times, and every task's stack and the internal heap at their lowest. | |
| panel_poll.c | |
| The poll of the far end, once a control pass: the bench page and the services while the IOmcu answers, its identity while it does not, the link-up and link-lost edges, the model and the log while nothing answers, and the snapshot the screen reads. | |
| panel_render.c | |
| The render side's services, once a frame on app_main: the programmer's model, the supply's levels, the servo test's lines, the rotary knob, the touch drain and the screens' commands on their way to the control task. | |
| panel_sense.c | |
| The current monitors' set-up on its way to the IOmcu: SETUP INTERFACES' INA228, bus and encoder rows and SETUP > SENSORS' INA3221 parts, published by the settings observer on app_main and taken by the control task; and the SENSE_MAP page's service there (sense_map_link.h), with what it tells the operator. | |
| panel_services.c | |
| The link modules' services, one page of the IOmcu each: the current monitors (SENSE and SERVO_SENSE), the phase tap (TONE), the programmer for KST and Chaservo servos (KST) and the programming ports (PROG). Each runs from the poll (panel_poll.c), on the control task. | |
| panel_settings.c | |
| The settings the control task follows, handed across from app_main. | |
| panel_supply.c | |
| The programmable supply, on the control task: the PD (USB Power Delivery) mini over the IOmcu's SUPPLY page, or the panel's model, its steps at the sample cadence, its run's rows for the log, and its page. | |
| panel_trial.c | |
| A new build's first start, kept once the panel works as a whole: see panel_trial.h and shared/fwupdate/fw_trial.h. | |
| panel_trial.h | |
| A new build's first start, kept once the panel works as a whole. | |
| panel_update.c | |
| The updates: the IOmcu's over CAN (Controller Area Network) from the image this panel carries, the panel's own from WI-FI or from GitHub, and the IOmcu update's screen on the render side. cu_service() runs on the control task; the rest runs on app_main. | |
| selftest.h | |