bigtreetech / BIGTREETECH-SKR-PRO-V1.1

Aiming at some problems existing in 3D printed motherboards in the market. Bigtree Technology Co., Ltd. launched a high performance 3D printer master board with STM32F407ZGT6 as the core controller, BIGTREETECH-SKR-PRO-V1.1.
274 stars 221 forks source link

Firmware documentation (documentation request) #42

Open ransombot opened 5 years ago

ransombot commented 5 years ago

Updating firmware documentation isn't really complete for example:

Do you power off and power on the printer to "reboot the board" do you press the button little red button to "reset", do you hold it for 10 seconds? What is the "proper" way to do this procedure should be documented clearly and probably with a separate guide. Are there indicator lights? some times I see a green flicker but I can't tell, there should be an LED flash to indicate the process is done surely for those of us trying to get a LCD working to really be able to tell what's going on.

The guide should also include the format of the MicroSD card my card was corrupted thankfully windows "repaired" it and found nothing wrong but in case of total failure From what I can see it's a FAT formatted MicroSD but there's no documentation that says that.

Is the FIRMWARE.CUR file required to function properly? Is it in the git repo if the drive fails? can you just copy it to a MicroSD to create a new one? Can it be deleted?

I see this listed https://github.com/bigtreetech/BIGTREETECH-SKR-PRO-V1.1/blob/master/manual/SKR%20PRO%20V1.1%20user%20manual%20v1.1.pdf as convenient but where's the documentation to make it convenient? https://www.dropbox.com/s/ppjfflhf3j5yzh2/MarlinV2.0%20SKRV1.1%20instruction.docx?dl=0 which is referenced just tells me I'm using the wrong IDE to confuse the issue and nothing further on the topic.

omahena commented 5 years ago

I will assume you already know the answers to your question through experimentation, so I won't answer them.

But I did want to support your request for proper documentation.

The SKR Pro 1.1 manual also references build instructions for SKR 1.1 (not Pro). There are architecture differences and they will just confuse the users. Also platformio has evolved and now env_default is obsolete and default_envs has replaced it.

What has also been replaced was the source repository. Now that the merge of the SKR Pro 1.1 firmware branch has been completed, surely users should build from the main Marlin repository?

SERIAL_PORT_2 definition is wrong (for SKR Pro 1.1). MOTHERBOARD definition is wrong (for SKR Pro 1.1).

Build destination folders are wrong (not LPC1768 for SKR Pro 1.1). Technically the TF card with the new firmware.bin file also needs to be inserted into the motherboard prior to resetting the motherboard...

The rest of the instructions about the USB driver are also wrong (for SKR Pro 1.1).

printrun online printing software? Providing a link wouldn't hurt. Comment refers to printrun and then the snapshot shows pronterface.

The heart of every 3D printer motherboard are the stepper driver modules. There are no instructions for the SKR Pro 1.1 board instead just Chinese instructions for the SKR 1.3 board. It looks like it suggests RSENSE should be configured to 0.060 while snapshot shows 0.075 (the correct value). These are no useful hints to how high of a current should be used for steppers, no formulas, no examples. And the settings on the snapshot will make your usual 1A steppers so hot you can't hold them after 30min of printing. Actually in my case the extruder motor started to melt/soften the filament that progressed from underextrusion to a complete failure. Some help up front would have saved me two weeks of searching for right current settings and prevented waste of filament and time.

It would be nice if at least accessories listed in the manual would work with the board. And if they don't please provide a compatibility matrix. For example it is not possible to use ESP-01S WiFi module if you are already using the USB serial port to do "online printing" through OctoPrint and have a TF35 LCD monitor connected.

Not to mention that ESP-01S documentation is something you accidentally stumble upon when browsing the SKR Pro 1.1 repository. Did I say documentation? I meant files intended to help you run the module... And no clarification is provided on how to enable the COM port for the board, where to stick the files, what to expect, how to connect... oh... and the provided WiFi module firmware is broken.

