What's new
VORON Design

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members!

BigTreeTech Octopus V1.0 and V1.1 Information

Starfleet42

Member
Starting a thread here to aggregate the places I have found that have helpful information about the BIGTREETECH Octopus V1.0/1.1 Mainboard. I hope this will help others as well. If you also have helpful links, please add them to the thread, and I can add them to this post!


 
Last edited:
What are the capabilities of the built in CAN bus port? Can it be used as a host like a pi CAN hat or only as a 'device'? Is anyone here using that port?
Been looking for a little bit and I believe so far I haven't found any (klipper) examples specifically for the octopus, also not on their github or in the manual, it's only mentioned in passing as an available interface.

Bought an octopus because I dropped a screw and blew up another board :LOL: so I already have a CAN hat for my pi and I don't really need this, but I was just wondering.
 
Unfortunately, I'm not familiar with what the CAN bus on Octopus can do, but I don't think their firmware is capable of using it yet?
 
What are the capabilities of the built in CAN bus port? Can it be used as a host like a pi CAN hat or only as a 'device'? Is anyone here using that port?
Been looking for a little bit and I believe so far I haven't found any (klipper) examples specifically for the octopus, also not on their github or in the manual, it's only mentioned in passing as an available interface.

Bought an octopus because I dropped a screw and blew up another board :LOL: so I already have a CAN hat for my pi and I don't really need this, but I was just wondering.
If you install CANboot on it you can add the Octopus on the CAN bus as a device or even as a bridge, in this way you don't need any additional board to control other CAN devices. However, there were reports on the Discord server that on this configuration you need a pretty powerful computer running Klipper, since it has to convert all the transmitted data into the proper CAN data package format, and this can be very consuming in computational power depending on which configurations you have (like stepper motors microsteps, etc). You either need a Raspberry Pi 4 or a full fledged computer for that.
 
I have a Trident with Octopus. Just got some RGB LED strips to do case lighting. Is it possible to have three strips on different pins so they can do different patterns (if I wanted), PLUS have a rainbow LED on Stealthburner? Which pins can/should I use? Also ... the "nozzle" white LEDs on Stealthburner - are those RGB or plain white? (about to move from Afterburner so I'm not quite sure how that all works)
 
Starfleet42, Thanks for this thread. I'm to the point in my build to setup and get ready my Raspberry Pi, BigTreeTech Octopus. I am sure your thread will save me time and frustration.

I'm good with Marlin and compiling, but haven't ventured into the world of Klipper, but expect I need to for my Voron build. I am hoping this old dog can learn a new trick, being Klipper.
 
Last edited:
I have a Trident with Octopus. Just got some RGB LED strips to do case lighting. Is it possible to have three strips on different pins so they can do different patterns (if I wanted), PLUS have a rainbow LED on Stealthburner? Which pins can/should I use? Also ... the "nozzle" white LEDs on Stealthburner - are those RGB or plain white? (about to move from Afterburner so I'm not quite sure how that all works)
I have two WS2812B (neoPixel) strips as case lighting connected to the BL-Touch port on the Octopus and the SB LEDs on the LED port. I have the case strips daisy-chained together. Using the julianschill library, you can easily define each strip as separate segments and set up the effects for each section. I also just ran across the West3D video showing how you can run the Rainbow Barf RGB LED along with the BOM RGBW ones in one string; I'm going to be updating my tool head to do that.
 
However, there were reports on the Discord server that on this configuration you need a pretty powerful computer running Klipper, since it has to convert all the transmitted data into the proper CAN data package format, and this can be very consuming in computational power depending on which configurations you have (like stepper motors microsteps, etc). You either need a Raspberry Pi 4 or a full fledged computer for that.
Is this still true. The official klipper doku states different, a the mcu seems not consume the can bus bandwidth.
 
I use the Octopus in "USB to CAN bus bridge" mode.
As far as I can tell the cpu usage is not a lot higher with Octopus in "USB to CAN bus bridge" compared to "USB" mode.
A couple of percent more, if anything.

My processor is an Intel Celeron N2807 1.58GHz, I think it has about the same processing power as a Raspberry Pi 4.

Notes:
The "USB to CAN bus bridge" mode makes the Octopus serial (usb) connection disappear and all communication with Octopus (and with the toolhead EBB36 of course), are now sent as CAN messages over the "can0" network interface.

This means that my [mcu] section in printer.cfg now looks almost identical to the [mcu toolhead] section for the EBB36, with a line "canbus_uuid:" instead of "serial:".
The uuid is found with: ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0

I took some CPU meter readings from Mainsail --> Machine --> System Loads --> Host
CPU usage with Octpous as CAN bridge, where all commands (Octopus and EBB36) are sent as CAN messages.
* During printing at moderate speeds: Some 8-20%, it mostly hovers around 10-15%
* During QUAD_GANTRY_LEVEL, one of the more cpu taxing commands: 30% or lower

With Octopus in "USB" mode and an external CAN bridge (BTT U2C) for the toolhead mcu it used to be about 25% or lower during QUAD_GANTRY_LEVEL.
When printing maybe a couple of percent lower cpu usage than with the Octopus in "USB to CAN bus bridge" mode.
Or it could be measurement error, or just coincidence.


Another note:
Today I found a "How to Use CAN Toolhead Boards Connected Directly to Octopus" guide.
I haven't used it myself and I don't know if it's any good, but I thought it could be of interest regardless:
 
Last edited:
I use the Octopus in "USB to CAN bus bridge" mode.
As far as I can tell the cpu usage is not a lot higher with Octopus in "USB to CAN bus bridge" compared to "USB" mode.
A couple of percent more, if anything.

My processor is an Intel Celeron N2807 1.58GHz, I think it has about the same processing power as a Raspberry Pi 4.

Notes:
The "USB to CAN bus bridge" mode makes the Octopus serial (usb) connection disappear and all communication with Octopus (and with the toolhead EBB36 of course), are now sent as CAN messages over the "can0" network interface.

This means that my [mcu] section in printer.cfg now looks almost identical to the [mcu toolhead] section for the EBB36, with a line "canbus_uuid:" instead of "serial:".
The uuid is found with: ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0

I took some CPU meter readings from Mainsail --> Machine --> System Loads --> Host
CPU usage with Octpous as CAN bridge, where all commands (Octopus and EBB36) are sent as CAN messages.
* During printing at moderate speeds: Some 8-20%, it mostly hovers around 10-15%
* During QUAD_GANTRY_LEVEL, one of the more cpu taxing commands: 30% or lower

With Octopus in "USB" mode and an external CAN bridge (BTT U2C) for the toolhead mcu it used to be about 25% or lower during QUAD_GANTRY_LEVEL.
When printing maybe a couple of percent lower cpu usage than with the Octopus in "USB to CAN bus bridge" mode.
Or it could be measurement error, or just coincidence.


Another note:
Today I found a "How to Use CAN Toolhead Boards Connected Directly to Octopus" guide.
I haven't used it myself and I don't know if it's any good, but I thought it could be of interest regardless:
I'll include your link on the original post!
 
Top