Hi Chordata Team!

So I soldered up all the boards today and moved onto to the software installation and I’ve run into some confusion/roadblocks:

At first, I was following the User Manual on the wiki:
https://wiki.chordata.cc/wiki/User_Manual/1.Chordata_parts/1.1.Microcomputer

The “Flash the SD Card” section stated that there was a custom Chordata linux Raspian image, but it doesn’t appear to be on the downloads page.

So, I went over to the GitHub page and followed the instructions there: https://gitlab.com/chordata/notochord

I got about as far as the G++ step, but when I tried to install Boost I got this message:

Package libboost1.54-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or is only available from another source

E: Package ‘libboost1.54-dev’ has no installation candidate.

Does the Read Me need to be updated in order to install Boost?

Also, I’m unclear about what to do with the Notochord files I downloaded from GitHub. I flashed an SD card with Raspbian Stretch Lite. Do I also drag and drop the Chordata_notochord_v0_1_0a folder onto the card? Or should I do this with the develop branch?

Lastly, has the calibration process been optimized? If not, would you be able to make a short video or a guide with images about how to move in order to calibrate the sensors? Reading the instructions on GitHub, I’m somewhat unclear about what I’m supposed to do. Also, is this a one time initial calibration, or is this a process I’ll have to repeat whenever I secure the sensors to an actor?

