• Stars
    star
    210
  • Rank 186,879 (Top 4 %)
  • Language
    Rust
  • License
    GNU General Publi...
  • Created over 2 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Open-source firmware for resin printers

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:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
rustup component add llvm-tools-preview
cargo install cargo-binutils
# Ubuntu/Debian
sudo apt install -y gcc-arm-none-eabi gdb-multiarch libclang-dev openocd
# macOS
brew install armmbed/formulae/arm-none-eabi-gcc openocd

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.

More Repositories

1

core-to-core-latency

Measures the latency between CPU cores
Jupyter Notebook
1,078
star
2

playdrone

Google Play Crawler
Ruby
420
star
3

stm32-emulator

Rust
358
star
4

jd-core-java

Java Library for JD-Core, a java decompiler
Java
257
star
5

irb-config

Enhances your Ruby REPL. Supports rails, mongoid, rspec and cucumber
Ruby
139
star
6

android-checkin

Pretends to be a phone to get a legit android_id
Java
133
star
7

rspec-console

Run RSpec tests in your rails console
Ruby
101
star
8

reversing-mono4k

Reverse engineering of the Anycubic Mono 4K
BASIC
79
star
9

easy-finance

Personal finance accounting tool
JavaScript
79
star
10

vim-config

The Vim config I use
Vim Script
46
star
11

tmux-config

The tmux config I use
Makefile
45
star
12

mongoid_lazy_migration

Lazy Migrate your MongoDB documents to avoid downtime
Ruby
34
star
13

playdrone-kitchen

Kitchen for the Google Play Crawler cluster
Ruby
27
star
14

nginx-tcp-keepalive

Nginx TCP Keepalive configuration module
C
21
star
15

zsh-vim-plugin

Shell
20
star
16

tinyusb-sys-rs

Rust wrapper for the TinyUSB library
Rust
17
star
17

objc-tracer

Objective-C method call tracer
C
15
star
18

libscribe

Scribe user-space library
C
12
star
19

py-scribe

Scribe python bindings and Scribe userspace tools
Python
9
star
20

run_as_exe

C
8
star
21

tests-scribe

Test suite for Scribe
C
6
star
22

youtube-audio

Web service to stream the audio out of a youtube video in real time
Ruby
4
star
23

symbol_decoration

Support for Ruby symbol decorations such as where(:field.in => [1,2,3])
Ruby
3
star
24

stm32-gpio-monitor

Monitor the GPIO of a STM32 live
Rust
3
star
25

cflat

C Flat compiler
OCaml
3
star
26

cucumber-console

Run Cucumber tests in your console
Ruby
3
star
27

rails-env-switcher

Switch from a Rails environment to another
Ruby
3
star
28

thesis

My PhD thesis
TeX
2
star
29

abricot

Fast cloud command dispatcher tool with Redis pub/sub
Ruby
2
star
30

libssh

fork of libssh (bug fixes)
C
2
star
31

candy-crusher

Bot for candy crush
Ruby
2
star
32

edeliver-build-docker

docker image for edeliver
2
star
33

velvetpulse

My blog
CSS
1
star
34

mongoid-colors

Colorize your Mongoid traces
Ruby
1
star
35

synapse-benchmark

Ruby
1
star