Ender 5 and Creality Sonic Pad

Hi !

I want to know if someone have tried to configure an ender 5 (classic) with a Creality Sonic Pad. And if it is easy ? I changed my motherboard for a silent one (v1.1.5).
Sorry I’m not an expert in 3D printer domain but I’m really interested in printing faster :slight_smile:
I saw that it is compatible with every ender 5 models except the classic one (or it is not mentioned).
So if it is not difficult to adapt it with my printer I will buy one.

Thanks.

P.S : sorry for my english … I’m french

See

2 Likes

There’s a good chance you’re going to have problems if you go with the Sonic Pad.

The Sonic Pad generally sets up and runs without problems if you have ALL original Creality hardware. I believe the “Silent board 1.1.5” is also known as the 4.2.7:

Now, having said that, there seems to be an unusual number of problems with the Sonic Pad on the Ender 5 compared to other Creality models. I helped a poor fellow out with an Ender 5 (I don’t know which controller board he had) a few months ago in setting up a Sonic Pad and we did get it working reasonably well, it still fails with a “Webhooks” error once every week or so, but to get to this point it took a lot of work and USB cables with clip on common mode chokes.

To be fair, Ender 3s and the Sonic Pad seem to work really well with few problems reported.

I’ve helped five people to get their Sonic Pads working and have only had one instance where it was completely reliable afterwards. I think there is a problem with how (at least one of) the USB ports are designed/wired.

Hi

Thanks for your reply. Because i’m not an expert, I will not buy it as I thought. I prefer a plug’n play system. Or juste minor changes to do.
Maybe a firmware update in the future will help me.

Thanks again.

Setting up Klipper on a Raspberry Pi is not that difficult and there is a plethora of instructions out there that you can use.

I know that they’re hard to get/expensive and I’m waiting on getting my hands on a couple of CB1s to see how they work.

https://www.aliexpress.com/item/1005004477705287.html

I have CB1s on both of my printers. They have hundreds of hours of print time between them with zero issues. I should note some people have had problems with wifi, but mine are wired to ethernet so I have no experience with the wifi.

1 Like

