Welcome! Log In Create A New Profile

Advanced

newbee to platformio, need initial startup to configure for board only in imports file.

Posted by WOWElectronics 
Greetings all;

linux only house here, nearly all debian bullseye (this machine) or a bunch of bpi5's running the arm64 version of testing known as Armbion.

I've not seen platformio until yesterday so I'm totally lost trying to build Marlin-2.1.3 for an MKS Robin Nano 3.1 board which amazon shipped me 3 of
when I ordered what I thought was V1.2 boards to replace a blown 1.2 board in a two trees SP-5 Plus printer.

I can only find this board in the "import" configuration collection, and have copied those two configs to where the README.md suggests I put them.
Then I find the board in the boards listing which takes bout an hour since the search function doesn't work even when I narrow the search terms to "Robin Nano"
which ought to show all variations.

Finding the board, and clicking on inspect apparently does not use my edited file but the original. and this is the result of inspect:

PIO Core Call Error: "Processing mks_robin_nano_v3_1 (board: marlin_STM32F407VET6_CCM; platform: ststm32@~12.1; framework: arduino)\n--------------------------------------------------------------------------------\nVerbose mode can be enabled via `-v, --verbose` option\n\n\n\nIn file included from buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/MarlinConfigPre.h:39,\n from buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/MarlinConfig.h:28,\n from buildroot/share/PlatformIO/scripts/common-dependencies.h:29:\nbuildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/../../Configuration.h:23:2: error: #error \"Don't build with import-2.1.x configurations!\"\n 23 | #error \"Don't build with import-2.1.x configurations!\"\n | ^~~~~\nbuildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/../../Configuration.h:24:2: error: #error \"Use the 'bugfix...' or 'release...' configurations matching your Marlin version.\"\n 24 | #error \"Use the 'bugfix...' or 'release...' configurations matching your Marlin version.\"\n | ^~~~~\nIn file included from buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/MarlinConfig.h:34,\n from buildroot/share/PlatformIO/scripts/common-dependencies.h:29:\nbuildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/../pins/pins.h:888:6: error: #error \"Unknown MOTHERBOARD value set in Configuration.h.\"\n 888 | #error \"Unknown MOTHERBOARD value set in Configuration.h.\"\n | ^~~~~\nIn file included from buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/../pins/pins.h:926,\n from buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/MarlinConfig.h:34,\n from buildroot/share/PlatformIO/scripts/common-dependencies.h:29:\nbuildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/../pins/pins_postprocess.h:949:8: error: #error \"No E stepper plug left for Z2!\"\n 949 | #error \"No E stepper plug left for Z2!\"\n | ^~~~~\nError: Failed to parse Marlin features. See previous error messages.\n========================== [FAILED] Took 0.38 seconds ==========================\nEnvironment Status Duration\n------------------- -------- ------------\nmks_robin_nano_v3_1 FAILED 00:00:00.377\n==================== 1 failed, 0 succeeded in 00:00:00.377 ===================="

The main diff between the original V1.2 board and this V3.1 board seems to be that the V1.2 board two trees stole the E1 socket to drive Z2, whereas this V3.1 board, which came with TMC2209 drivers, has two motor sockets attached to the 3rd driver socket, apparently paralleling the 2 motors, And the 3.1 board has a usb key socket I won't use, and a wifi radio module I won't plug in since I cannot config it for my local ipv4 network, no biggie since I'll drive it with octoprint running on a bpi5 anyway.

So, what do I do next to eliminate the errors and get it to build marlin for this newer V3.1 board? Keeping in mind I'm brand new at this.

Thank you all.
Cheers, Gene
You need to start from the bugfix-2.1.x example config files. It's a real pain to have github default to import-2.1.x which are invalid.

It's been a couple of years since I did anything in the Linux world. Do you have access to VSCode? I really like to use the Auto Build Marlin extension within VSCode. Automates all the platformio stuff.
Sorry, no vscode allowed on premises. BG and I agreed to disagree during NT3.51;s heyday. There are at least 10 machines here, all running recent versions of debian or Armbian with special realtime kernels one of which I built for the rpi4b 2 years back.
but that is another long story not related to this.

I think I have the files referenced, but they are for the v1.2 board, and these that amazon sent me are V3.1's. there is a difference in the hardware as noted in my original post..There's quite some diffs in the pins pdf between the boards.
The supposedly correct pins files should come with the 3.1 versions. So the question should be, what is invalid about them?

