GithubHelp home page GithubHelp logo

thisboyiscrazy / turbo-resin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nviennot/turbo-resin

0.0 1.0 0.0 1.07 MB

Open-source firmware for resin printers

License: GNU General Public License v3.0

Python 2.14% C 15.72% Rust 76.78% Makefile 1.46% GDB 0.39% Kaitai Struct 3.37% Dockerfile 0.14%

turbo-resin's Introduction

Discord

Turbo Resin: open-source firmware for resin printers

Turbo Resin

Turbo Resin is an open-source firmware for SLA resin printers.

This is the implementation of a firmware based on the Reverse engineering of the Anycubic Photon Mono 4K

Roadmap

Drivers:

  • Read the touch screen
  • Display on the touch screen
  • Use the LVGL UI library
  • Control the stepper motor
  • Read/write to external Flash
  • Read/write to external EEPROM
  • Drive the LCD panel
  • Read from USB flash drive
  • Control the UV light
  • Z=0 detection
  • Being able to flash firmware via USB

Printing features:

  • Better Z-Axis motion control for faster prints with fast deceleration
  • Z=0 calibration
  • Read .pwma files from USB flash drive
  • Support multiple exposure (like RERF but configurable)
  • Print algorithm
  • Support more file formats to support various slicers
  • Add support for other printers
  • Build-plate force feedback for speed optimization. Following the work of Jan Mrázek
  • Over-expose structural region of the print to add strength while letting edges be normally exposed

Support for other printers

The first set of printers we'd like to support are the AnyCubic, Phrozen, Elegoo, and Creality printers.

Sponsors

Thank you!

Flashing the firmware

As of now, there's no official distribution to flash the firmware via a USB stick. You'll need:

  • A probe like JLink or ST-Link V2 ($11)
  • A 3mm hex screwdriver

Compiling the firmware

Prerequisites

Install the Rust toolchain. Following instructions of the installation section of the Rust Embedded Book, run the following:

# prereqs (arch)
sudo pacman -Sy base-devel arm-none-eabi-gcc arm-none-eabi-newlib clang openocd python
# prereqs (ubuntu)
sudo apt install -y build-essential curl python3 gcc-arm-none-eabi gdb-multiarch libclang-dev openocd
# prereqs (macOS)
brew install armmbed/formulae/arm-none-eabi-gcc openocd

# install rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env

# rust prereqs (must be ran inside repo)
rustup component add llvm-tools-preview
cargo install cargo-binutils

You are ready for building and flashing the firmware.

Configure the build

If you are using vscode, replace saturn with the printer of your choice in ./.vscode/settings.json

Configure the PRINTER, PROBE, and FLASH_WITH variables in the Makefile.

  • PRINTER can be mono4k or saturn.
  • PROBE can be jlink or stlink.
  • FLASH_WITH can be jlink+gdb, or openocd+gdb, or probe-run. Pick the one that works for you.

Connect to the printer

Connect your JLink or ST-Link V2 probe to the SWD header on the printer board. Pinout is shown in Reverse engineering the Anycubic Photon Mono 4K Part1 You can also come and ask for guidance on our Discord channel.

make targets

  • make start_probe: Starts the JLink or OpenOCD gdb server. You must run this in a separate terminal when using FLASH_WITH=jlink+gdb or FLASH_WITH=openocd+gdb prior to other commands.
  • make start_probe_rtt: Show the logging statement emitted from the board.
  • make run: Compile the code and flash the board
  • make check: Check that the code is valid. (runs cargo check under the cover).
  • make build: Builds the firmware to be flashed
  • make flash: Flashes the compiled code to the board
  • make attach: Provides a GDB console to the running code on board. Execute c and ctrl+c to break into a running target.
  • make attach_bare: Provides a GDB console to the running code on board, but doesn't assume that the code running on the board is the one that was just compiled
  • make restore_rom: Flashes back the original firmware. But you must dump the original firmware first. The instructions are shown when running this command.

License

Turbo Resin is licensed under the GPLv3, except for the USB Host stack, which is license under Apache 2.0 or MIT at your choice.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.