1. Got a question or need help troubleshooting? Post to the troubleshooting forum or Search the forums!

Repurposing Pirate3d Buccaneer

Discussion in 'Off Topic' started by milw, Jul 29, 2017.

  1. mobilephase

    mobilephase New Member

    Joined:
    Feb 27, 2019
    Messages:
    4
    Likes Received:
    1
    Yea, so far every test print has resulted in the printer resetting before the print starts, also in octoprint I set XYZ to inverted due to the home button made the head travel in the wrong direction
     
  2. racer

    racer New Member

    Joined:
    Dec 23, 2017
    Messages:
    29
    Likes Received:
    6
    ok, atleast the bug is consistent...

    I was worried that I might have damaged my printer whilst reverse engineering the pcb with my probes.
     
  3. mobilephase

    mobilephase New Member

    Joined:
    Feb 27, 2019
    Messages:
    4
    Likes Received:
    1
    In the configuration.h file you have the baudrate set to 38400, in octoprint using 19200, my setup is using your uploaded hex file so I did not compile myself, would thing cause the error?
     
  4. mobilephase

    mobilephase New Member

    Joined:
    Feb 27, 2019
    Messages:
    4
    Likes Received:
    1
    Here is the error from my serial log, it looks like the printer is getting a start command a second time and then resetting.

    2019-02-27 22:07:45,772 - Send: N37 G1 X77.578 Y56.58 E0.57688*102
    2019-02-27 22:07:45,778 - Recv: ok T:201.22 /200.00 @:0
    2019-02-27 22:07:45,787 - Send: N38 G1 X78.151 Y57.123 E0.59173*88
    2019-02-27 22:07:49,422 - Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
    2019-02-27 22:07:49,446 - Send: N39 M105*29
    2019-02-27 22:07:50,076 - Recv: starstart
    2019-02-27 22:07:50,093 - Recv: echo: Watchdog Reset
    2019-02-27 22:07:50,160 - Recv:
     
  5. racer

    racer New Member

    Joined:
    Dec 23, 2017
    Messages:
    29
    Likes Received:
    6
    What I think happens is that the AtMega 1684 resets and that this causes the communication time out. My suspicion is that the reset is caused by a safety trigger in the Marlin Firmware somehow.
     
  6. Dragonsquirrel

    Dragonsquirrel New Member

    Joined:
    Aug 24, 2018
    Messages:
    3
    Likes Received:
    4
    I wonder if the resets are related to why Buccaneer came up with their slightly crazy 4 byte checksum, because apparently without it, they couldn't maintain reliable serial comms with the atmega board during printing. Rather than fix the issues with the board design to prevent the data corruption, they added a more robust checksum, and software handshaking on top of the normal gcode usage.

    Anyways, looks like you are seeing Octoprint say that Marlin sent that it just performed a watchdog reset. That's a feature in marlin designed to check if the atmega has gone loopy, and stopped processing code.. In theory you could stop it performing a watchdog reset by undefining USE_WATCHDOG but in practice remember that doing this could lead to the atmega crashing while doing something important, like temperature regulation, which could lead to flames and other excitement.

    Definitely keeping an eye on your progress tho =) My own attempts to run octoprint on it with stock atmega firmware are paused at the mo as I have to work on other stuff. I had octoprint able to send the right checksums, but the printer would get ahead of itself, hinting that perhaps their firmware expects the client to wait in some circumstances before transmitting the next command, where as octoprint wanted to keep sending until the printer yelled uncle. I didn't dig too much deeper but it would have meant adding a per gcode wait for required response approach to keep the flow of data steady as per the original buccaneer app.
     
    racer likes this.
  7. Pratik

    Pratik New Member

    Joined:
    Nov 18, 2019
    Messages:
    1
    Likes Received:
    0
    Hi guys, thanks for the instructions. When I try this, OctoPrint gets stuck on "connecting" but never connects.
    Here is the terminal:
    Recv: �Z���Z*
    Recv: �\x1b���Z*\x0b�j���Z+Recv: �����Z*\x0b�j���Z*\x0b�+���Z*\x0b�j���Z*\x0b�;���Z*\x0b�z���Z*Recv: �\x1b���Z*No answer from the printer within the connection timeout, trying another helloSend: N0 M110 N0*125There was a timeout while trying to connect to the printerChanging monitoring state from "Connecting" to "Offline"Connection closed, closing down monitor

    Any idea how to fix it?

    UPDATE: I think I found the problem: I never uploaded the marlin firmware. However, I don't see how I can get avrdude to install the file, as it is on my laptop and not the printer? Help would be appreciated. Thanks.
     
    #87 Pratik, Nov 21, 2019
    Last edited: Nov 21, 2019
  8. racer

    racer New Member

    Joined:
    Dec 23, 2017
    Messages:
    29
    Likes Received:
    6
    You need to install avrdude on the Cubieboard of the buccaneer, transfer the firmware to the Cubieboard and than flash the ATMEL chip from the Cubieboard

    Instructions are posted in this thread on page 4
     
  9. racer

    racer New Member

    Joined:
    Dec 23, 2017
    Messages:
    29
    Likes Received:
    6
    **** BREAKING NEWS ****

    I've got an updated version of the firmware based on Marlin 2.0. It seems to work fine, no more funny resets. I think I made a mistake in the end-stop definition of the previous firmware .hex file resulting in the Buccaneer resetting unexpectedly.

    As the system prevents uploading hex files, I've added a .txt extension. After downloading the file, just remove the .txt extension (leaving .hex at the end of the filename) and upload the firmware to the buccaneer.
     

    Attached Files:

    #89 racer, Dec 29, 2019
    Last edited: Dec 29, 2019
    mark tomlinson likes this.
  10. racer

    racer New Member

    Joined:
    Dec 23, 2017
    Messages:
    29
    Likes Received:
    6
    For those that would like to make the changes to Marlin 2.0 you can use my files.

    Steps that you need to take to add the BUCCANEER Logic Board 1.0 Rev C PRD to Marlin 2.0 (= original board in the BUCCANNEER):

    1) add pins_BUCCANEER.h to the following folder..\Marlin-2.0.x\Marlin\src\pins\sanguino\
    2) add the following line to boards.h , the file can be found in ..\Marlin-2.0.x\Marlin\src\core\

    after the line in boards.h :
    #define BOARD_ANET_10 1509 // Anet 1.0 (Melzi clone)
    add the following line:
    #define BOARD_BUCCANEER 1510 // BUCCANEER

    3) Replace the Configuration.h file with the one below
    4) Replace the Configuration_adv.h with the one below

    After that, compile Marlin and upload the hexfile to the Buccaneer, than flash the hex file with AVR dude.
     

    Attached Files:

    fajarhto and mark tomlinson like this.

Share This Page