When you use your CB1s, how do you:

  1. Set their URLs to something other than `http://btt-cb1.hitronhub.home’? This is needed to have multiple installations working simultaneously.
  2. Change their primary user to something other than biqu with the password biqu? This is a security concern.

I’ve used one on one of my printers for a month or so and it’s pretty rock solid when you get them connected to your network (either use a direct connection or use the direct connection to set the WiFi using sudo nmcli dev wifi connect [ssid] password "[password]"). I found changing the SSID/password in the config file after imaging the SD Card to be pretty hit and miss.

The CB1 are officially supported by the Armbian Project and BTT seems to sponsor it.
Judging from this, I would think that

  • you could either use the default Armbian image: BIGTREETECH CB1 – Armbian
  • the current image released by BTT also already is Armbian based

Change it as you would change the hostname in any Linux. Not sure if the armbian-config even offers this

Not sure if BTT published the root password but also without you should be adble to

sudo su #switch to root
useradd -m my_great_new_user # create user with home dir
passwd my_great_new_user # Set password for the new user. You can also use `passwd biqu` to change this
usermod -a -G spi my_great_new_user # add user to the SPI group
usermod -a -G i2c my_great_new_user # add user to the I2C group
usermod -a -G dialout my_great_new_user # add user to the dialout group
usermod -a -G gpio my_great_new_user # add user to the gpio group

This should all be pretty standard Linux admin stuff.

Disclaimer: Typed from top of my head. Verify this crap

Edit: armbian-config definitively is able to manage WIFI so this should be quite easy if you do not feel too comfortable with managing Linux on the CLI

Edit 2: Added password changing to the commands

I’m just working with the BTT image.

I’ve tried following the standard Linux Hostname change:

Without any joy.

Similarly with trying to change the primary userID.

Thanx, I’ll try the Armbian minimal image and see if that works better.

Typically two files need to be edited: /etc/hostname (or hostnamectl set-hostname <name-here>) and /etc/hosts (find all references to the old hostname, there can be more than one).
Also you can try if the armbian-config command is available in the BTT image (it should if based on Armbian)

Honestly, I’d just add a new user and then potentially delete the old one. If doing so, do not forget to grant the new user sudoer rights.

I’ll just confirm what @Sineos posted here. I’ve changed the default hostnames on both to something else, and I believe I just edited the 2 files mentioned. As for the user name, I’m not concerned about using the default as none of my printers are exposed to the internet (I use VLANs to segregate my network).

Sorry, what are the two files that were mentioned? This is just for the hostname, correct?

Look at the post above mine.

Just tried Armbian and ran into a problem because I can’t get pyserial (for Katapult) installed as Armbian doesn’t seem to work with python3.

The setup is a bit better than BTT’s CB1 but still leaves a bit to be desired.

@jakep_82 sorry, which “post above” yours are you referring to?

Are you for real?

I use the BTT minimal image and install everything with KIAUH. I’m running python3 and I have more than a thousand hours of print time between the two printers with zero issues. All of my future printers will use Manta boards with a CB1 because they’re affordable and they just work for me.

Thanx for pointing it out.

As I pointed out I tried hotnamectl with it not being reliable. I’ll look for all instances of the host name in the system and see if that does the trick.

As for the root login/password I’m still looking for how to change that on the CB1 (I know you don’t worry about that).

Python3 (along with Klipper & Katapult) runs fine on the BTT image but not on Armbian. I’m not having any issues with it at all. Actually the CB1 works really well and the price is decent; I just wish it was as customizable as the CM4.

Thanx for the reply.

Sorry, but this must be on your side. I’m running Klipper with Armbian for quite long on different SBCs and can fully confirm that it is working, including pyserial.

It does not matter which “Debian flavor” you are using, e.g. PiOS, MainsailOS, Armbian for Banana Pi or Armbian for CB1 → They all rely on the main Debian package sources, maybe with some minor additions (especially the RPi targetd ones). Of course there are differences, whether it is based on Buster, Bullseye or Bookworm.

klipper@bananapim5:~$ apt-cache search pyserial
python3-serial - pyserial - module encapsulating access for the serial port
python3-serial-asyncio - Async I/O extension package for pyserial
klipper@bananapim5:~$ apt policy python3-serial
python3-serial:
  Installed: 3.5~b0-1
  Candidate: 3.5~b0-1
  Version table:
     3.5-1.1~bpo11+1 100
        100 http://deb.debian.org/debian bullseye-backports/main arm64 Packages
        100 http://deb.debian.org/debian bullseye-backports/main armhf Packages
 *** 3.5~b0-1 500
        500 http://deb.debian.org/debian bullseye/main arm64 Packages
        500 http://deb.debian.org/debian bullseye/main armhf Packages
        100 /var/lib/dpkg/status
klipper@bananapim5:~$

Also, changing hostnames or adding / editing users works the same for all of them. In the end it is “just Linux”

Okay, just get everything loaded.

After loading in Klipper, Moonraker, Mainsail and then Katapult onto the CB1 running Armbian, I try to run pip3 install pyserial with the following results:

biqu@bigtreetech-cb1:~$ pip3 install pyserial
Command 'pip3' not found, but can be installed with:
sudo apt install python3-pip

Okay, then do sudo apt install python3-pip and things seem to go okay:

sudo apt install python3-pip
biqu@bigtreetech-cb1:~$ sudo apt install python3-pip
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  python3-setuptools python3-wheel
Suggested packages:
  python-setuptools-doc
The following NEW packages will be installed:
  python3-pip python3-setuptools python3-wheel
0 upgraded, 3 newly installed, 0 to remove and 2 not upgraded.
Need to get 1,877 kB of archives.
After this operation, 9,566 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://deb.debian.org/debian bookworm/main arm64 python3-setuptools all 66.1.1-1 [521 kB]
Get:2 http://deb.debian.org/debian bookworm/main arm64 python3-wheel all 0.38.4-2 [30.8 kB]
Get:3 http://deb.debian.org/debian bookworm/main arm64 python3-pip all 23.0.1+dfsg-1 [1,325 kB]
Fetched 1,877 kB in 2s (1,182 kB/s)
Selecting previously unselected package python3-setuptools.
(Reading database ... 37662 files and directories currently installed.)
Preparing to unpack .../python3-setuptools_66.1.1-1_all.deb ...
Unpacking python3-setuptools (66.1.1-1) ...
Selecting previously unselected package python3-wheel.
Preparing to unpack .../python3-wheel_0.38.4-2_all.deb ...
Unpacking python3-wheel (0.38.4-2) ...
Selecting previously unselected package python3-pip.
Preparing to unpack .../python3-pip_23.0.1+dfsg-1_all.deb ...
Unpacking python3-pip (23.0.1+dfsg-1) ...
Setting up python3-setuptools (66.1.1-1) ...
Setting up python3-wheel (0.38.4-2) ...
Setting up python3-pip (23.0.1+dfsg-1) ...
Processing triggers for man-db (2.11.2-2) ...

So with Python3-pip installed (which seems to match the instructions I get when I research the issue), I try pip3 install pyserial again:

biqu@bigtreetech-cb1:~$ pip3 install pyserial
error: externally-managed-environment

× This environment is externally managed
mq> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

So, I take a gander at /usr/share/doc/python3.11/README.venv which tells me to install the package using the instructions:

e.g. instead of running:
$ pip install --user foo
run:
$ mkdir -p ~/.venvs
$ python3 -m venv ~/.venvs/foo
$ ~/.venvs/foo/bin/python -m pip install foo

Okay, the first command goes okay, but the second (python3 -m venv ~/.venvs/pyserial) fails and suggests that I run apt install python3.11-venv which executes as:

biqu@bigtreetech-cb1:~$ apt install python3.11-venv
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?

So, the obvious solution (to me) is to run sudo apt install python3.11-venv which seems to run okay:

biqu@bigtreetech-cb1:~$ sudo apt install python3.11-venv
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  python3.11-venv
0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
Need to get 5,892 B of archives.
After this operation, 28.7 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bookworm/main arm64 python3.11-venv arm64 3.11.2-6 [5,892 B]
Fetched 5,892 B in 0s (38.9 kB/s)
Selecting previously unselected package python3.11-venv.
(Reading database ... 38585 files and directories currently installed.)
Preparing to unpack .../python3.11-venv_3.11.2-6_arm64.deb ...
Unpacking python3.11-venv (3.11.2-6) ...
Setting up python3.11-venv (3.11.2-6) ...

So I go back to python3 -m venv ~/.venvs/pyserial which seems to run (at least I don’t get any errors) followed by:

biqu@bigtreetech-cb1:~$ ~/.venvs/pyserial/bin/python -m pip install pyserial
Collecting pyserial
  Downloading pyserial-3.5-py2.py3-none-any.whl (90 kB)
     qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq 90.6/90.6 kB 566.5 kB/s eta 0:00:00
Installing collected packages: pyserial
Successfully installed pyserial-3.5

Looks good, so I go back and follow my process that I use to test Katapult load (this is the process I’ve used for testing Sineos’ bash script) and everything runs fine until I get to executing:

ls /dev/serial/by-id/
python3 ~/Katapult/scripts/flash_can.py -d /dev/serial/by-id/- MCU Serial from previous

At which point I get:

biqu@bigtreetech-cb1:~$ python3 ~/Katapult/scripts/flash_can.py -d /dev/serial/by-id/usb-katapult_stm32f446xx_30001A000A50315939343520-if00
ERROR:root:Flash Error
Traceback (most recent call last):
  File "/home/biqu/Katapult/scripts/flash_can.py", line 538, in run
    import serial
ModuleNotFoundError: No module named 'serial'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/biqu/Katapult/scripts/flash_can.py", line 635, in main
    loop.run_until_complete(sock.run(args.device, args.baud, fpath))
  File "/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/biqu/Katapult/scripts/flash_can.py", line 540, in run
    raise FlashCanError(
FlashCanError: The pyserial python package was not found.  To install run the following command in a terminal:

   pip3 install pyserial

So, I run pip3 install pyserial again and get:

biqu@bigtreetech-cb1:~$ pip3 install pyserial
error: externally-managed-environment

× This environment is externally managed
mq> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

I’m not sure what to do next as I’m clearly stuck in a loop. It looked like pyserial was properly installed (above) but clearly it wasn’t.

Suggestions?

Yes, make your life easy and issue sudo apt install python3-serial
I’d anyway recommend to install Python packages via apt instead of pip when they are available as apt packages.
All the stuff with the venv above is definitively the completely wrong approach, since you want to have pyserial globally available in the main OS and not in an isolated venv.

Sure, I’ll try that. Thanx.