LPC1768(Similar to smoothieboard) ,cannot be connected to the Klipper

Basic Information:

Printer Model: 3d printer
MCU / Printerboard: BIQU111-A7
klippy.log

Describe your issue:

I detached this motherboard from my BIQU Magician 3D printer. It came from 2018 and I couldn’t find any information about it on the Internet.

Here is some information I know about this motherboard:

  1. Carry LPC1768 chip
  2. The original firmware is Smoothieware
  3. Have a USB interface and convert UART to USB
  4. Has an AUX interface, once used to connect screens

Now I want to flash the klipper firmware into this motherboard, and I have successfully compiled klipper.bin. After renaming klipper.bin to firmware.bin, I copy it to the SD card and insert it into the motherboard. It can be seen from Flash Magic that I have successfully flashed into klipper firmware, but the fluidd shows that I can’t connect. I guess it’s a klipper.bin problem

Some additions:

I tried to use Flash Magic to flash klipper.hex (converted from the klipper.bin file with a starting address of 16 KiB), but I still couldn’t use it.

When I flash in the original firmware with Flash Magic, I can receive the boot information through the serial port. However, when klipper.hex is flushed in, no messages are received

The some files are provided, including the following:

  1. make menuconfig.png
  2. original firmware.bin
  3. klipper.bin
  4. DFU-Bootloader.bin
  5. klipper (start address of 16KiB). hex

files.zip (325.1 KB)

I can use Flash Magic Read any section of Flash. If necessary, I can provide relevant screenshots

Instead of posting unrelated files it would be a help if you followed the instruction given when opening the post.

Generally speaking:

  • Follow Installation - Klipper documentation
  • Compile for LPC1768, leaving the other settings default
  • Rename klipper.bin to firmware.bin
  • Copy to SD card and reboot the board
  • firmware.bin needs to be renamed to firmware.cur on the SD card

With your Flash Magic attempts, it is possible that you killed the board’s bootloader. Follow CanBoot: Flash BTT SKR 1.3 / 1.4 / 1.4 Turbo

Yes, firmware.bin was renamed FIRMWARE.CUR after I unplugged the SD card from the motherboard. And whenever I use Flash Magic to flash in the firmware, I notice if the bootloader still exists

Thank you for your suggestion, I will try to flash canboot.bin

When I use Smoothwareware firmware, I can receive startup information from the serial port. But when I use the Klipper firmware, I cannot receive any information.
Is this a normal phenomenon?

I have an LPC1769 in one of my printers as well. It works pretty much standard as detailed above. No need for Flash Magic etc, except for updating the bootloader if wanted.

Please post your klippy.log

klippy.log (2.1 MB)

So far, I have flashed Canboot. When Canboot is used with the original firmware, it works well. But when I flash into klipper, it still doesn’t work

Never mind, didn’t dig far enough into the log.

Please post the sudo dmesg output directly after connecting the board

Now Canboot+Klipper is being used in the mainboard(Not in DFU mode), dmesg is as follows:

It looks like the raspberry pi doesn’t recognize the LPC1768 correctly. Raspberry pi just seems to recognize the onboard CP2101 chip

Is this normal?

The information in this link may help me, but I don’t know what I should do:

lpc176x with smoothie bootloader: switching to bootloader not seen by the kernel · Issue #1470 · Klipper3d/klipper (github.com)

Later, I will recompile klipper.bin and try to use uart to directly connect raspberry pi and LPC1768

  1. Check if the jumpers here make any difference

  2. Try (although it should not make any difference)

    [mcu]
    serial = /dev/ttyUSB0
    
  1. It seems that the mainboard in the document is different from mine. My board only has boot pin (ISP pin). But I’m sure I know how to use the SD card to flash in the firmware, because I can successfully use the SD card to flash in the original firmware.

  2. I tried and it still doesn’t work

Sorry, no further idea.
Seems kind of a strange board, since there is virtually no information available in the www.

Just to make sure: During make menuconfig you have chosen the Smoothieware bootloader, right?

I seem to have found the problem, which seems to be the problem of the board itself

I flashed in Smoothieware again and connected the original TFT2.8 host computer so that the board can work properly. But when I connect to the computer using usb-ttl, I can receive the boot information of Lpc1768 through the serial port, but LPC1768 does not respond to the information I send.

Schematic Diagram of TFT2.8 Upper Computer:
TFT28-SCH.pdf (63.4 KB)
From the schematic diagram above, I guess I might need an RS232

Through the ChatGPT conversation, it seems that it can explain why LPC1768 did not respond to the information I sent.

RS232 and TTL-USB are compatible when receiving information through a serial port. The reason why the message cannot be sent to LPC1768 is that TTL-USB cannot use - 3V.

I do not think that this statement is correct or relevant to our case here since this very much depends on the electrical layout of the board and the used components like level shifters, logical buffers etc.

Have you tried to use the direct UART connection:

  • Compile for UART P0.3/P0.2
  • Connect:
Pi GPIO Function Board
6 GROUND GND
8 TX->RX RX0
10 RX<-TX TX0

Reading through this, I think there needs to a reset on what “RS-232” is and why you’re looking in the wrong direction. It is highly unlikely that the board you have is working with what is now called a “UART”, although the more correct term would be “NRZ serial” which works with traditional logic levels.

RS-232 is something of an ancient standard that goes back to literally the 1950s and uses, common for the day, much higher voltage swings (with one side negative as in the referenced quote) than would be contemplated today. It was very commonly used in the 1980s and started fading out in the 1990s with the advent of USB with it being almost unheard of today except in industrial settings. It also uses a connector that which is quite unique for today and will look something like:

I can’t find any references to any 3D printer controllers that have RS-232 on them and, I’m very certain something going back to 2018 would not have an RS-232 interface.

Now, I’m confused about your original description as you say the board has an LPC1768 on it and this has a built in USB but you say there is a USB interface and “convert UART to USB”. How do you know this is the case?

The schematic link you attached to a recent post (TFT28-SCH.pdf) does have the letters “RS232” attached to J1 but I can assure you that it’s not RS-232, it’s a UART with only positive logic levels.

It sounds like you’ve burned Klipper into your 2018 LPC1768 controller board but cannot connect to your controller. Can you confirm that this is correct and please describe (ideally with pictures) how you are trying to connect the two systems. What are you using as the printer controller (Raspberry Pi or other), are you connecting using USB or a UART and what is the wiring?

The confusion is chatGPT. It can only give answers according to the question.
@Elect: To make a long story short

  • RS-232 and serial TTL are both serial protocols, i.e. one data bit after the other
    • RS-232 range from 3V to 15V but in both directions, e.g. -13V to +13V
    • Serial TTL ranges from 0V to VCC, which can be either 3.3V or 5V in typical modern TTL electronics
  • UART (Universal Asynchronous Receiver-Transmitter) is strictly speaking a piece of hardware that speaks such a serial protocol
  • USB to TTL is again a piece of hardware that translates from the much more complex USB protocol to the simple serial protocol (always in both directions)

Nowadays RS-232 is quite seldom, the older folks amongst us remember it from the beginning of the internet where the first modems were attached via RS-232 (hell, am I really that old?!?)

On the 3D printers I have never seen it.

1 Like