Canned versions of the older marlin, installed on the new boards only drive the x motor, not the y, and the machine itself is a corexy.

Is this a completely lost cause? Or is that pragma just a red herring that could be bypassed somehow?

Thanks.
Re: newbee to platformio, need initial startup to configure for board only in imports file.
December 28, 2022 01:52AM
Your making your life so much harder than it has to be.

Yes MS is the devil incarnate

but vscode is just an editor + programming features and is cross platform.



You don't go looking for configs for this board.

you look for example configurations for your printer, and hope there is an example or your controller,and if not you adapt it to your board

You change #define MOTHERBOARD BOARD_MKS_ROBIN_NANO_V3_1
you update stepper drivers types if needed
and update serial ports used to those used by the new controller.

You upload and test, checking stepper motor move correct direction and fix if needed.

Edited 1 time(s). Last edit at 12/28/2022 01:53AM by Dust.
The first problem is you are starting from the wrong config files. The error message says "Don't build with import-2.1.x configurations!" which means you downloaded from the default import-2.1.x selection. Pull down the menu and select the version of Marlin you're using. I suggest bugfix-2.1.x. Here's a link to it.

Here's a link to Robin Nano V3 user manual. It says to set SERIAL_PORT to -1 to enable the USB interface.

If you don't use the Auto Build Marlin extension then you'll have to manually tell PlatformIO what environment to use to for the build. The pins.h file lists the following as valid. They are in the \ini\stm32f4.ini file.
mks_robin_nano_v3_1
mks_robin_nano_v3_1_usb_flash_drive
mks_robin_nano_v3_1_usb_flash_drive_msc
That link does not mention this card, it stops with 2.1, and these are 3.1's
And I am using the top choice in your list above. when the card is installed, the usb flash socket is blocked, its been added since version 1.2.

So where do I spec that file? by hilighting it in the boards menu?
I'm lost, after editing as instructed, inspect message says unknown motherboard. step by step please from platformio home in the browser, please.

Thank you.

Cheers Gene
Re: newbee to platformio, need initial startup to configure for board only in imports file.
December 28, 2022 07:31PM
Show what you have in your Configuration.h

In the #define MOTHERBOARD area
Here's the link to building Marlin via the platformio CLI.

You'll have to use the CLI. The auto_build option no longer exists.

I just used the Windows shell command platformio run -e mks_robin_nano_v3_1 to build a basic configuration.

Please post your configuration.h and configuration_adv.h files. For sure the #define MOTHERBOARD line is wrong.



How many Z-axis limit switches does the printer have? That'll affect how to configure things.

If you have two then each Z motor can be driven and homed independently. You'll use the Z1 and E1 motor connectors on the controller board for this.

If you have one then it's assumed that they'll always be in synch. You can either use the Z1 and Z2 motor connectors (one stepper driver driving two steppers) or the Z1 and E1 motor connectors. The advantage of using the Z1 and Z2 motor connectors is you don't need to populate the E1 stepper driver socket.
I just put copies of both on my web page at [geneslinuxbox.net]

"How many Z-axis limit switches does the printer have? That'll affect how to configure things."

one.

These new V3.1 boards have 2 headers from the 3rd driver socket to drive both z motors which are belt synchronized. The old V1.2 board used the E1 (5th) driver for the second z motor.

And it appears I have another problem that will require changing the install, armbian's version of dfu-util is 0.9, years too old to work with a modern usb-3 port on the bpi5's. But I just dl'd the nightly arm64 version of debian-arm, and it won't boot on a bpi5.
Its setup for grub booting. I just looked at raspios/buster as its running my biggest lathe, and dfu-util is not available there in any version.

Can you suggest a u-booting distro for arm64 that does have an uptodate dfu-util? We could kill "two birds with one stone" in that event. Otherwise we're stuck building an sd card image to update these printers.

Thank you.
Re: newbee to platformio, need initial startup to configure for board only in imports file.
December 29, 2022 09:58AM
You have

#define MOTHERBOARD BOARD_MKS_ROBIN_NANO_1_3_F4

Missing a very important V character


You need
#define MOTHERBOARD BOARD_MKS_ROBIN_NANO_V1_3_F4

But you say you have a V3.1

So it really should be
#define MOTHERBOARD BOARD_MKS_ROBIN_NANO_V3_1