Next example... Mainboard sales page claims you can protect your prints from power failure, by installing the miniUPS 1.0 board. That doesn't work (not compatible according to support). And even if it did work... Where are the Marlin building instructions?

How about Relay V1.0? Instructions for Marlin integration? What does the G101 white connector do? To which GPIO pins should it be connected?

Next: SD card. How does one make it work in Marlin? (Hint: one doesn't - it doesn't work for anything other than firmware updates. I suspect hardware conflicts are to blame and it will never work. I would be very happy if you can prove me wrong.)

Documentation should be written in a way that people that are not already experts on the subject can manage to follow them.

Granted a certain level of experience is expected when you are capable of installing and wiring a 3D printer motherboard... But still. One can be experienced with electronics but new to 3D printing.

ransombot commented 5 years ago

Glad to know another source for documentation. Having fun with the steppers, and the LCD hope to find more info there but having fun tinkering for now 50% of the reason I got it and the upgrade to 32bit.

Well it ate the stock card literally after I wrote that kinda glad I noted the fat formatting, most of mine are exf. After formatting one I got it to work.

My cliff notes on firmware (probably not correct but work) are: 1) turn it off & unplug usb 2) insert SD card 4) turn it on, 5) wait till the LCD that displays condensed images with white stripes shows something resembling the _statusscreen.h in jail. 6.a) plug in usb & proterface a bit 6.b) recompile and try again.

Protip: hit F8 after compiling to show the compile window again & where the file saves in the project folder in Atom PIO. (if your new to it) should toss them .pio\build\BIGTREE_SKR_PRO unless your telling it to do something else in the platformio.ini so

Copy: drive:\path to project.pio\build\BIGTREE_SKR_PRO\firmware.bin to: USB:firmware.bin The FIRMWARE.CUR file the board creates is off the old firmware and useless as far as I can tell.

Seems to work when on if you press the reset button but I don't trust that anymore with the stock card breaking after trying it 2x hope it doesn't speak to the mobo build quality looks better than others I've used in computers. But so did the Factory Gen L and the caps are all wrong apparently clones got it right. I'll be fixing that when the caps get delivered this was to replace it though.

env_default is obsolete and default_envs has replaced it.

I got the 2.x marlin branch to compile in Atom PlatformIO first since it had legs I ran with it it has that fix baked in.

SERIAL_PORT_2 definition is wrong (for SKR Pro 1.1).

Fails to compile if you put it on 7 too FYI on port or port_2 in either this or marlin flavor.

The heart of every 3D printer motherboard are the stepper driver modules.

Yes and this is proving troublesome with my 2208's it's compiling but doing strange things. Homing will either work or turn it the biggest desk vibrator, work 1 time then only move 10 mm or so, or combinations. Once it's stuck on vibrate or 10mm stepping it continues to do so till it's power cycled though, and it's anyone's guess what happen next. Dropping voltages and lowering travel speeds doesn't seem to affect the behavior. Runs way cooler than the Gen L that donated them did with more torque it's a mess for me atm but a promising one assuming I don't burn something out poking at values blindly.

It would be nice if at least accessories listed in the manual would work with the board.

Thank you very much for the warnings.

Normally I try and keep issues on topic but I kinda get why the ones here don't stay that way here's an example of the LCD with the

define CR10_STOCKDISPLAY

IMG_20190827_060034443

It's currently my firmware status indicator. I'll open another issue if this is needed/requested.

omahena commented 5 years ago

I can help with the CR10 LCD display. It should come to life and without warnings if you put this at the end of your Marlin\src\pins\stm32\pins_BIGTREE_SKR_PRO_V1.1.h

This is the second problem I have with BTT. I have a feeling their effort into supporting their own product in the Marlin repository has ended. I feel there are many issues that should be addressed and nobody is taking care of them and even existing configuration in pins_BIGTREE_SKR_PRO_V1.1.h are falling to neglect and the community is expected to do the upkeep.

Like we are doing here... So to make it work, replace the condition for the timings in pins_BIGTREE_SKR_PRO_V1.1 like this:

 // Alter timing for graphical display
  #if HAS_GRAPHICAL_LCD
    #undef ST7920_DELAY_1
    #define ST7920_DELAY_1 DELAY_NS(96)
    #undef ST7920_DELAY_2
    #define ST7920_DELAY_2 DELAY_NS(48)
    #undef ST7920_DELAY_3
    #define ST7920_DELAY_3 DELAY_NS(600)
  #endif

New condition just checks if the CR10_STOCKDISPLAY is in use:

#if ENABLED(CR10_STOCKDISPLAY)
  #undef ST7920_DELAY_1
  #define ST7920_DELAY_1 DELAY_NS(96)

  #undef ST7920_DELAY_2
  #define ST7920_DELAY_2 DELAY_NS(48)

  #undef ST7920_DELAY_3
  #define ST7920_DELAY_3 DELAY_NS(600)
#endif // CR10_STOCKDISPLAY

I am not sure why these delays are needed, but as your picture shows... they are needed.

Don't get me started on sensorless homing. I get the same effect. Today I was wondering if it is related to my 256 microsteps configuration for stepper drivers.

And the TMC5160 v1.1 probably requires a hardware patch by connecting CLK pin to Gnd. But since I haven't had any real issues (so far)... That I can tie to that issue with certainty.. I have been delaying the HW patch. See here.

Another important point. I believe it is bad if you disconnect power when the motor is grinding. The problem is that the magnetic field in the motor will collapse back into the coils and create a back spike into your driver IC. In panic I have power cycled my board once or twice without harm. I think there was also a protection board you can buy and you stack it underneath the stepper driver board. But I didn't look too deep into that.

SERIAL_PORT_2 can only be configured to valid COM ports. The configuration.h in sample configurations has an unfortunate downside that it contains this definition for a COM port that is HW dependant. So... They cannot really provide correct documentation inside the header file other than "check with your board manufacturer". Interestingly the COM port number 6 is valid and needed if you want to use the WiFi interface... BUT... you have to enable it in the platformio.ini by adding the -DHAVE_HWSERIAL6. Would be useful to see that in documentation as well, rather than check all issues on GitHub.

But I digress... The point is - the board comes very poorly documented. Please, update and provide proper documentation. Heck, a wiki page might work better than this web of interlinked PDFs in various repos and (of course) DropBox. I realise China is special when it comes to Internet and that the simplest things that work for the rest of the world... Might not be permitted in China. But a simple web server hosted in the US / EU / ... might do the trick.

ransombot commented 5 years ago

LCD trick worked grate, but homing I can't fix.. have 1 frame to play on and can't get it working with about 50/100 attempts. I can get a single axis to home, but anything involving x/y will home then shoot away, I don't have a scope to check things with but I think it's doing it beyond what I'm telling marlin the limits are even. Time to toss in the towel for me.

Really want to thank you for your help though omahena. I learned a tun, and i regret not having it working, but not the time I spent trying. You gave me some some victories that let me earn my own that felt good. Thank you. Wish I had the time and means to add more to a community that needs it looks like a great board if you can get it to work.

omahena commented 5 years ago

@ransombot Actually... For the first time my sensorless homing started to work. Before it was just grinding and doing short X / Y moves towards home pos. Need to compare config files and add stuff line by line to figure out what made it work.

dineshvyas commented 4 years ago

Did anyone run it with DRV8825? nothing seems to work for me. compiled and flushed successfully, endstops working, Bltouch working but motors wont buzz. suggestion...?

cobrettee commented 4 years ago

@dineshvyas - another missed step in documentation or at least wrong order - you must use the jumpers you remove from UART pins on the M1,M2,M3(with 3.3V for high and GND for low) per your stepping required. So you will have 4 jumpers for each stepper. The one they do mention to use DRV8825/A4988 and then the 3 for the M1-M3 setting.

skrPRO