Reviving this old thread as I'm trying to use [pdcontrol] and [slop~] which are not part of Pd-0.48-2, which is the Pd version my Bela comes with. Has Pd been updated? Am I running an old image (it's quite some when I last tried to use my Bela)?
How can I update?
It's funny that when I SSH into the Bela, I can't find any Pd executable. I know it's working with LibPd, but I thought that Pd would be there.
Any hints are welcome.

giuliomoro I just did an update on my Bela, but I'm still getting 0-48-2. I updated my Bela from the IDE. Is there something I need to do in the terminal as well?

can you show the content of the "version details" dialog, accessible via the the "other system functions" section of the IDE preferences?

    giuliomoro Hm, there's doesn't seem to be such an option in "other system functions". Perhaps the IDE needs an update as well? Is there something I can do in the terminal?

    Then I guess the update didn't go well , as the IDE should have been updated, too, as part of the procedure. Can you retry the update and report here any messages that are produced in the process?

    giuliomoro I tried to update the board with the script, and this is the output:

    DATE=2023-12-17T13:40:41Z
    FILENAME=Bela-master
    METHOD=update_board
    Checking the board is up and running at root@192.168.7.2...Warning: Permanently added '192.168.7.2' (ED25519) to the list of known hosts.
    done
    Board found at root@192.168.7.2
    Updating the Bela core code in root@192.168.7.2:/root/Bela
    All the changes to the CORE files in the remote folder /root/Bela will be LOST. The content of these files/folders will be lost:
      core include Makefile Makefile.libraries Makefile.linkbela examples Doxyfile scripts resources pru libraries 
    Your projects stored in /root/Bela/projects should be safe (and surely you have already backed them up somewhere safe, haven't you?).
    Are you sure you want to continue? (y/N) y
    Updating Bela core files to remote folder /root/Bela
    Stopping Bela...done
    Updating files...done
    Scope
    Using library Scope
    Using library WSServer
    Using library ne10
    Midi
    Using library Midi
    Gui
    Using library Gui
    Using library WSServer
    Trill
    Using library Trill
    Pipe
    Using library Pipe
    make: Entering directory '/root/Bela/resources/tools/bela-cape-btn'
    gcc bela-cape-btn.c -o bela-cape-btn
    bela-cape-btn.c: In function 'run':
    bela-cape-btn.c:420:22: error: 'pfd' undeclared (first use in this function)
        int result = poll(pfd, 1, pollTime);
                          ^~~
    bela-cape-btn.c:420:22: note: each undeclared identifier is reported only once for each function it appears in
    Makefile:26: recipe for target 'bela-cape-btn' failed
    make: *** [bela-cape-btn] Error 1
    make: Leaving directory '/root/Bela/resources/tools/bela-cape-btn'
    
    An error occurred.

    Then I updated the IDE with the script and it worked fine. Version details gives me this:

    Image:
    Unknown
    
    Core code:
    Last attempted update on '17 Dec 2023 15:32:18 '
    via 'make update (legacy)'
    
    Git desc: '60b39c7-dirty'

    Trying to update the board through the IDE now fails with this:

    Upload completed, saving update file...
    unzipping and validating update...
    Validating archive...
    uncompressed size: 109452571
    Unzipping archive...
    Validating unzipped archive...
    ...done
    Applying update...
    No process to kill
    Copying /root/Bela to /tmp/belaPatch ...
    Applying patch in /tmp/belaPatch...
    Makefile:760: recipe for target 'update' failed
    make: *** [update] Error 1
    Error updating the board: `Error: make update failed with code 2`. Please try a different zip archive

    giuliomoro I flashed the Bela image to an SD card (Balena Etcher kept on failing and I had to do it from the terminal, on an 8 GB SD), and following the instructions here (https://learn.bela.io/using-bela/bela-techniques/managing-your-sd-card/#flash-an-sd-card-using-balena-etcher) I booted the board from the SD card using jumper wires, and it booted fine. What's next though? I updated Bela from the IDE, but I think the image was updated on the SD card instead of the on-board eMMC, is that correct?
    When I booted again without the SD card, I got the following, when trying to build my project:

    Building FormatConvert.S...
     ...done
    Building OscillatorBank_routines.S...
     ...done
    Building math_runfast.c...
     ...done
    Building I2c_Codec.cpp...
    Building project ...
    Building I2c_Codec.cpp...
     ...done
    Building BelaContextFifo.cpp...
     ...done
    Building Mmap.cpp...
     ...done
    Building RTAudio.cpp...
     ...done
    Building RTAudio.cpp...
     ...done
    Building Tlv320_Es9080_Codec.cpp...
     ...done
    Building Tlv320_Es9080_Codec.cpp...
     ...done
    Building pru/pru_rtaudio.p...
     ...done
    Building pru/pru_rtaudio_irq.p...
     ...done
    Building pru/pru_rtaudio_irq.p...
     ...done
    Building PruBinary.cpp...
     ...done
    Building RTAudioCommandLine.cpp...
    mv: 
    cannot stat 'pru_rtaudio_irq_bin.h': No such file or directory
    make: *** [build/pru/pru_rtaudio_irq_bin.h] Error 1
    Makefile:501: recipe for target 'build/pru/pru_rtaudio_irq_bin.h' failed
    error setting project to run on boot!
     ...done
    Building Mcasp.cpp...
     ...done
    Building AuxTaskNonRT.cpp...
     ...done
    Building JSONValue.cpp...
     ...done
    Building board_detect.cpp...
     ...done
    Building AuxiliaryTasks.cpp...
     ...done
    Building PRU.cpp...
     ...done
    Building DataFifo.cpp...
     ...done
    Building AuxTaskRT.cpp...
     ...done
    Building I2c_MultiI2sCodec.cpp...
     ...done
    Building GPIOcontrol.cpp...
     ...done
    Building I2c_MultiTLVCodec.cpp...
     ...done
    Building PruManager.cpp...
     ...done
    Building MiscUtilities.cpp...
     ...done
    Building I2c_MultiTdmCodec.cpp...
     ...done
    Building Spi_Codec.cpp...
     ...done
    Building Gpio.cpp...
     ...done
    Building Es9080_Codec.cpp...
     ...done
    Building BelaContextSplitter.cpp...
     ...done
    Building DigitalChannelManager.cpp...
     ...done
    Building IirFilter.cpp...
     ...done
    Building JSON.cpp...
     ...done
    Building default_main.cpp...
     ...done
    Building default_libpd_render.cpp...
    Makefile:475: recipe for target 'build/core/default_libpd_render.o' failed
    Build finished
    In file core/default_libpd_render.cpp: no matching function for call to 'sys_doio' column: 7, line: 798
    core/default_libpd_render.cpp:798:7: error: no matching function for call to 'sys_doio'
                    if(!sys_doio(pd_this))
                        ^~~~~~~~
    /usr/local/include/libpd/s_stuff.h:168:6: note: candidate function not viable: requires 0 arguments, but 1 was provided
    void sys_doio();
         ^
    1 error generated.
    make: *** [build/core/default_libpd_render.o] Error 1

    How do I update to the latest master with the SD card? Or should I always boot from the SD card? I'd rather not, if it's possible.

    Once you boot your board with jumper wires, follow the instructions in "Flashing the eMMC" here to flash the emmc.