Edited 1 time(s). Last edit at 12/29/2022 10:05AM by Dust.
Re: newbee to platformio, need initial startup to configure for board only in imports file.
December 29, 2022 10:24AM
But there are many other issues

#define Z2_DRIVER_TYPE TERN(SAPPHIRE_PLUS_TMC_UART,TMC2209,TMC2209_STANDALONE
needs a closing bracket

But using a TERN here doesn't work anyways

just set it manually

#define X_DRIVER_TYPE TMC2209
//TERN(SAPPHIRE_PLUS_TMC_UART,TMC2209,TMC2209_STANDALONE)
#define Y_DRIVER_TYPE TMC2209
//TERN(SAPPHIRE_PLUS_TMC_UART,TMC2209,TMC2209_STANDALONE)
#define Z_DRIVER_TYPE TMC2209
//TERN(SAPPHIRE_PLUS_TMC_UART,TMC2209.TMC2209_STANDALONE)
#define Z2_DRIVER_TYPE TMC2209
//TERN(SAPPHIRE_PLUS_TMC_UART,TMC2209,TMC2209_STANDALONE)
#define E0_DRIVER_TYPE TMC2209
//TERN(SAPPHIRE_PLUS_TMC_UART,TMC2209,TMC2209_STANDALONE)


This section needs removed is not needed with the new boards


#if ENABLED(SAPPHIRE_PLUS_TMC_UART)
#define X_SERIAL_TX_PIN                   PA9   // Wifi TX
#define X_SERIAL_RX_PIN                   PA9
#define Y_SERIAL_TX_PIN                   PA10  // Wifi RX
#define Y_SERIAL_RX_PIN                   PA10
#define Z_SERIAL_TX_PIN                   PC13  // WIFI IO0
#define Z_SERIAL_RX_PIN                   PC13
#define E0_SERIAL_TX_PIN                  PE5   // MAX31855 CS
#define E0_SERIAL_RX_PIN                  PE5
#define E1_SERIAL_TX_PIN                  PC7   // WIFI IO1
#define E1_SERIAL_RX_PIN                  PC7
#define TMC_BAUD_RATE                     19200 // Reduced to improve software serial reliability
#endif

Then there is the really big issue

#error "MKS Robin Nano V3 doesn't support FSMC-based TFT displays."
I've done as much of the above as I can find, but cannot get rid of the don't build with imported configs message and failure. But the imported configs is the omly place I can find this board.