Thanks!

    Hi!
    The “Flash the SD Card” contained misleading information, sorry about that.
    At the moment the custom linux image is not ready. Instead cloning the sources from gitlab and compiling the notochord yourself is the way to go.

    I've updated the information on the page you mentioned (https://wiki.chordata.cc/wiki/User_Manual/1.Chordata_parts/1.1.Microcomputer) and on the gitlab's README.
    (by the way, during the beta period the active branch is develop. I guess you already figured that out)

    Now you should be able to complete the compilation following those steps. Let me know if everything goes right for you.

    I'm now working on the calibration page..

    AxonSpark Lastly, has the calibration process been optimized? If not, would you be able to make a short video or a guide with images about how to move in order to calibrate the sensors? Reading the instructions on GitHub, I’m somewhat unclear about what I’m supposed to do.

    I've updated the guide on the wiki. I know it is not a simple process, but as of today we won't be able to make a video.
    Let me know if these instructions make sense to you.

    https://wiki.chordata.cc/wiki/User_Manual/4._Sensor_calibration

    AxonSpark is this a one time initial calibration, or is this a process I’ll have to repeat whenever I secure the sensors to an actor?

    The procedure described on the article I linked here is the initial sensor calibration. It has to be done only once, before start using the sensors for the first time (or whenever you move to a place with a significantly different magnetic profile).
    Making this calibration right is essential to get an accurate capture later, so make sure it is done correctly before moving on to the capture part.

    The other calibration (called in-pose calibration) has to be repeated before every capture session.

    I'm making progress, but have hit a few more snags:

    When installing Octave-dev, 7 files were not able to be fetched:

    And unfortunately, the suggested commands for fixing this didn't seem to help.

    So when I ran the debugging command, I got a fatal error:

    Do you have any suggestions on how to fix this?

    Lastly, my Rapberry Pi was initally telling me that "git" was a bad command. After some searching I found I needed to do some installing first:

    sudo apt-get install git

    It might be helpful for other beta testers if you added this to your instructions. :-)

      Hi!, glad to see thing are moving forward, you are almost there!

      AxonSpark When installing Octave-dev, 7 files were not able to be fetched:

      What version of raspbian are you using?, could you paste me the output of lsb_release -a?
      And did you update your package manager first?

      sudo apt update

      You can also try this one-line command, it will take care of cloning the repository, installing dependencies and do a minimal network configuration on your raspbian.

      bash <(curl -sL https://gitlab.com/chordata/notochord/raw/develop/install_notochord.sh)

      It was listed only on the wiki instructions, I've now also put it on the gitlab's README.
      And included installing git, as you suggested 👍

      Let me know how it goes

        daylanKifky I'll try those last two, but for now, here's what I got when I entered lsb_release -a:

        Distributor ID: Raspian
        Description: Raspbian GNU/Linux 9.4 (stretch)
        Release: 9.4
        Codename: stretch

        One more thing that might be helpful for the other beta testers:

        SSH is turned off by default in Raspian, and needs to be activated in order to access your Raspberry Pi via a terminal interface on your computer.

        To activate SSH, enter the command:

        sudo raspi-config

        Then select Interfacing Options>SSH>Yes>OK>Finish

        Type the command hostname -I to get your Pi's IP address.

        Now you can open up Terminal (on a Mac, not sure of the terminal program used on a PC), and type: ssh pi@<IP> and replace the <IP> with your Pi's IP address.

          Making more progress! So, I ran that one-line command...

          bash <(curl -sL https://gitlab.com/chordata/notochord/raw/develop/install_notochord.sh)

          ...and that it looks like everything installed correctly.

          After that though, I tried entering in the commands to run Notochord as shown on GitHub, but they didn't work.

          cd bin
          ./notochord <YOUR COMPUTER IP ADDRESS>

          However, here's what did work:

          cd notochord
          cd bin
          ./notochord <YOUR COMPUTER IP ADDRESS>

          And then Notochord starts up.

          I haven't gotten to the K-Ceptor calibration step yet (still need to re-solder the Hub LED and print out the box), but since a fair amount of changing/replacing Chordata.xml needs to happen, I thought I'd outline a way to do it that other beta testers might find useful (Note: I know some of this might seem obvious, but I'm a novice when it comes to the Raspberry Pi and some of the beta testers might be too).

          1 - Create/rename the requisite XML files for calibration and the full armature:
          -1 for K-Ceptor 0
          -1 for K-Ceptor 1
          -1 for K-Ceptor 2
          -1 unaltered XML for full the armature

          When transferring an XML over to the Raspberry Pi, copy the XML file and rename it to Chordata.xml. Then, transfer it to your Pi using the following method:

          Using a free FTP program (in this case, Cyberduck), go to Open Connection

          From the dropdown choose SFTP (SSH File Transfer Protocol).

          Enter the following data into the fields:

          Server: < YOUR PI’S IP ADDRESS>
          Port: 22
          Username: pi (or whatever your custom username is)
          Password: raspberry (or whatever your custom password is)

          Click Connect

          From here you can go into your notochord folder and replace the current Chordata.xml with your altered version(s) for calibration.

          Note for Software Development:

          It would be nice to have all of the needed XML files already in the Notochord program and command options when you run the program that ask what you want to do (eg. calibrate K-Ceptor 0’s, calibrate K-Ceptor 1’s, calibrate K-Ceptor 2’s, or load the whole armature), and then the program would use the appropriate XML file for the chosen function.

            Ok, I did a little more reading on the wiki and it looks like the instructions to run Notochord are correct in Chapter 2, just not on GitHub:

            cd notochord/bin
            ./notochord <CLIENT COMPUTER IP ADDRESS>

            However, I'm a bit confused about the XML files. In Chapter 4, the instructions say that Chordata.xml is used for calibrating the K-Ceptors, and you need to change the value in the XML file based on which K-Ceptors you're testing (0, 1, or 2). However, when it comes to the default biped armature configuration, the GitHub page says that you need to change Chordata.xml again with the listed code, but Chapter 2 says that you load the default biped armature using default_byped.xml. So, which xml file is used for the full biped armature?

            Also, I have the LED on the Hub soldered correctly now, and the calibration box built, so I should be ready to calibrate my K-Ceptors soon.

              Hey!

              AxonSpark SSH is turned off by default in Raspian, and needs to be activated in order to access your Raspberry Pi via a terminal interface on your computer.

              great observation! I included that here

              AxonSpark since a fair amount of changing/replacing Chordata.xml needs to happen, I thought I'd outline a way to do it that other beta testers might find useful

              Based on your descriptions I added some info on the Beta tester's guide

              AxonSpark It would be nice to have all of the needed XML files already in the Notochord program

              You are right, but the idea is to implement a Scan feature on the Notochord, which will allow us to make the calibration without having to describe the hierarchy on the XML. I'll give max priority to that.

              AxonSpark However, I'm a bit confused about the XML files

              I created a new section on the betateste's guide:
              https://wiki.chordata.cc/wiki/Beta_tester_guide#I.27m_a_bit_confused_about_the_XML_files

              Let me know if it clarifies the situation

              3 months later

              daylanKifky I'm at this same point, but after getting the identical <oct.h> error message, running:

              bash <(curl -sL https://gitlab.com/chordata/notochord/raw/develop/install_notochord.sh)

              ends up with the same oct.h fatal error.

              My version is:
              Distributor ID: Raspian
              Description: Raspbian GNU/Linux 10 (buster)
              Release: 10
              Codename: buster

              It's probably due to a slightly different version of liboctave-dev being used on the buster release.
              could you post the output of

              dpkg-query -L liboctave-dev | grep oct.h

              If the file is in /usr/include/octave-4.4.1/octave/
              (taken from the buster filelist of the package: https://packages.debian.org/buster/armhf/liboctave-dev/filelist)
              then the latest commit should fix it.

              Please confirm it with the command i give you above, if I got it right then pull and recompile with something like:

              cd ~/notochord
              git checkout develop
              git pull
              scons -j3 debug=1

                daylanKifky I get 4 results under /usr/include/octave-4.4.1/octave/

                /usr/include/octave-4.4.1/octave/oct-handle.h
                /usr/include/octave-4.4.1/octave/oct-hdf5-types.h
                /usr/include/octave-4.4.1/octave/oct-hist.h
                /usr/include/octave-4.4.1/octave/oct.h

                running

                git checkout develop

                returns

                Already on "develop
                Your branch is up to date with 'origin/develop

                running

                git pull

                returns

                Already up to date

                then runningscons -j3 debug=1

                returns
                scons: done reading SConscript files.
                scons: Building targets ...
                g++ -o src/i2c_manager.o -c -std=c++14 -pthread -w -Wno-deprecated -g -D__CHORDA TA_MAIN__ -Ilib -Isrc -Ilib/oscpack_1_1_0 -Ilib/MadgwickAHRS -Ilib/tinyxml2 -I/u sr/local/include/octave-4.0.0/octave -I/usr/include/octave-4.0.0/octave -I/usr/i nclude/octave-4.0.3/octave -I/usr/include/octave-4.2.2/octave -I/usr/include/oct ave-4.4.1/octave src/i2c_manager.cpp
                g++ -o lib/fmt/posix.o -c -std=c++14 -pthread -w -Wno-deprecated -g -D__CHORDATA _MAIN__ -Ilib -Isrc -Ilib/oscpack_1_1_0 -Ilib/MadgwickAHRS -Ilib/tinyxml2 -I/usr /local/include/octave-4.0.0/octave -I/usr/include/octave-4.0.0/octave -I/usr/inc lude/octave-4.0.3/octave -I/usr/include/octave-4.2.2/octave -I/usr/include/octav e-4.4.1/octave lib/fmt/posix.cc
                src/i2c_manager.cpp: In member function 'void I2C_io::I2CwriteByte(uint8_t, uint 8_t)':
                src/i2c_manager.cpp:79:7: error: 'i2c_smbus_write_byte' was not declared in this scope
                if ( i2c_smbus_write_byte(get_adapter_i2c_file(), data) < 0){
                ^~~~~~~~~~~~~~~~~~~~
                src/i2c_manager.cpp:79:7: note: suggested alternative: 'i2c_smbus_ioctl_data'
                if ( i2c_smbus_write_byte(get_adapter_i2c_file(), data) < 0){
                ^~~~~~~~~~~~~~~~~~~~
                i2c_smbus_ioctl_data
                src/i2c_manager.cpp: In member function 'void I2C_io::I2CwriteByte(uint8_t, uint 8_t, uint8_t)':
                src/i2c_manager.cpp:95:7: error: 'i2c_smbus_write_byte_data' was not declared in this scope
                if ( i2c_smbus_write_byte_data(get_adapter_i2c_file(), subAddress, data) < 0){
                ^~~~~~~~~~~~~~~~~~~~~~~~~
                src/i2c_manager.cpp:95:7: note: suggested alternative: 'i2c_smbus_ioctl_data'
                if ( i2c_smbus_write_byte_data(get_adapter_i2c_file(), subAddress, data) < 0){
                ^~~~~~~~~~~~~~~~~~~~~~~~~
                i2c_smbus_ioctl_data
                src/i2c_manager.cpp: In member function 'int32_t I2C_io::I2CreadByte(uint8_t, ui nt8_t)':
                src/i2c_manager.cpp:113:16: error: 'i2c_smbus_read_byte_data' was not declared i n this scope
                if ( ( data = i2c_smbus_read_byte_data(get_adapter_i2c_file(), subAddress) ) < 0 ){
                ^~~~~~~~~~~~~~~~~~~~~~~~
                src/i2c_manager.cpp:113:16: note: suggested alternative: 'i2c_smbus_ioctl_data'
                if ( ( data = i2c_smbus_read_byte_data(get_adapter_i2c_file(), subAddress) ) < 0 ){
                ^~~~~~~~~~~~~~~~~~~~~~~~
                i2c_smbus_ioctl_data
                src/i2c_manager.cpp: In member function 'void I2C_io::I2CreadBytes(uint8_t, uint 8_t, uint8_t*, uint8_t)':
                src/i2c_manager.cpp:129:7: error: 'i2c_smbus_read_i2c_block_data' was not declar ed in this scope
                if ( i2c_smbus_read_i2c_block_data(get_adapter_i2c_file(), subAddress, count, dest) < 0 ){
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                src/i2c_manager.cpp:129:7: note: suggested alternative: 'i2c_smbus_ioctl_data'
                if ( i2c_smbus_read_i2c_block_data(get_adapter_i2c_file(), subAddress, count, dest) < 0 ){
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                i2c_smbus_ioctl_data
                ar rc lib/fmt/libformat.a lib/fmt/format.o lib/fmt/posix.o
                ranlib lib/fmt/libformat.a
                scons: *** [src/i2c_manager.o] Error 1
                scons: building terminated because of errors.

                  sully

                  It seems like there's some changes on the new version of libi2c-dev, in particular:
                  The <linux/i2c-dev.h> include has been replaced by <i2c/smbus.h>

                  So the notochord is trying to compile against a version of <linux/i2c-dev.h> that lacks some of the required symbols. I will need some days to make it compatible with both versions, so in the meanwhile I'd suggest to flash a Stretch version of Raspbian and then use the one-line installation.

                    daylanKifky I reflashed with the stretch link you posted above and got notochord installed with no issues using the bash command, thanks!

                    16 days later

                    I feel like I'm close. I have a raspberry Pi 3 B+ and it has raspbian installed using (2019-07-10-raspbian-buster-full.img) which I put on a freshly formatted 16GB SanDisk microSD using Win32diskImager. I loaded the MicroSD into the PI and it booted up properly. Next I loaded Notochord using the commands listed in this thread. It got hung up a couple of times, but I believe I finally got it all installed (As far as I can tell). I can connect by putty or enter commands directly in the Pi. When I tried to run Notochord using command:
                    cd bin
                    ./notochord <YOUR COMPUTER IP ADDRESS>

                    It gave me error messages, but I'm confused. Is My computer's IP address the IP of the Windows computer I am connected to the PI with, or the IP of the Pi?

                    I assume it must be the IP of the Pi, since that's where everything is installed, but why wouldn't it say YOUR PI's IP ADDRESS instead of YOUR COMPUTER IP ADDRESS? either way I get an error message saying -bash: ./notochord: No such file or directory. Yet from the root directory, I can do cd notochord and it goes to that directory.

                    I am in over my head.

                    You are using the buster version of raspbian, which is still not compatible. Take a look at the posts right above yours

                    Do you have a link to the correct version (Stretch)? I'm sure it's here someplace, but I'm not seeing it. Thanks for pointing that out. I search for "Stretch" and all the links lead back to the Downloads page and the only thing there seems to be Buster.