Web application with own FPGA funcionalities

Applications, development tools, FPGA, C, WEB
juretrn
Posts: 126
Joined: Tue Nov 16, 2021 11:38 am

Re: Web application with own FPGA funcionalities

Post by juretrn » Wed Oct 23, 2024 8:42 am

It looks like your FPGA image does not play nice with the existing application.
From what I can see, you are missing the XADC module that the app expects to have.

TheGeri
Posts: 33
Joined: Wed Sep 13, 2023 12:46 pm

Re: Web application with own FPGA funcionalities

Post by TheGeri » Wed Oct 23, 2024 8:55 am

Good morning juretrn and thanks for your answer,

For the FPGA image I follow the steps here:

https://redpitaya-knowledge-base.readth ... ga-project

And run the following commands:

Code: Select all

. /opt/Xilinx/Vivado/2020.1/settings64.sh
cd Downloads/
cd RedPitaya-FPGA/
make project PRJ=v0.94 MODEL=Z10
I am working with Vivado 2023.2 but the bitstream could be compiled without problems. (I don't have much experience with FPGAS design, only with the examples you have, so maybe I'm missing something).

TheGeri
Posts: 33
Joined: Wed Sep 13, 2023 12:46 pm

Re: Web application with own FPGA funcionalities

Post by TheGeri » Fri Oct 25, 2024 6:29 am

Good morning,

Problem solved. I had to copy the new FPGA image into the v0.94 folder in the “/opt/redpitaya/fpga/z10_125” and change the “fpga.bit.bin” file with mine.

Now when running the overlay command of v0.94 from the scopegenpro fpga.sh it does not give any problems.

Kind regards,

User avatar
redpitaya
Site Admin
Posts: 967
Joined: Wed Mar 26, 2014 7:04 pm

Re: Web application with own FPGA funcionalities

Post by redpitaya » Tue Oct 29, 2024 1:25 pm

Hello TheGeri,

I am glad that the custom api is working now. I will also post this here for other users who may be reading this later on:

