First
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user