Skip to content

maxhbr/zephyr-rail

Repository files navigation

A macro stacking rail

1 2

Firmware

The firmware is written with zephyr. The code is in ./app.

The environment can be bootstrapped via nix run .#init and west is either available via nix run .#west -- ... or in nix develop.

It runs on STM32H7B3I-DK (in Zephyr: stm32h7b3i_dk). Bluetooth is added with the dev board X-NUCLEO-IDB05AI.

State and State Machine

  • The rail knows its absolute position and the current target position.
  • It knows how many images to take per stack.
  • It knows the absolute positions of Start and End of the stack.

It internally has a state machine: State Machine

Version of Zephyr

The version of zephyr is pinned via the ./flake.nix and the script ./scripts/init-and-chores.sh updates the app/west.yml from that.

UI

It has a GUI with LVGL.

PWA

connected via https://maxhbr.github.io/zephyr-rail/, which hosts the static HTML part of the PWA.

Hardware

Some of the shelf Mechanical Parts used in this project:

3D Printed

Some adapters and parts are 3D printent. See ./3d-print.scad.

1 2

Electronics

Electronics

  • Control of the Stepper Motor
  • Control of the Camera via Bluetooth
  • Frontend via Bluetooth PWA
  • 24v -> 5v conversation to power the MCU
  • Ideas:
    • IMU to wait for the rail to settle
    • piezo beeper
    • limit switches and positioning

A high level sketch:

sketch.svg

Software

For stacking and other things the project https://github.com/maxhbr/myphoto is used.

About

Macro stacking with an mcu. Based on subfolder from https://github.com/maxhbr/my-zephyr-workspace

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Generated from maxhbr/zephyr-template