Is there a different, good config for this board? If, what link do I follow to get it? the releases don't cover this new a board.
What I've got give this:
Open PlatformIO Home in your browser by this URL => [127.0.0.1]
PIO Home has been started. Press Ctrl+C to shutdown.
Error: Processing mks_robin_nano35 (platform: ststm32; board: genericSTM32F103RE; framework: arduino)
and that is the wrong board but the display is a tft35, w/o the knob and encoder.
So I ctrl+c it and start over with your -e command
Which gives this:
gene@coyote:~/src/Marlin-2.1.x$ platformio run -e mks_robin_nano_v3_1
Processing mks_robin_nano_v3_1 (board: marlin_STM32F407VET6_CCM; platform: ststm32@~12.1; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
In file included from buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/MarlinConfigPre.h:39,
from buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/MarlinConfig.h:28,
from buildroot/share/PlatformIO/scripts/common-dependencies.h:29:
buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/../../Configuration.h:23:2: error: #error "Don't build with import-2.1.x configurations!"
23 | #error "Don't build with import-2.1.x configurations!"
| ^~~~~
buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/../../Configuration.h:24:2: error: #error "Use the 'bugfix...' or 'release...' configurations matching your Marlin version."
24 | #error "Use the 'bugfix...' or 'release...' configurations matching your Marlin version."
| ^~~~~
In file included from buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/MarlinConfig.h:34,
from buildroot/share/PlatformIO/scripts/common-dependencies.h:29:
buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/../pins/pins.h:888:6: error: #error "Unknown MOTHERBOARD value set in Configuration.h."
888 | #error "Unknown MOTHERBOARD value set in Configuration.h."
| ^~~~~
In file included from buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/../pins/pins.h:926,
from buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/MarlinConfig.h:34,
from buildroot/share/PlatformIO/scripts/common-dependencies.h:29:
buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/../pins/pins_postprocess.h:949:8: error: #error "No E stepper plug left for Z2!"
949 | #error "No E stepper plug left for Z2!"
| ^~~~~
Error: Failed to parse Marlin features. See previous error messages.
============================================================== [FAILED] Took 0.37 seconds ==============================================================

Environment Status Duration
------------------- -------- ------------
mks_robin_nano_v3_1 FAILED 00:00:00.367
======================================================== 1 failed, 0 succeeded in 00:00:00.367 =============


Thank you.

Cheers, Gene
I've blown away the Marlin-2.1.x download and replaced it with the Marlin-bugfixed 2.1.x version
I've blown away the configurations from import, and replaced them with release versions.

This MKS Robin Nano V3.1_F4 is not in the database. two trees definitions stop at Sapphire Plus 2.0 and board 3.0
The mcu on this board is an St stm32F407VET6, and the board is marked as a Robin Nano 3.1.

I cannot even find a Two Trees stanza in boards.h, I can find the mcu, but that doesn't get me a clean inspection report.
It IS in the import config file, but marlin has its own killer pragma and won't even try to build it. If Marlin wants bugs fixed, tell me how to remove that blockade.
I've configured and built realtime preempt kernels for rpi's, you can even download that kernel from my web page.

I write my own gcodes to carve wood and metal, but I use OpenSCAD to make stuff to print, but this puzzle has around 1.92EE38 pieces I can't keep track of.

Klipper will build, but uses dfu to install, and the arm64 version of dfu is 2 versions out of date and does not function with a bpi5's usb-3 ports.
And no one seems interested in fixing that any more than in removing the blockade preventing Marin testing builds. Why?????

I guess the next will be a reading of the klipper makefile to see if it has an unmentioned make sd install option.
Here's a couple of bugfix-2.1.x config files that compile. I started with the bugfix-2.1.x Configurations/config/examples/Two Trees/Sapphire Plus/Sapphire Plus V2.1/ example files and then:
  • Made the changes mentioned by DUST.
  • Stripped out all the SAPPHIRE_PLUS_xxx conditionals.
  • Set all steppers to TMC2209
  • Configured the Z2 motor to use the E1 stepper driver slot
  • Configured just a single Z_MIN endstop
  • Disabled MKS_ROBIN_TFT35
  • Disabled FILAMENT_RUNOUT_SENSOR
  • Disabled ADVANCED_PAUSE_FEATURE
  • Disabled Bed Leveling

Once you've set the stepper DRIVER_TYPE correctly you should have basic operation.
Attachments:
open | download - Configuration_WOW.zip (94.6 KB)
I did find in the klipper board configs, some really old files dating back to the robin nano 1.1 days. 3 of them, and they all contain the msg that dfu does NOT work on the robin nano's.

So they give a script that generates a file for the sd card. But only the last, a 2 yo config, contains this mcu. and the rest of that file is for a bed slinger. Discouraging, a fresh roadblock at every step of the way.
I did finally discover that dfu-util was moved to github, but I pulled version 0.7 from sourceforge and built it only to find it was 2 versions older than the distro's are packaging.
0.11 from github built and installed just fine on armbian 64 bit and then I find it does not work anyway on the robin nano's.

What do I do next? I've nearly 2 grand in parts to make a pair of faster, bigger printers and cannot find a board I can buy that is old enough to work with this software.

No glee here at the coyote.den. Sniff.

Thanks all. Gene.
You may consider changing to the MKS TS35 display. It works with the MKS Robin Nano 3.1.

Unfortunately it looks like you'll need to order it from China. I didn't find it on Amazon except as part of a bundle.

Chances are you'll need to print a new LCD enclosure if you go with the MKS TS35.




Any chance of returning the MKS Robin Nano 3.1 you have now and getting the bundle?
Quote
[email protected]
You may consider changing to the MKS TS35 display. It works with the MKS Robin Nano 3.1.

Unfortunately it looks like you'll need to order it from China. I didn't find it on Amazon except as part of a bundle.

Chances are you'll need to print a new LCD enclosure if you go with the MKS TS35.

I thought of that but would have to spend another $400 for another printer to do it.




Any chance of returning the MKS Robin Nano 3.1 you have now and getting the bundle?

What I have will work well, if I could get Marlin or klipper to build for them.

Thanks Bob.
Re: newbee to platformio, need initial startup to configure for board only in imports file.
December 30, 2022 07:21AM
Finally spotted why those driver TERN's where not working

#define Z_DRIVER_TYPE  TERN(SAPPHIRE_PLUS_TMC_UART,TMC2209.TMC2209_STANDALONE)


has a full stop in it, not a comma between TMC2209 and TMC2209_STANDALONE
Which does not solve my problem.. The problem is that the board & display I bought is a robin nano 3.1, not the V1.2 I thought I was buying. But that is only in the imports file and Marlin is not allowed to build from the imports configs.
How in tuncket do they expect to debug the new stuff if we cannot build it and try it? Mind boggling for no apparent reason.

Besides, I fixed that days ago by specing TMC2209's for all 5 motors. I have several dl's direct from two trees, but again, its marlin-2.1.3 for a V1.2 board. I think I have the files for the V3.1 but no clue how to merge them into platformio to build marlin.
My opinion of the platformoi's docs is unprintable from the viewpoint of someone who first heard of platformio day before yesterday.

A classic case of docs written by the author of the software, he knows how to run it, and falsely ASSUMES everyone else does too. The end result is found on the ground behind the male of the bovine specie. Nothing on the requirements to make platformio run.
Re: newbee to platformio, need initial startup to configure for board only in imports file.
December 30, 2022 09:46AM
Some clarification....


Two tress provides this directory
[www.mediafire.com]

The Config file provided in this firmware directory robin_nano35.cfg.txt is not standard for anything .

It is not a platformio config file
its is not a Marlin config file. (but parts of it clearly are based on marlin Config files)

What two trees has done is to heavily customize Marlin, This allows for settings that are normally compile time options to be changed with their custom config file.
Unfortunately they have not provided this customized Marlin, in binaries or source form as far as I can find.

So even if you managed to get a robin nano v1.2 board, there is no way to restore it to factory stock.
(unless you manage to get what you need form two trees, somehow)



The configs provided by marlin are what you need to run stock Marlin on the stock hardware
https://github.com/MarlinFirmware/Configurations/tree/release-2.1.2/config/examples/Two%20Trees/Sapphire%20Plus

These can be customized for new hardware etc, withing limits of the new hardware.



The robin nano v3.1 boards do not support the original LCD that was on the robin nano v1.2 boards
This is why you get the error "MKS Robin Nano V3 doesn't support FSMC-based TFT displays." when you have MKS_ROBIN_TFT35 enabled.
This LCD is simply not compatible with this motherboard.




You cannot build marlin from import branch configs. That is not what they are there for (import branch is for adding and editing config files, actual config files are generated using scripts from these files)
You must change the branch to the version of Marlin you are using and use those configs

for eg if you using Marlin release 2.1.2 then you download https://github.com/MarlinFirmware/Configurations/archive/refs/heads/release-2.1.2.zip
If your using Marlin bugfix 2.1.x then you download https://github.com/MarlinFirmware/Configurations/archive/refs/heads/bugfix-2.1.x.zip

If the filename says import, you have downloaded the wrong thing

Edited 3 time(s). Last edit at 12/30/2022 09:59AM by Dust.
Try building with the config files I posted. They build for me.

Also, consider using a REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER type LCD. Not as sexy as the original but very functional. They're available on Amazon . Most come with a 2560 RAMPS adapter board that can be thrown away in your case.
I agree that getting the correct example config files is a pain the first time.

There is a pulldown menu for selecting the flavor of Marlin. Wish it didn't default to an invalid selection.

Attached is a snapshot of the pulldown menu.
Attachments:
open | download - Image1.jpg (239.3 KB)
Quote
Dust
>Some clarification....


>Two tress provides this directory
>[www.mediafire.com]

>The Config file provided in this firmware directory robin_nano35.cfg.txt is not standard for anything .

>It is not a platformio config file
>its is not a Marlin config file. (but parts of it clearly are based on marlin Config files)

>What two trees has done is to heavily customize Marlin, This allows for settings that are normally compile time options to be changed with their custom config file.
>Unfortunately they have not provided this customized Marlin, in binaries or source form as far as I can find.

They have sent me, by way of wetransfer, a couple .rar files that may be what we are looking for, but no docs as to how to actually use it.

>So even if you managed to get a robin nano v1.2 board, there is no way to restore it to factory stock.
>(unless you manage to get what you need form two trees, somehow)

There supposedly is a new V1.2 board for this printer coming but I've not yet rx'd an "its been shipped" notice from amazon who is the dealer path. The agreement, effectively a warranty claim, was agreed to just 3 days ago, and the junk moves by donkeys on the canal bank and rope from past performance. It took 5 weeks from order to receipt originally. IMO its a good printer for the sheckels asked, no bltouch or anything like that but leveling is dead stable once set. 2 major gotcha's, its a bowden tube, and despite the claims the teflon tube goes all the way to the nozzle, I've installed a heat break that fixes that, so PETG should Just Work once its restored to operation. I may see if I can print a mount for the tiny extruder by ldo on top of the hotend. but that's a future project.

Right now its to make, albeit slowly, the stuff I need for the other 2 even bigger printers. designing most of what I need in openscad. Restored, the ender5+ can make the housing halves 6 up, hopefully in 3 days. The tronxy, working, can do half nuts a dozen up, supposedly in that 3 days. Either will use up around 2kg of filament. I change that on the fly when they run out.

This printer isn't big enough to do me any great speeds, but its a much better printer for $400 than a Prusa mk3s+ at $1000 which has been such a black hole for maintenance costs I've given up on it. I've also an ender5+ I'm rebuilding again, and a tronxy-400-plus that has never printed anything, the marlin it comes with it totally fubar. Any attempt to print is done 5mm above the glass plate. m851 is ignored. All of them will have stepper/servo's eventually. Those don't lose home w/o stopping LinuxCNC so fast, a millisecond perhaps, no mark on the workpiece. I have them for x and z on an 80 yo sheldon lathe, and for Z and B on a 6040 mill. That B is shop made, a 3NM stepper/servo driving a 5/1 worm, printed chuck to hold the stick of hard maple I'm turning into a vise screw. These printers are then to make the nuts and the rest of a big vise for woodworking benches. Screw is 20" long, 2" dia, 4mm tall buttress thread, carved with gcode I wrote. But no tool changer on that mill, so I'm doing it all with a 1/16" SC round nosed bit.
12mm pitch thread, 2 start so looks like a 6mm moving two threads per turn. Because that bit is so fragile, its about 2 days to make a screw, but the first 36 hours are spent making a 2" square stick round. With a tool changer, I could do the roughing cuts in half an hour. But spindles that fast, 24k rpm, with a tool changer are around 4 grand, I can still make screws at 6x what the printers can do. I've got to get some speed, and its looking like klipper3d may have the better answer. Just gotta figure out how to build, calibrate, and use it. I'll be happy if I can get them to run at 300mm instead of 60. I plan on using the new creality spider hot end, I've used 2 of them so far w/o any problems with the ldo extruder on top of them on printed carriages. But I have to find some 4 wire fans, the last burnup on the ender5+ was because the hot end fan sucked up debris from the bed, jammed and stopped the fan, and marlin just kept on trucking until the carriage melted down. Bad dog, no biscuit. I've redesigned the air flow to prevent that I hope.

>The configs provided by marlin are what you need to run stock Marlin on the stock hardware. (I have an even newer version of this link from TwoTrees, but its too old for these cards.)

>These can be customized for new hardware etc, withing limits of the new hardware.
And the actual docs on the new boards is on the missing list.



The robin nano v3.1 boards do not support the original LCD that was on the robin nano v1.2 boards
This is why you get the error "MKS Robin Nano V3 doesn't support FSMC-based TFT displays." when you have MKS_ROBIN_TFT35 enabled.
This LCD is simply not compatible with this motherboard.

>You cannot build marlin from import branch configs. That is not what they are there for (import branch is for adding and editing config files, actual config files are generated using scripts from these files)
How about some docs on how to do that?


>You must change the branch to the version of Marlin you are using and use those configs

for eg if you using Marlin release 2.1.2 then you download https://github.com/MarlinFirmware/Configurations/archive/refs/heads/release-2.1.2.zip
If your using Marlin bugfix 2.1.x then you download https://github.com/MarlinFirmware/Configurations/archive/refs/heads/bugfix-2.1.x.zip

If the filename says import, you have downloaded the wrong thing
Inside the file wetranfer gave me, are two more zips. one for the SP-5 and one for SP-5_3_1 which is about half the size of the plain one cuz the marlin-2.1.1 in it has never been built.

But, I see a platformio file in there too, which might be the answer. They really hid this. So, how do I open that, cd to it and run platformio home? I'll sign off and play.

Thanks Dust.
Now I am confused again. There are two sets of Configuration files in that tree, one in the directry with platformio.ino and one in the Marlin2.1.1 subdir of that directory.
"platformio check"'s first compliant is unk MOTHERBOARD.
The first obvious diff I see is the one of them has an "_F4" appended to the board name, the other doesn't. The boards own artwork does not contain the F4 in ink/paint.

So lets discuss which I should use and how.

An ls -R of SP-5_3_1: no way, it's too big, so I'll put that zip on my web page. If I can, yes but its a 160 meg zip, I renamed so it didn't need the single quotes. see it at [geneslinuxbox.net]
Maybe this is getting somewhere?

Many thanks for hanging with me Dust, I appreciate it, a lot. I thing I'll go see whats for breakfast since I'm my own cook and bottle washer. ;o)>

