amp-hal-st
Marlin
amp-hal-st | Marlin | |
---|---|---|
7 | 755 | |
46 | 15,937 | |
- | 0.6% | |
8.8 | 9.8 | |
6 days ago | 1 day ago | |
C | C++ | |
MIT License | GNU General Public License v3.0 only |
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.
amp-hal-st
-
Looking for well written, modern C++ (17/20) example projects for microcontrollers
I can recommend having a look at: - https://github.com/philips-software/amp-embedded-infra-lib (stl-like replacement and utility library including a HAL definition - https://github.com/philips-software/amp-hal-st (HAL implementation for STs based on EMiL HAL) - https://github.com/philips-software/amp-preview (a GUI library for STs based on above mentioned repo's)
-
Projects to Join
We want to add G0 and G4 support to https://github.com/philips-software/amp-hal-st you are more than welcome to try it out. We don't have a direct use for them (that is, you won't be working for free for Philips), but we see a lot of opportunities for these chip families to be used by other projects. The new C series night also be interesting for hobbyists (which is one of the reasons we open source this library).
- What is on your CI?
-
Anybody else slow and dumb with this embedded and coding stuff?? Hours of trying to set the correct bits in the correct order with little success!
Simple solution: use a global catch-all interrupt handler that asserts when the "to handle" interrupt had no handler assigned :-) like this one https://github.com/philips-software/amp-hal-st/blob/main/hal_st/cortex/InterruptCortex.cpp
-
Implementing callbacks using abstract classes in C++
If you want examples on how these HAL interfaces are implemented for a range of ST devices then you can take a look at https://github.com/philips-software/amp-hal-st
- Looking for modern CMake tutorials or good open spurce examples
-
Writing STM32 Startup script in C++
Using amp-hal-st (https://github.com/philips-software/amp-hal-st) as an example. The easiest way to do it is to call HAL_NVIC_SystemReset();
Marlin
-
Why Prusa is floundering, and how you can avoid their fate
There is _a lot_ wrong with Marlin. It is a complex codebase, full with ancient artefacts, litterred with preprocessor ifdefs every 2-3 lines of code, dynamic includes in the middle of CPP files, etc[1]. It's about as unreadable as C++ code gets--well, I guess it's not template metaprogramming.
Klipper by contrast is a breeze to read through[2].
I am very grateful for Marlin, for all of reprap, and everyone who has contributed to it. But saying there is nothing wrong with it is straight up misguided.
[1]: https://github.com/MarlinFirmware/Marlin/blob/bugfix-2.1.x/M...
[2]: https://github.com/Klipper3d/klipper/blob/master/src/lcd_hd4...
-
E steps way off.
I think you are mistaken. I can't speak for implementations preceding the Ender 3 V2, so what you're saying may have been true at some point for other machines. However, here you can see Marlin developers confirm that there is an EEPROM on the stock E2V2 board using diagrams from Creality and photographic confirmation. Here is the datasheet for the EEPROM. Here is a thread discussing this Marlin release, and also the then-recent release of official Creality firmware which resolved the same issue. Since the stock firmware is based on Marlin, and at the time Marlin did not support this type of EEPROM, the EEPROM was not usable at launch. Any mainstream firmware (official or third-party) from the last three years will be using the onboard EEPROM unless the user intentionally specified otherwise.
-
FYI: Marlin 2.1.2.1 on Sapphire plus v2
pull latest Marlin from github: https://github.com/MarlinFirmware/Marlin
-
Ender 3 Pro + Octoprint = Thermal Malfunction, system stopped! Heater_ID: E0
Also, checked the following discussion but seems like I need to update the firmware to be able to comment that like right? Temperature variance monitor tweaks by zeleps · Pull Request #23571 · MarlinFirmware/Marlin · GitHub
- Marlin DACAI Screen Bug
-
Anycubic Kobra Marlin 2.1+ based custom firmware
i spent some time and successfully rebased Kobra 2.8.2 OG firmware from an unknown Marlin ~2.0.8 frankenstein to a clean latest (as of now) release (not bugfix) 2.1.x -- v2.1.2.1 + 1 commit
-
Digraphs and Trigraphs
As an example, check the macropocalypse in Marlin - but the actual trigger for me to start was Reprap firmware doing a floating point divide in interrupt context while targeting AVR8 core…
-
Need advice on intermittent thermal runaway (Ender 3 V2)
Any change of thermistor or to a PT100/PT1000 will require recompiling the firmware, because every type has different characteristics. Marlin uses an internal table to calculate the temperature for whatever reading it gets from the CPU's analogue-to-digital converter. It has many tables for different thermistors, but only one is ever incorporated at compile time. So you have to specify which type you're using. You can see the commonly-used types in the list in Marlin's Configuration.h file, in the section headed // @section temperature. The tables themselves are in Marlin/src/module/thermistor.
- Marlin ramps1.4
-
Has anyone actually edited Marlin source code and added a new feature?
FWIW It IS open source but the GNU General Public License v3.0 rules apply. https://github.com/MarlinFirmware/Marlin/blob/bugfix-2.1.x/LICENSE
What are some alternatives?
amp-devcontainer - amp-devcontainer is a fully loaded devcontainer useable for, embedded, C++ or Rust development
MKS-TinyBee - MKS TinyBee is a mainboard for 3d printing, based on ESP32 module
compile-time-init-build - C++ library for composing modular firmware at compile-time.
SKR-2
cppreference-doc - C++ standard library reference
klipper - Klipper is a 3d-printer firmware
cmake-project-skeleton - Reusable project skeleton for embedded C & C++ projects using CMake.
Marlin-2.0.X-MKS-Robin-Nano - Marlin 2.0.X for the MKS Robin Nano 1.1/1.2
stm32-cube-cmake-vscode - STM32, VSCode and CMake detailed tutorial
BIGTREETECH-SKR-mini-E3 - BIGTREETECH SKR-mini-E3 motherboard is a ultra-quiet, low-power, high-quality 3D printing machine control board. It is launched by the 3D printing team of Shenzhen BIGTREE technology co., LTD. This board is specially tailored for Ender 3 printer, perfectly replacing the original Ender3 printer motherboard.
cortex-m3-rtos - ARM Cortex-M3 Real-Time Operating System for educational purpose.
Ender-3 - The Creality3D Ender-3, a fully Open Source 3D printer perfect for new users on a budget.