-
Notifications
You must be signed in to change notification settings - Fork 980
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
3D printer board support #347
Comments
Currently there are the following boards that would need an additional variant:
There is also the "PrntrBoard" by @ghent360, but that is using the STM32F446 NUCLEO-64 as a platform and is already supported.
@Phr3d13 @xC0000005 Do you have some of the boards available? I could write the board variants if you could assist in testing them. |
I would like to add my board, "Armed", to that list. It's based on
STM32F407 and running Marlin 2.0.x with the STM32 core.
Karl
Den tor 4 okt. 2018 16:54Nils Hasenbanck <[email protected]> skrev:
… Currently there are the following boards that would need an additional
variant:
- Chitu3D V3.9
- Malyan M200 (There are various motherboard versions I think)
- GTM32_PRO_VB
- GTM32_MINI
- STEVAL-3DP001V1
There is also the "PrntrBoard" by @ghent360 <https://github.com/ghent360>,
but that is using the STM32F446 NUCLEO-64 as a platform and is already
supported.
@fpistm <https://github.com/fpistm> Do you might have access to the
STEVAL-3DP001V1 board?
@Phr3d13 <https://github.com/Phr3d13> @xC0000005
<https://github.com/xC0000005> Do you have some of the boards available?
I could write the board variants if you could assist in testing them.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#347 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AQ8NJAWN155rLnHo1I6vi86gXBiH9tn-ks5uhiFBgaJpZM4XCjuQ>
.
|
Great. But I guess you are doing the board variant yourself? You can ping me if you have any questions / problems. |
Are we doing the right thing? If I compile Marlin for AVR, I don't have to choose every single RAMPS offspring board ever created in the Arduino IDE. Somehow they manage not to require a board variant for the plethora of AVR based printer controllers. What are we trying to achieve that is different in this case, so creating a board configuration would actually be beneficial? Wouldn't it be simpler if we create "generic" variants that correspond to popular CPU packages and number the pins after the actual pin numbers on the chip. |
I guess every board maps their PWM, I2C and SPI pins etc. differently,
probably requiring variants for every board.
Karl
Den tor 4 okt. 2018 19:04ghent360 <[email protected]> skrev:
… Are we doing the right thing?
If I compile Marlin for AVR, I don't have to choose every single RAMPS
offspring board ever created in the Arduino IDE. Somehow they manage not to
require a board variant for the plethora of AVR based printer controllers.
What are we trying to achieve that is different in this case, so creating
a board configuration would actually be beneficial?
Wouldn't it be simpler if we create "generic" variants that correspond to
popular CPU packages and number the pins after the actual pin numbers on
the chip.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#347 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AQ8NJA9-N08EZkPowlBJXqaQBpWQXvnCks5uhj-xgaJpZM4XCjuQ>
.
|
Yes, we are indeed doing the right thing. AVR based boards most often pin compatible with their big Arduino cousin and that's why you often get compability out of the box. As soon as you deviant from that (like the Rambo series of boards) you need also another board definition. STM32 chips and boards are not that uniform. For example: I use a similar chip from the STM32F765 family then another custom board. But I can't use that variant definition, since even when we use the same CPU number, we use different versions of it (I use the VI with 2 MB Flash). The other board also uses different PWM outputs and we have to use for that reason different timers (which could also lead to the need to user different SPI / I2C peripherals). And since we have different boards out in the wild, which use different peripherals etc, we have to support them somehow (Since we can't change their silicon). |
I'm working on two boards built around the STM32F446VET6: RUMBA32 & PicoPrint. I have everything running decently with STM32GENERIC + Marlin 2.0.x + STM32F4 HAL, but I'm looking to swap them over to this core so I can move them towards the more unified STM32 Marlin HAL you've been working on @hasenbanck. I've only started testing out this core yesterday, so not sure if I'll run into trouble yet - but in any case, I think a folder for 3D printer boards is a good idea, as it's sure to be a list that will grow fairly quickly. |
Seconding this with a real example. The M200 boards (STM32F107 and STM32F070) require different loading offsets than a bluepill because they have a proprietary bootloader, and require some different startup code (The STM32F103 startup code doesn’t load SP by default, because the processor would, but the bootloader doesn’t do it, so the startup code needs to). V1 has a pullup transistor on PB9 that’s required for USB. Sure we could use the generic variants, but that would involve changing their behaviors. Or we could add specific variants and let the bluepills continue to use PB9 for whatever they do while the M200s use it to enable USB, and so on. Variants are good, though they do come with some baggage.
… On Oct 4, 2018, at 1:42 PM, Nils Hasenbanck ***@***.***> wrote:
Yes, we are indeed doing the right thing. AVR based boards most often pin compatible with their big Arduino cousin and that's why you often get compability out of the box. As soon as you deviant from that (like the Rambo series of boards) you need also another board definition.
STM32 chips and boards are not that uniform. For example: I use a similar chip from the STM32F765 family then another custom board. But I can't use that variant definition, since even when we use the same CPU number, we use different versions of it (I use the VI with 2 MB Flash). The other board also uses different PWM outputs and we have to use for that reason different timers (which could also lead to the need to user different SPI / I2C peripherals).
And since we have different boards out in the wild, which use different peripherals etc, we have to support them somehow (Since we can't change their silicon).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <#347 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AeppcaL9-o4cL9P5f2-IPE9qnMti38mCks5uhkiSgaJpZM4XCjuQ>.
|
I believe I own nearly every revision of the M200 V1 and V2 boardsets, and I’d not only be happy to test, I can assist in the varianting when I’m at home instead of traveling.
… On Oct 4, 2018, at 10:54 AM, Nils Hasenbanck ***@***.***> wrote:
Currently there are the following boards that would need an additional variant:
Chitu3D V3.9
Malyan M200 (There are various motherboard versions I think)
GTM32_PRO_VB
GTM32_MINI
STEVAL-3DP001V1
There is also the "PrntrBoard" by @ghent360 <https://github.com/ghent360>, but that is using the STM32F446 NUCLEO-64 as a platform and is already supported.
@fpistm <https://github.com/fpistm> Do you might have access to the STEVAL-3DP001V1 board?
@Phr3d13 <https://github.com/Phr3d13> @xC0000005 <https://github.com/xC0000005> Do you have some of the boards available? I could write the board variants if you could assist in testing them.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <#347 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AeppcWkaKsr_5P2e59x5Lky3mAw-II4Bks5uhiFDgaJpZM4XCjuQ>.
|
@xC0000005 Great to hear. I will wait until you returned and looked into the matter yourself. Since you already wrote the variants for the STM32generic core, it should be faster when you do it yourself (my vacation is soon over, so my time budget will decrease fast soon). |
I have both the gtm32 variants. I'd be happy to help whenever you need me. |
@Phr3d13 Did you already use those boards with the old HAL with Marlin 2.0? I kinda need some documentation about the pin / peripheral configuration to start with. Do you happen to know if there is some documentation about these topics? |
Board support was only partially done. Geeetech has a lot of good info on the boards, the only down side is that they use their own firmware on the boards (Smartto) and not Marlin. After work, I'll comment with specific links. |
Smartto - This is their firmware for both of their stm32 boards. |
I think those files and the information in the pin definition in Marlin
should be enough. I will look tomorrow into it!
|
Sweet! No rush. Thanks for allowing my request. ;) |
I guess it should be fine ;)
I have to check |
3D printing is becoming popular these days. One of the most fundamental things required to make a DIY 3d printer is its printing skills and you can check the further tips here https://goo.gl/4JXq3G I also followed and now I have my printer with me. |
@hasenbanck Im have STEVAL-3DP001V1 so i can help and be tester. What i need to do? |
@ffnull I currently have little time, since I'm pretty busy with my side project RemRam and Heteromycin. So currently your best options would be: To write the variant yourself. The board is pretty well documented, so you could look into STs fork of Marlin 1.10 and could spot their pins definitions / mappings file The way to create a variant is also pretty well documented in the wiki. You kinda need to have a basic understanding how the STM32 MCU in general has to be configured using the STM32Cube MX tool though. It would require you to learn lot of new stuff potentially, but could be your fasted way to get your board supported. The Marlin part later should be rather easy, since you have the old Marlin pin definition already and "only" need to port it to Marlin 2.0 using the variant definition you created. We currently have a STM32 HAL for F0, F1, F4 and F7 MCUs, so there shouldn't be any hard problems on your way. Only real missing feature as of right now is the CDC feature (Serial to USB), but that is beeing worked on as of right now. |
@hasenbanck when i download latest brunch of bugfix 2.0 and opened it in platformio i cant compile env:STM32F4 just for example. to many errors with eeprom and timers. what i need to do to compile it and make my board work based on worked example? |
I’m currently building in Arduino using the ST official core. Download the Arduino IDE, follow the steps to add it to the board manager. I edit in PIO/VSCode and build in Arduino.
… On Oct 19, 2018, at 10:16 AM, ffnull ***@***.***> wrote:
@hasenbanck <https://github.com/hasenbanck> when i download latest brunch of bugfix 2.0 and opened it in platformio i cant compile env:STM32F4 just for example. to many errors with eeprom and timers. what i need to do to compile it and make my board work based on worked example?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <#347 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AeppcZZQ7rbhlj1WGHU23hderKy7WqpPks5umgj5gaJpZM4XCjuQ>.
|
@xC0000005 can you give short step by step? |
Follow the getting started steps here:
https://github.com/stm32duino/Arduino_Core_STM32 <https://github.com/stm32duino/Arduino_Core_STM32>
I’d set your board to a generic F4 until you can build a variant for it. You’ll need to be comfortable debugging it if something goes wrong.
… On Oct 19, 2018, at 9:53 AM, ffnull ***@***.***> wrote:
@hasenbanck <https://github.com/hasenbanck> Im have STEVAL-3DP001V1 so i can help and be tester. What i need to do?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <#347 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AeppcTGqu6rqwXQiGQIwcOZYmKaT-pnVks5umgORgaJpZM4XCjuQ>.
|
@xC0000005 in platformio im set generic F4 but it whant compile. Will try your method in arduino IDE |
@xC0000005 still cannot compile generic f4 in arduino too. many errors on serial and eeprom |
@xC0000005 Thank You! |
Thanks @ffnull and @xC0000005 |
Sorry. But no
чт, 28 февр. 2019 г., 12:07 Frederic Pillon <[email protected]>:
… Thanks @ffnull <https://github.com/ffnull> and @xC0000005
<https://github.com/xC0000005>
So your variant is for this board:
https://www.st.com/en/evaluation-tools/steval-3dp001v1.html ?
Do you have the updated board.txt?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#347 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AX0zkiP3g2Ocgyv2XHX0tYI1QmEOXwDMks5vR6pWgaJpZM4XCjuQ>
.
|
Hellow ! 1 : UART RX Buffer Corruption in 2 : PWM will make gpio float or out of control 3 : ADC value float ask for help !!! |
Original version from @ffnull (See stm32duino#347). Signed-off-by: Frederic.Pillon <[email protected]>
@ffnull, I've made the PR based on your work. I've made some clean and fixes. |
@ShenRen |
Ok ! I will open a new issues and upload my code this weekend. |
I've solved all the problems, by downloading the release program . |
Original version from @ffnull (See stm32duino#347). Signed-off-by: Frederic.Pillon <[email protected]>
Original version from @ffnull (See stm32duino#347). Signed-off-by: Frederic.Pillon <[email protected]>
Original version from @ffnull (See stm32duino#347). Signed-off-by: Frederic.Pillon <[email protected]>
Original version from @ffnull (See stm32duino#347). Signed-off-by: Frederic.Pillon <[email protected]>
Original version from @ffnull (See stm32duino#347). Signed-off-by: Frederic.Pillon <[email protected]>
Original version from @ffnull (See stm32duino#347). Signed-off-by: Frederic.Pillon <[email protected]>
@ffnull, @hasenbanck, |
Original version from @ffnull (See stm32duino#347). Signed-off-by: Frederic.Pillon <[email protected]>
Original version from @ffnull (See #347). Signed-off-by: Frederic.Pillon <[email protected]>
Can I suggest that you help port Marlin 2.0 firmware to run the new STM32MP1 MPU series? I am only an end-user / technology enthusiast myself and I do not actually know if anyone is working on a 3D-printer controller board based on the new STM32MP1 MPU series or not, however, I read that STMicroelectronics claims STM32MP1 architecture enables developers to use the same software as STM32 MCU series so porting Marlin 2.0 firmware to STM32MP1 MPU series should be possible in theory as it already supports STM32, and theoretically, with the STM32MP1 MPU series you could run both Marlin and OctoPrint or similar Linux distribution on the same board. For technical specification summery checkout: STM32MP157A-DK1 and STM32MP157C-DK2 Discovery kits are $99 with LCD or $69 without First read about this MCU/MPU in the release news about PanGu board from I2Som |
As there is more and more support request for new variant, all are grouped in a single issue to ease tracking: #722. |
Since Marlin 2.0 will support many different MCU architectures beside the AVR, STM32 MCU support is also in the work. There is currently planning ongoing to have one HAL for all STM32 boards.
The first such board was REMRAM V1, but there are already other board on the market, which will need support for Marlin for this Arduino core (since this core is the only core, that supports all STM32 targets).
This issue should simply act as a preparation, for future board definition request that will come (and of which I will most likely write quite some).
I think it would be best if remove the "REMRAM" top-level category and add a general "3rd party boards" or "3D printer board" category, so that we can group these board better together.
For reference:
MarlinFirmware/Marlin#11750 and MarlinFirmware/Marlin#7076
The text was updated successfully, but these errors were encountered: