MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.32k stars 19.25k forks source link

BIGTREETRECH SKR V1.1 32bit LPC1768 mcu #12632

Closed weed2all closed 5 years ago

weed2all commented 5 years ago

Good morning!another question/new board for marlin... After a search on Google I cross upon this board that in my vision has identical footprint as a MKS GEN L board only new is that have an LPC 1768 mcu as a Sbase and Smoothieboard.. Can marlin run this board?

https://s.click.aliexpress.com/e/ckQ3MWVS

bipsendk commented 5 years ago

FYI: It is a common problem, that some manufacturers rotate the IDC 10 pin connectors for EXP1 and EXP2 180 degrees.... I have also seen it on a MKS Gen v1.4 board (and using a standard RRD GLCD)

myseg commented 5 years ago

Thank you all, I think I have figured it all out now. The geniuses at BIQU put the SCK pin (P0_15) to the lcd CS pin too (can be seen on the pinout too) no wonder it didn't work, ant that was why the sd worked and the lcd did not (I figured out some time before my post that I mistakenly swapped the miso/mosi, the external SD definitely works). Now I need to hack that pin CS pin to the free P2.6 on the LCD/SD/SPI breakout. Will keep you posted tomorrow.

gloomyandy commented 5 years ago

@myseg are you sure about the CS pin? Looking at this pinout: https://ae01.alicdn.com/kf/HTB1NZmHaiDxK1RjSsphq6zHrpXac.jpg it looks to me like pin P0_15 (SCK) and P0_16 (CS) are in the same place as on the MKS Sbase board (other than the SBase has the connector rotated) and that pinout works fine (at least it does with the RRD GLCD). P0_15(SCK) needs to go to both the SD card and the LCD.

What display are you actually trying to get working? The Graphics ones seem to work fine with the Sbase and other similar smoothie style boards but folks seem to have problems getting the simpler character ones (RRD SC https://reprap.org/wiki/RepRapDiscount_Smart_Controller) working. Perhaps you are running into the same issues?

b0ssman commented 5 years ago

I checked and Bigtreetech's Marlin fork doesn't add more than pins_BIQU_SKR_V1.1.h - so it should work in mainline as well if it works at all.

its already merged

isnave commented 5 years ago

hello I want to use the mks tft32, which I used in the mks gen l by plugging directly into aux-1, but on this board it does not work, it turns on but the commands do not work. someone could help me out please.

gloomyandy commented 5 years ago

The tft32 is not really a display like the other more standard devices. It is more like having a separate small computer that talks to Marlin via a serial port and sends gcode commands to do things. This means you need to define a serial port to allow the tft32 to talk via. How have you configured the serial ports in your configuration file?

isnave commented 5 years ago

define SERIAL_PORT -1

define SERIAL_PORT_2 0

isnave commented 5 years ago

I know it is the plate is 115000 baud and tft 250000 I did not remember ... what sweats

myseg commented 5 years ago

@myseg are you sure about the CS pin? Looking at this pinout: https://ae01.alicdn.com/kf/HTB1NZmHaiDxK1RjSsphq6zHrpXac.jpg it looks to me like pin P0_15 (SCK) and P0_16 (CS) are in the same place as on the MKS Sbase board (other than the SBase has the connector rotated) and that pinout works fine (at least it does with the RRD GLCD). P0_15(SCK) needs to go to both the SD card and the LCD.

What display are you actually trying to get working? The Graphics ones seem to work fine with the Sbase and other similar smoothie style boards but folks seem to have problems getting the simpler character ones (RRD SC https://reprap.org/wiki/RepRapDiscount_Smart_Controller) working. Perhaps you are running into the same issues?

So apparently, people at BIQU had no idea how the exp breakouts works, and they mapped the lcd CS pin (doglcd_cs) to the hardware SCK pin (P0_15) mistakenly. To access both the lcd and sd card, it needs two separate cs pins (DOGLCD_CS for the lcd, and SDSS for the SD) to work. The one SCK pin is enough, it only provides the clock, for both simultaneously. This is not the same as a smoothieboard, the exp1 is not only rotated, it is completely messed up. I had to splice up the cable and remap the DOGLCD_CS pin to P2_06, and it finally works! See attached image. Now I will try the tmc2130s, hope they won't fry themselves... This SKR v1.1 board is clearly a still at prototype stage, and we are the test subjects. Probably the v1.2 model will have correct pin breakouts. I really don't recommend anyone to buy it right now, unless they would want to use the tft32 screen (which I also do not recommend, the simple 12864 is far more useful). Better wait for a new version.

img_20190109_231914

If I manage to hook up the tmc-s, I will post an update.

talldonkey commented 5 years ago

Hi myseg, a BIQU employee seems to be actively designing the SKR 1.2 board at this FB thread/post, and has even included screens of the board/traces - I suggest you can provide that feedback directly to BIQU through this channel to ensure the same mistake isn't made and is actually fixed in SKR 1.2 . https://www.facebook.com/groups/505736576548648/permalink/607735353015436/

myseg commented 5 years ago

Wow! Did not see that yet. From the snaps he took from the board file, it looks like they broke out several more pins, and also managed to use the tmc2130 spi mode toggle jumpers, too, so no more wiring! I guess we have the reason why this 1.1 board is so cheap, they were probably already working on the other ones

myseg commented 5 years ago

Also, as the new board comes out in a short time, I think the thread can be closed. Everyone that had issues, thank you for beta testing for biqu for free (even we had to pay them), now buy the new, revamped board, it might not have issues...

(joke)

jmdearras commented 5 years ago

@myseg are you sure about the CS pin? Looking at this pinout: https://ae01.alicdn.com/kf/HTB1NZmHaiDxK1RjSsphq6zHrpXac.jpg it looks to me like pin P0_15 (SCK) and P0_16 (CS) are in the same place as on the MKS Sbase board (other than the SBase has the connector rotated) and that pinout works fine (at least it does with the RRD GLCD). P0_15(SCK) needs to go to both the SD card and the LCD. What display are you actually trying to get working? The Graphics ones seem to work fine with the Sbase and other similar smoothie style boards but folks seem to have problems getting the simpler character ones (RRD SC https://reprap.org/wiki/RepRapDiscount_Smart_Controller) working. Perhaps you are running into the same issues?

So apparently, people at BIQU had no idea how the exp breakouts works, and they mapped the lcd CS pin (doglcd_cs) to the hardware SCK pin (P0_15) mistakenly. To access both the lcd and sd card, it needs two separate cs pins (DOGLCD_CS for the lcd, and SDSS for the SD) to work. The one SCK pin is enough, it only provides the clock, for both simultaneously. This is not the same as a smoothieboard, the exp1 is not only rotated, it is completely messed up. I had to splice up the cable and remap the DOGLCD_CS pin to P2_06, and it finally works! See attached image. Now I will try the tmc2130s, hope they won't fry themselves... This SKR v1.1 board is clearly a still at prototype stage, and we are the test subjects. Probably the v1.2 model will have correct pin breakouts. I really don't recommend anyone to buy it right now, unless they would want to use the tft32 screen (which I also do not recommend, the simple 12864 is far more useful). Better wait for a new version.

img_20190109_231914

If I manage to hook up the tmc-s, I will post an update.

Does the cardreader work? Can you share the config and wiring?

myseg commented 5 years ago

Card reader works, you only need to change the pins file other than the wiring. It's easy, the pin numbers are on the back side of the board, and also shared here previously. I connected two pins on the exp1 head, just because one of them was not present on the LCD/SPI breakout.

You only need to copy and paste this section, replacing in the entire ultipanel/lcd whatever section. Mind you, this will make it not compatible with any other lcds you enable in configuration.h

/**
 * Smart LCD adapter
 *
 * The Smart LCD adapter can be used for the two 10 pin LCD controllers such as
 * REPRAP_DISCOUNT_SMART_CONTROLLER.  It can't be used for controllers that use
 * DOGLCD_A0, DOGLCD_CS, LCD_PINS_D5, LCD_PINS_D6 or LCD_PINS_D7. A custom cable
 * is needed to pick up 5V for the EXP1 connection.
 *
 * SD card on the LCD uses the same SPI signals as the LCD. This results in garbage/lines
 * on the LCD display during accesses of the SD card. The menus/code has been arranged so
 * that the garbage/lines are erased immediately after the SD card accesses are completed.
 */

#if ENABLED(MKS_MINI_12864)

  #define BEEPER_PIN          P1_30
  #define BTN_EN1             P3_25   // (31) J3-2 & AUX-4
  #define BTN_EN2             P3_26   // (33) J3-4 & AUX-4
  #define BTN_ENC             P2_11
  #define SD_DETECT_PIN       P1_31

  #define DOGLCD_CS           P2_06   // (16)
  #define DOGLCD_A0           P0_16   // (59) J3-8 & AUX-2
  #define DOGLCD_SCK          SCK_PIN
  #define DOGLCD_MOSI         MOSI_PIN
  #define DOGLCD_MISO         MISO_PIN
  // GLCD features
  //#define LCD_CONTRAST   190
  // Uncomment screen orientation
  //#define LCD_SCREEN_ROT_90
  //#define LCD_SCREEN_ROT_180
  //#define LCD_SCREEN_ROT_270

#endif // MKS_MINI_12864
bipsendk commented 5 years ago

@myseg - so with the definition above - and some rewiring of the LCD cables - it is possible to get the MKS_MINI_12864 to work - including the SDcard reader ? It would be nice with a detailed description of which pins to connect where ...

myseg commented 5 years ago

well, you turn the board around, there are the pin numbers. And to which pin goes where, it is in the code I posted just now. I have linked a pinout picture of both the mks12864, and the motherboard in this thread.

myseg commented 5 years ago

Also, I have managed to hook up the tmc2130s, by using the X-min P1_29, and Y-min P1_27, and the second serial pins (P0_02 and P0_03, on the AUX-1 header) as CS pins (for 4pcs tmc2130-s). Connecting them to the enable pins leaded to erratic detection, but this way it works well. Shame that now I cant use the esp8266 wifi or other UART expansions though. The other spi cables were simply connected onto the LCD/SD/SPI header pins, they are labeled.

Hope I helped everyone, after all it is not such a bad motherboard, it just lacks a lot of pins.

fape commented 5 years ago

So tmc2130 with hardware spi is working, good to know. I think we can use E1's en, dir and step pins too, besides unused endstops pins. So you can free uart2 pins. We have to make compromise somehow.

jmdearras commented 5 years ago

Could you do a closeup of the wiring in the upper left corner? I can almost make out all the connections.

Miroslav57 commented 5 years ago

Anyone could share his config.txt file for rrd glcd for smoothiware . The buzzer always ring when I switch on the board

myseg commented 5 years ago

Turns out, I was horribly wrong. The board is working perfectly with tmc2130s hooked to the enable pins (I have seriously no idea why or how, and also I can disable the steppers with gcode and that works well too, and won't interfere with the spi signals, probably that is too high frequency to trigger the enable pins), so the deafult config is right, and with the code I posted above, the mini12864 screen is working as well.

What I went wrong with was I have been testing the drivers with usb power, and that produced completely erratic behavior, but once the jumper was set to external supply, there were no errors. Furthermore, I was unable to correctly set up the endstop pins, and my spi cabling had its MOSI and MISO pins swapped, which at USB power gave correct readings, but at 12V, it stopped working and vice versa (also, no idea why). Now it works well, but I have only tested it by homing the printer. If anyone is interested, I can share the config, adv, and pins file, but mind you, I am using a delta printer, the files will need editing.

If anyone here is using a ramps or any 8 bit board, I would be glad if they could try setting the CS pins equal to the EN pins just to see if it works there too.

AnHardt commented 5 years ago

try setting the CS pins equal to the EN pins just to see if it works there too.

Theoretically this is possible. But you can't move and send/revive spi-data at the same time. So, first configuring the drivers, then just and only printing should work. But polling, for example the temperatures, error states, ... , will mess up the print.

gloomyandy commented 5 years ago

"But polling, for example the temperatures, error states, ... , will mess up the print." Unless you have things set to use SPI to enable the drivers? Does Marlin support this?

rustam-rezvanov commented 5 years ago

Card reader works, you only need to change the pins file other than the wiring. It's easy, the pin numbers are on the back side of the board, and also shared here previously. I connected two pins on the exp1 head, just because one of them was not present on the LCD/SPI breakout.

You only need to copy and paste this section, replacing in the entire ultipanel/lcd whatever section. Mind you, this will make it not compatible with any other lcds you enable in configuration.h

/**
 * Smart LCD adapter
 *
 * The Smart LCD adapter can be used for the two 10 pin LCD controllers such as
 * REPRAP_DISCOUNT_SMART_CONTROLLER.  It can't be used for controllers that use
 * DOGLCD_A0, DOGLCD_CS, LCD_PINS_D5, LCD_PINS_D6 or LCD_PINS_D7. A custom cable
 * is needed to pick up 5V for the EXP1 connection.
 *
 * SD card on the LCD uses the same SPI signals as the LCD. This results in garbage/lines
 * on the LCD display during accesses of the SD card. The menus/code has been arranged so
 * that the garbage/lines are erased immediately after the SD card accesses are completed.
 */

#if ENABLED(MKS_MINI_12864)

  #define BEEPER_PIN          P1_30
  #define BTN_EN1             P3_25   // (31) J3-2 & AUX-4
  #define BTN_EN2             P3_26   // (33) J3-4 & AUX-4
  #define BTN_ENC             P2_11
  #define SD_DETECT_PIN       P1_31

  #define DOGLCD_CS           P2_06   // (16)
  #define DOGLCD_A0           P0_16   // (59) J3-8 & AUX-2
  #define DOGLCD_SCK          SCK_PIN
  #define DOGLCD_MOSI         MOSI_PIN
  #define DOGLCD_MISO         MISO_PIN
  // GLCD features
  //#define LCD_CONTRAST   190
  // Uncomment screen orientation
  //#define LCD_SCREEN_ROT_90
  //#define LCD_SCREEN_ROT_180
  //#define LCD_SCREEN_ROT_270

#endif // MKS_MINI_12864

Hi! This code should be added to " Marlin-bugfix-2.0.x\Marlin\nits\pins\pins_BIQU_SKR_V1.1.h " instead of the "#if ENABLED(ULTRA_LCD)" section?

I include Marlin-bugfix-2.0.x\Marlin\configuration.h "item" #define MKS_MINI_12864" and the code is compiled regardless of whether the code in the file" Marlin-bugfix-2.0.x\Marlin\nits\pins\pins_BIQU_SKR_V1.1.h".

I don't understand why I don't get an error when the code is not added to " Marlin-bugfix-2.0.x\Marlin\nits\pins\pins_BIQU_SKR_V1.1.h "

Maybe I'm adding the wrong one?

Sorry about my English, it's bad. I use translator.

link to my files in question https://drive.google.com/file/d/1Ymonxv99G3UxjB0JRiSlgC8T2obmoKsP/view?usp=sharing https://drive.google.com/file/d/1G2TrRmRZgu4e6UkGIm0sZZgQT9rPH9oP/view?usp=sharing

Miroslav57 commented 5 years ago

Someone can tell me how xonfigure smoothieware for bl touch

myseg commented 5 years ago

Alright, the sdcard was not working as I expected. After initial testing I was happy it detected and listed at M20, however when printing from SD card the screen freezes always exactly after starting the actual print gcode, after the heating, homing, moving to position, toolchange and initial retraction (done with gcode, not in fw), always at the same step. I tried other slicers, other sd cards, other gcodes, manually deleting some gcode lines, it always stops at ~20 lines into it. When connected to a PC (repetier-host), it shows repetitive SD read errors, which explains the screen freezing, it's polling the SD card with no result. I find it extremely strange, as the printer starts, detects, lists, and even starts to print a bit with the SD, but then freezes. Also, sometimes it has some sd init fail errors too, they are mostly after I reset the printer when it froze. A new reset eliminates any init fails, and it detects and inits it well after. Printing through usb works well, but it has the expected slowdowns at difficult geometry, which I really wouldn't like to have.

Here is my pins.h: pins_BIQU_SKR_V1.1.txt

I am completely lost now, all day I searched for any similar problem, but found none.

b0ssman commented 5 years ago

what about the exporting of the internal sd card via usb as mass storage? does that work?

isnave commented 5 years ago

someone has managed to configure the tmc2130 and that it works correctly or the tmc2208 as uart. yesterday all day I was trying but nothing

myseg commented 5 years ago

The tmc2130s work well for me even with the default pins.h, the problem is with the sd card. I will try if a4988s also reproduce the sd problem.

isnave commented 5 years ago

you have the biqu configuration because to me in spi gives me tmc error, could you put a picture of the connections ???? the jumpers from under the tmc, you have taken them off ... jurrr sorry is that I'm going crazy

myseg commented 5 years ago

After testing, a4988s did NOT reproduce the SD problem, so the tmc-s are probably overloading the SPI bus. Will try moving the tmcs to sw SPI.

myseg commented 5 years ago

you have the biqu configuration because to me in spi gives me tmc error, could you put a picture of the connections ???? the jumpers from under the tmc, you have taken them off ... jurrr sorry is that I'm going crazy

How I configured it was I hooked up the CS pins to the EN pins, and connected the SPI pins to the HW SPI pins (MISO (SDO): P0_17, MOSI (SDI): P0_18, SCK: P0_15) on the board's LCD/SD/SPI header. the pins are labeled literally on the back of the board. If it does not work, check your wires and firmware, something must be wrong. Also test them on external power, usb power will NOT work, as I have posted above.

myseg commented 5 years ago

I am so dumb I was overlooking this... When enabling SW SPI on the drivers, I was mapping the sw pins on the same hw SPI pins, which produced great results for some people (youtube: https://m.youtube.com/watch?t=1s&v=TtYmx60rZh0 ) but they were mapping the lcd pins to some other ones. Well I did it the other way: The MOSI and MISO pins I swapped to P0_02 and P0_03, (so I had to disable serial2), but left the SCK pin as original, P0_15 as the endstop pins produced unstable results, so I could use only 2 free pins. This way, it works and prints flawlessly, no LCD artifacts whatsoever. If anyone requests it I can send a cabling picture from my motherboard, but I think I explained it thoroughly through my posts here. Greetings to everyone, and happy printing!

rustam-rezvanov commented 5 years ago

Hi! I understand that you managed to solve the problem with the screen and SD card? Upload a photo of the Board and the configuration file and pin. It's hard for me to understand some things in text form.

isnave commented 5 years ago

A picture is worth a thousand words thanks

fape commented 5 years ago

A picture is worth a thousand words thanks

picture and pins_BIQU_SKR_V1.1.h* file ;)

thisiskeithb commented 5 years ago

Here's a to-be-verified SKR 1.1 TMC2130 & BLTouch wiring digram thanks to a user in this post in BIGTREETECH's Facebook group. I have an SKR arriving tomorrow, so I'll follow-up when I can get everything on the bench.

49900552_304260943556815_4749033463326179328_o

Miroslav57 commented 5 years ago

Could anyone share his marlin 2.0 files please ?

NANKEBAB commented 5 years ago

Hello all. Does anyone made the board work with Full graphic smart LCD controller. It seems that with Marlin 2.0, the SD car under the screen doesn't work for my part. And in Pin.h I don't see an if(REPRAPFULL...).

myseg commented 5 years ago

Alright, my config is here: link The wiring is almost the same as thisiskeithb wrote, only the SDI and SDO is connected to the AUX1 port, and to clarify it even more, here's a pic, with the LCD wired in: dsbuffer

If this does not explain it well enough, then I seriously cannot help you.

gloomyandy commented 5 years ago

Is the connection shown for the yellow wire to the the LCD correct? You seem to have it connected to a pin that the label to the right shows as not connected. Should it perhaps be going to the DOGLCD_CS pin (one pin up)?

Also the EXP1 header for this mks mini 12864 board does not seem to match the pins used on the Reprap full graphics smart controller board, which some users here may be trying to use, so beware if that is the case. The schematic for the "standard" board is here: https://reprap.org/mediawiki/images/5/51/RRD_FULL_GRAPHIC_SMART_CONTROLER_SCHEMATIC.pdf this seems to match the pins on the control board pretty well, so you may well be able to get it to work without needing a custom cable. If my board ever shows up I will let you know as I have the the Reprap board and will be using that.

ghost commented 5 years ago

So is it possible in any way to use TMC2208 in UART-Mode ?

gloomyandy commented 5 years ago

So is it possible in any way to use TMC2208 in UART-Mode ?

You should probably be following this thread... https://github.com/MarlinFirmware/Marlin/issues/12854 the basic problems need to be sorted out first. Having said that it could well be tricky to get access to enough pins to get the UART stuff working. The revised board that has been mentioned by some might be a better option.

fape commented 5 years ago

Alright, my config is here: link The wiring is almost the same as thisiskeithb wrote, only the SDI and SDO is connected to the AUX1 port, and to clarify it even more, here's a pic, with the LCD wired in: dsbuffer

If this does not explain it well enough, then I seriously cannot help you.

Did you try tmc with hardware spi (do not to define TMC_USE_SW_SPI, and use P0_17, P0_18) and with lcd&sd too?

myseg commented 5 years ago

My bad, the yellow connects to doglcd_cs, as seen in the pins file. I have literally posted here before that I have tried hardware, and software spi on the original pins, which made the sd printing stop. The guy yt video link I posted before also had to remap their pins, but he remapped the LCD mosi/miso pins not the tmc-s. Either one works. It seems that the sck pin can be used for both.

thisiskeithb commented 5 years ago

I had a chance to play with this board today, but haven't tried out the TMC2130 driver config yet.

I hooked up a BLTouch per this simplified diagram and was wondering what everyone's thoughts were on "standardizing" the BLTouch pins in pins_BIQU_SKR_V1.1.h to repurpose Z-MAX as SERVER0 if you define BLTOUCH in Configuration.h since there are no servo pins on this board:

// Limit Switches
//
// SERVO0_PIN and Z_MAX_PIN configuration for BLTOUCH sensor.
// See https://i.imgur.com/WbGFPAY.jpg
//
#define X_MIN_PIN          P1_29
#define X_MAX_PIN          P1_28
#define Y_MIN_PIN          P1_27
#define Y_MAX_PIN          P1_26
#define Z_MIN_PIN          P1_25
#define Z_MAX_PIN          P1_24

 #if ENABLED(BLTOUCH)
    #define SERVO0_PIN     P1_24   // Z-MAX
 #else

Yay/Nay?

If this should go in another issue, I'd be happy to create it.

petieken commented 5 years ago

I had a chance to play with this board today, but haven't tried out the TMC2130 driver config yet.

I hooked up a BLTouch per this simplified diagram and was wondering what everyone's thoughts were on "standardizing" the BLTouch pins in pins_BIQU_SKR_V1.1.h to repurpose Z-MAX as SERVER0 if you define BLTOUCH in Configuration.h since there are no servo pins on this board:

// Limit Switches
//
// SERVO0_PIN and Z_MAX_PIN configuration for BLTOUCH sensor.
// See https://i.imgur.com/WbGFPAY.jpg
//
#define X_MIN_PIN          P1_29
#define X_MAX_PIN          P1_28
#define Y_MIN_PIN          P1_27
#define Y_MAX_PIN          P1_26
#define Z_MIN_PIN          P1_25
#define Z_MAX_PIN          P1_24

 #if ENABLED(BLTOUCH)
    #define SERVO0_PIN     P1_24   // Z-MAX
 #else

Yay/Nay?

If this should go in another issue, I'd be happy to create it.

You'll need some more else statements I think:

#if ENABLED(BLTOUCH)
    #define SERVO0_PIN     P1_24   // Z-MAX
 #else
    #define Z_MAX_PIN      P1_24

Also you'll need some if else statements for delta printers, because those use MAX endstops for homing and have the MIN available. On my delta I use Z-min for a switch probe.

thisiskeithb commented 5 years ago

Also you'll need some if else statements for delta printers

@petieken Are BLTouches common on deltas? the SERVO0_PIN would only be re-mapped to Z_MAX_PIN if BLTOUCH is enabled in Configuration.h. Unless you mean the other min/max pins?

jmdearras commented 5 years ago

Another point of confusion is that all MKS products have EXP1 and 2 sockets reversed as compared to the rest of the world.

fakcior commented 5 years ago

Anyone suceeded with internal SD card reader? Mine shows No SD card in Marlin menu, even after SD init.