turbo-resin
gdbstub
turbo-resin | gdbstub | |
---|---|---|
13 | 8 | |
193 | 276 | |
- | - | |
0.0 | 6.1 | |
over 1 year ago | 5 months ago | |
Rust | Rust | |
GNU General Public License v3.0 only | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
turbo-resin
-
Asynchronous Rust on Cortex-M Microcontrollers
Async Rust does definitely work for non-toy use cases. As a data point, we use Embassy for all production firmware at my startup (https://akiles.app/en), using async tasks for everything: Bluetooth, TCP/IP networking, motor control, user interface (LEDs, keypad), a key-value database in flash, stats collection... Async helps with battery life too since it allows putting the core to sleep when no task has work to do, it allows us to build devices with 1-2 years of battery life.
There's other companies using Embassy in production. Sadly firmwares are usually not open source. There's a few non-toy open-source projects using Embassy though:
- https://github.com/nviennot/turbo-resin
-
ISO A Mobo..
I know this exists, https://github.com/nviennot/turbo-resin maybe they already have something documented?
-
Best ~9” screen printer that isn’t locked to Chitubox?
There has been some steady (but slow) progress on an open source firmware for a few popular printers, with one of the goals being to allow multiple file formats. I believe they're still targeting the Mono 4k and Saturn for their first release, but I haven't checked in on the project for awhile.
-
A fast STM32 embedded system emulator implemented in Rust
Yes!! Here's my Rust 3d printer software: https://github.com/nviennot/turbo-resin
-
How SoL am I? Can it be fixed?
There's a nice Photon Mono 4k reverse engineering project by Nicolas Viennot on GitHub where he fixes the crappy touch sensing in the firmware. The goal is to replace the firmware on a variety of chitu-based resin printers with much better open source firmware.
-
Emulating the original Elegoo Saturn firmware, unmodified
Backstory: I'm writing TurboResin, an open-source firmware for resin 3d printers. We want to support many printers, and one of the difficulty is to understand the electronic board layout and protocols of each printer.
-
What is the ender 3 of the resin gang?
It's coming https://github.com/nviennot/turbo-resin
-
Part9 of the Mono 4K reverse engineering: Driving the LCD Panel, displaying a print layer from USB
This is the last part of the reverse engineering series. At this point we are confident that we can finish the firmware to do a print. The firmware repository is here: https://github.com/nviennot/turbo-resin/
-
New to 3D printing had a few questions!
There is a project to produce an open source firmware for resin printers TurboResin - it's at a very early stage (not able to actually print yet, but making progress) In time, it should be able to do something similar to what the RERF does and use different exposure times within the same print to strengthen interior parts while leaving surfaces less exposed for maximum detail, which would be very cool!
-
Heated resin experiment (part 3)
That's it in a nutshell. I think the pump idea would work but resin is messy so changing resins would be a pain and you would have to clean the lines. Although if you had control of the printer which this project looks well on it's way to accomplishing: https://github.com/nviennot/turbo-resin then you could use the build plate to mix the resin which would simplify things a lot.
gdbstub
-
A fast STM32 embedded system emulator implemented in Rust
now integrate gdbstub to support debugging code inside the emulator :)
-
Noctane: a highly WIP original PlayStation emulator
Shameless plug, but have you considered integrating gdbstub rather than rolling your own debugger? I know a couple folks out there have successfully integrated it into their PS1 emulators with great success.
-
Things I hate about Rust, redux
I've worked really hard to keep gdbstub panic free in its minimal configuration, going so far as to write some informal scripts that parse rustc's asm output to scan for the presence of panicking code paths.
-
gdbstub 0.6: An ergonomic, #![no_std] implementation of the GDB Remote Serial Protocol in Rust - now with async support!
crates.io | docs | repo
-
Announcing Loadstone, a secure bare-metal Rust bootloader
As a totally shameless plug, I'm the maintainer of gdbstub, a bare-metal, no_std, no_alloc, and size-optimized implementation of the GDB Remote Serial Protocol. One of the major changes slated for the upcoming release 0.6 is support for a new state-machine based API, which makes it possible to drive gdbstub directly via bare metal interrupt handlers (i.e: send/recv data over UART, handling breakpoints via the undefined instruction trap interrupt, etc...).
-
What's everyone working on this week (23/2021)?
Continue working on a new API in gdbstub that'll make it easier to use directly from an interrupt handler when debugging code in a no_std, bare-metal OS environment.
-
Designing a new architecture for Rspotify based on trait inheritance, need opinions
I ran into almost this exact same problem while working on gdbstub, whereby I an API that allowed users to mix/match protocol features however they wanted, while also preventing users from accidentally implementing mutually-exclusive features. Moreover, I wanted to have a "zero cost" way to enable/disable API features without relying on cargo features. The solution I came up with is something I've been calling "Inlineable Dyn Extension Traits", or IDETs.
-
Static check optimization question
For a concrete example of how smart the Rust compiler is, I have a small writeup + test-repo that benchmarks a technique I came up with while working on gdbstub that [ab]uses the compiler's devirtualization and inlining optimizations to create runtime feature flags that are entirely compiled out if hard-coded to false at runtime.
What are some alternatives?
embassy - Modern embedded framework, using Rust and async.
emuiibo - Virtual amiibo (amiibo emulation) system for Nintendo Switch
reversing-mono4k - Reverse engineering of the Anycubic Mono 4K
artillery - Fire-forged cluster management & Distributed data protocol
stm32-emulator
kani - Kani Rust Verifier
UVtools - MSLA/DLP, file analysis, calibration, repair, conversion and manipulation
synth - The Declarative Data Generator
rustig - A tool to detect code paths leading to Rust's panic handler
retina - High-level RTSP multimedia streaming library, in Rust
inlinable-dyn-extension-traits - An exploration into the various ways optional trait methods can be implemented in Rust.
tiny-tokio-actor - A simple tiny actor library on top of Tokio