Files
SandTable-firmware/README.md
T
Your Name 335f2cc9fb First
2026-08-08 15:51:33 +03:00

50 lines
1.1 KiB
Markdown

# Zephyr Sand Table firmware
This repository contains the implementation of Sand Table firmware for the Zephyr RTOS.
The firmware controls 2x stepper motors and RGBW LED strip.
### ACK
Every command returns either an ACK or NACK.
Homing, Step, and Polar commands return separate ACK when the arms are done moving.
### Command Structure
```c
struct command_message_t {
uint8_t prefix; // 0x69
uint8_t length; // Length of the data
uint8_t id; // 0x00
uint8_t command;
uint8_t crc;
uint8_t data[160];
} __attribute__((packed));
```
### Commands
```c
typedef enum {
COMMAND_ACK,
COMMAND_NACK,
COMMAND_LED,
COMMAND_HOME,
COMMAND_DISABLE_MOTORS,
COMMAND_MOTOR_STEP,
COMMAND_MOTOR_SPEED,
COMMAND_POLAR,
COMMAND_GET_POLAR,
COMMAND_SET_OFFSET,
COMMAND_RESET_OFFSET,
} commands_e;
```
### Python test scripts (AI generated)
* `home.py` = sends homing command
* `led.py` = sends led command which sends led fade track
* `position.py` = sends position command and returns the current position
* `reset_offset.py` = sends reset_offset command
* `track.py {track name}` = reads a thetarho file and sends polar coordinates line by line