Cheers Gene.
The config files that matter are in the Marlin-2.1.1\Marlin\ directory.

I was able to compile your ZIP as is. Congradulations!

One thing that must be changed is SERIAL_PORT. It MUST be set to -1 for the USB interface to work.

SERIAL_PORT_2 should be conmmented out. It isn't used.

If you want to set the TMC2209 parameters then you'll need to do the following:
  • Enable SAPPHIRE_PLUS_TMC_UART
  • Delete lines 1126-1138. These are specific to the default motherboard. The corresponding MKS_ROBIN_NANO_V3_1 settings are handled in the pins_MKS_ROBIN_NANO_V3_common.h file.
well, I had a msg composed but FF threw it away when I restarted platformio.
Instead of opening a new instance, it dumps whatever its doing on whatever workspace and fires up another fresh session on top of the workspace you are using at the instant.
Anyway, I tried to do everything you suggested, but I am still getting the next to the last line in pins/pins.h because MB does equal what the Configuration.h files names as MOTHERBOARD.

So I'm still lost and obiously confused I'll paste the first error that platformio check spits out:

gene@coyote:~/src/SP-5_V3.1/Marlin-2.1.1$ platformio check
Checking mks_robin_nano_v3_1 > cppcheck (board: marlin_STM32F407VET6_CCM; platform: ststm32@~12.1; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------------------------------
Marlin/src/pins/pins.h:865: [high:error] #error Unknown MOTHERBOARD value set in Configuration.h. [preprocessorErrorDirective]
^X^CError: Aborted by user


And I'll send this before FF throws it away.

Thanks Bob.
Cheers Gene.
Something basic is wrong.

I just opened a shell window, navigated to the directory ...\Marlin-2.1.1 and issued the platformio run -e mks_robin_nano_v3_1 command. It compiled with only the warnings about the Z2 being auto assigned to E1 socket and "#warning "Motherboard DIAG jumpers must be removed when SENSORLESS_HOMING is disabled."

The only changes I've made to configuration.h are detailed above. I've attached the file I'm using.

I've also attached the resulting Robin_nano_v3.bin file. Copy that to an SD card card, put it in the controller and power cycle it. It should copy the new firmware into flash and rename the file Robin_nano_v3.cur.

NOTE: The SD card must be formatted as an 8G (or smaller) volume and as FAT32.
Attachments:
open | download - Configuration.h (123.8 KB)
open | download - Robin_nano_v3.bin (277.5 KB)
And that seems to be another bottomless rabit hole. It tells me to move the Configuration.h and adv.h versions to the Marlin subdir, but that is where they are, so I run the project init command which makes a virtually empty platformio.iini file,
then rerunning your -e command command gets me an instant request to setup the [env] section, giving a web address for the docs, where I am greeted by a 100+ line wall of example text I'd hope has all the t's crossed and i's dotted but the example has nothing to do with a robin_nano_3.1 board.

Do I need to reinstall platformio to get rid of the trash, or do I need to move the whole src dir to one of the bpi5's and do it there?

n the meantime I'll try your .bin on the sd card to see if it works, & post that result.

Thanks Bob.

Cheers Gene.
I put your .bin in it, and after quite a bit of touch screen taps have it working in corexy mode!

Everything seems to be working except I cannot find the 5 point bed leveling screen.

This has only a switch on the right rail for z zero. Can I enable the 5 point with an mcode? I've had the hot end in its component pieces, putting in an ALL metal titanium heat break, so I expect to have to redo the bed screws.

So how is this done now?

Progress! My ears are in danger from the width of the grin.

Thank you Bob.

Cheers, Gene.
Sorry, only registered users may post in this forum.

Click here to login