For the 2.00 OS, the easiest way to change the FPGA image is to rename the custom fpga to fpga.bit.bin (after following the instructions to create the .bit.bin image here: https://redpitaya-knowledge-base.readth ... g-the-fpga). Then establish SSH connection with your Red Pitaya and backup the "fpga.bit.bin" file found under "/opt/redpitaya/fpga/$MODEL/$PROJ/". Backing up the "fpga.bit.bin" (which includes the original fpga image) is crucial, so that you are able to revert back to the original image if necessary (without reflashing the whole OS).

The $MODEL can be acquired via

Code: Select all

$(/opt/redpitaya/bin/monitor -f)
command. While the $PROJ is the name of the fpga project you wish to replace (in most cases "v0.94").

The custom FPGA image should replace the original fpga.bit.bin. Please note that this replaces the v0.94 image on the board with the custom FPGA image, so all applications relying on the v0.94 image may or may not cease to work depending on how the custom FPGA changes the functionality of the board.

To restore the original functionality, replace the custom "fpga.bit.bin" with the original one. The name must be "fpga.bit.bin" otherwise this will not work.

Using a differently named .bit.bin file requires changes in the ecosystem, which require rebuilding of the ecosystem.

TheGeri
Posts: 33
Joined: Wed Sep 13, 2023 12:46 pm

Re: Web application with own FPGA funcionalities

Post by TheGeri » Wed Oct 30, 2024 2:09 pm

Good afternoon,

Thank you very much for your answer, now everything is much clearer. Now I have another question ( :roll: ). I would like to modify the C code of the scopegenpro application but if I open from the Red Pitaya network linux I don't see the src folder there.

So, I have copied the scopegenpro folder from the Github and put it in the red pitaya network in the apps folder. I renamed the folder and gave it another name.

Inside the CMakeLists.txt I changed to --> set(APP myApplication). In the scope file code in the JS folder I put OSC.config.app_id = 'myApplication'. Then, when I run the cmake cmakelists.txt:

Code: Select all

FATAL_ERROR,"Installation path not set."
-- Install path 
-- VERSION=0
-- REVISION=devbuild
-- Compiler C path: /usr/bin/gcc
-- Compiler C ID: GNU
-- Compiler C version: 11.4.0
-- Compiler C is part: 
-- Compiler C++ path: /usr/bin/g++
-- Compiler C++ ID: GNU
-- Compiler C++version: 11.4.0
-- Compiler C++ is part: 1
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/redpitaya/www/apps/myApplication
The b.sh file is also changed to

Code: Select all

rw
cmake -B./build -DINSTALL_DIR=/opt/redpitaya -DCMAKE_BUILD_TYPE=Debug
make -C build install -j2
cp -rf ./build/myApplication/* /opt/redpitaya/www/apps/myApplication/
But when I run the source b.sh I get the following:

Code: Select all

- Install path /opt/redpitaya
-- VERSION=0
-- REVISION=devbuild
-- Compiler C path: /usr/bin/gcc
-- Compiler C ID: GNU
-- Compiler C version: 11.4.0
-- Compiler C is part: 
-- Compiler C++ path: /usr/bin/g++
-- Compiler C++ ID: GNU
-- Compiler C++version: 11.4.0
-- Compiler C++ is part: 1
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/redpitaya/www/apps/myApplication/build
make: Entering directory '/opt/redpitaya/www/apps/myApplication/build'
make[1]: Entering directory '/opt/redpitaya/www/apps/myApplication/build'
make[2]: Entering directory '/opt/redpitaya/www/apps/myApplication/build'
Consolidate compiler generated dependencies of target controllerhf
make[2]: Leaving directory '/opt/redpitaya/www/apps/myApplication/build'
make[2]: Entering directory '/opt/redpitaya/www/apps/myApplication/build'
make[2]: Warning: File '/opt/redpitaya/include/rp.h' has modification time 694049 s in the future
[ 22%] Building CXX object CMakeFiles/controllerhf.dir/src/main.cpp.o
[ 22%] Building CXX object CMakeFiles/controllerhf.dir/src/common.cpp.o
/opt/redpitaya/www/apps/myApplication/src/main.cpp:25:10: fatal error: web/rp_client.h: No such file or directory
   25 | #include "web/rp_client.h"
      |          ^~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/controllerhf.dir/build.make:90: CMakeFiles/controllerhf.dir/src/main.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/opt/redpitaya/www/apps/myApplication/src/common.cpp: In function ‘float getMaxFreqRate()’:
/opt/redpitaya/www/apps/myApplication/src/common.cpp:66:14: error: ‘STEM_125_14_LN_BO_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
   66 |         case STEM_125_14_LN_BO_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp:67:14: error: ‘STEM_125_14_LN_CE1_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
   67 |         case STEM_125_14_LN_CE1_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp:68:14: error: ‘STEM_125_14_LN_CE2_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
   68 |         case STEM_125_14_LN_CE2_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp: In function ‘float getMaxTriggerLevel()’:
/opt/redpitaya/www/apps/myApplication/src/common.cpp:100:14: error: ‘STEM_125_14_LN_BO_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
  100 |         case STEM_125_14_LN_BO_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp:101:14: error: ‘STEM_125_14_LN_CE1_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
  101 |         case STEM_125_14_LN_CE1_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp:102:14: error: ‘STEM_125_14_LN_CE2_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
  102 |         case STEM_125_14_LN_CE2_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp: In function ‘bool isZModePresent()’:
/opt/redpitaya/www/apps/myApplication/src/common.cpp:134:14: error: ‘STEM_125_14_LN_BO_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
  134 |         case STEM_125_14_LN_BO_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp:135:14: error: ‘STEM_125_14_LN_CE1_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
  135 |         case STEM_125_14_LN_CE1_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp:136:14: error: ‘STEM_125_14_LN_CE2_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
  136 |         case STEM_125_14_LN_CE2_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp: In function ‘float outAmpDef()’:
/opt/redpitaya/www/apps/myApplication/src/common.cpp:167:14: error: ‘STEM_125_14_LN_BO_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
  167 |         case STEM_125_14_LN_BO_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp:168:14: error: ‘STEM_125_14_LN_CE1_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
  168 |         case STEM_125_14_LN_CE1_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp:169:14: error: ‘STEM_125_14_LN_CE2_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
  169 |         case STEM_125_14_LN_CE2_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp: In function ‘float outAmpMax()’:
/opt/redpitaya/www/apps/myApplication/src/common.cpp:202:14: error: ‘STEM_125_14_LN_BO_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
  202 |         case STEM_125_14_LN_BO_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp:203:14: error: ‘STEM_125_14_LN_CE1_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
  203 |         case STEM_125_14_LN_CE1_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp:204:14: error: ‘STEM_125_14_LN_CE2_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
  204 |         case STEM_125_14_LN_CE2_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp: In function ‘std::string getModelName()’:
/opt/redpitaya/www/apps/myApplication/src/common.cpp:239:14: error: ‘STEM_125_14_LN_BO_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
  239 |         case STEM_125_14_LN_BO_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp:240:14: error: ‘STEM_125_14_LN_CE1_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
  240 |         case STEM_125_14_LN_CE1_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
/opt/redpitaya/www/apps/myApplication/src/common.cpp:241:14: error: ‘STEM_125_14_LN_CE2_v1_1’ was not declared in this scope; did you mean ‘STEM_125_14_LN_v1_1’?
  241 |         case STEM_125_14_LN_CE2_v1_1:
      |              ^~~~~~~~~~~~~~~~~~~~~~~
      |              STEM_125_14_LN_v1_1
make[2]: *** [CMakeFiles/controllerhf.dir/build.make:76: CMakeFiles/controllerhf.dir/src/common.cpp.o] Error 1
make[2]: Leaving directory '/opt/redpitaya/www/apps/myApplication/build'
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/controllerhf.dir/all] Error 2
make[1]: Leaving directory '/opt/redpitaya/www/apps/myApplication/build'
make: *** [Makefile:136: all] Error 2
make: Leaving directory '/opt/redpitaya/www/apps/myApplication/build'
cp: cannot stat './build/myApplication/*': No such file or directory

If I put the folder instead of my own name as “scopegenpro” I still get the same errors. I think I am doing something wrong in the compilation and I don't know where. I would be very grateful if you can help me (again) with this.

Kind regards,

User avatar
redpitaya
Site Admin
Posts: 967
Joined: Wed Mar 26, 2014 7:04 pm

Re: Web application with own FPGA funcionalities

Post by redpitaya » Mon Nov 04, 2024 1:42 pm

After modifying the oscilloscope code, a rebuild of the ecosystem may be necessary:
https://redpitaya.readthedocs.io/en/lat ... ystem.html

33dnp should be able to give you a concrete answer.

TheGeri
Posts: 33
Joined: Wed Sep 13, 2023 12:46 pm

Re: Web application with own FPGA funcionalities

Post by TheGeri » Tue Nov 05, 2024 9:49 am

Good morning,

Thanks for the reply, I will look into it. I am also then waiting to see if 33dnp can provide to me specific information for this case.

Kind regards and thanks again,

Post Reply
jadalnie klasyczne ekskluzywne meble wypoczynkowe do salonu ekskluzywne meble tapicerowane ekskluzywne meble do sypialni ekskluzywne meble włoskie

Who is online

Users browsing this forum: No registered users and 1 guest