MicroPhase / antsdr-fw

ANTSDR Firmware
Other
124 stars 47 forks source link

Instructions how to build the SD Image #19

Open abusous2000 opened 1 year ago

abusous2000 commented 1 year ago

I wonder if there are any instructions documenting how to build the SD Image from the zip file located in the releases folder? Also I would like to know which pins should be shorted!

Many thx

black-pigeon commented 1 year ago

Hi, You should build the dfu image first. After that you can just use make sdimg to build the sd card boot image.

https://github.com/MicroPhase/antsdr-fw#build-instructions

You can set the jumper to SD card boot mode. There is silkscreen on the board, you can refer to that silkscreen to set the boot mode.

图片

abusous2000 commented 1 year ago

Excellent; that was very helpful

I wonder if the whole 1 GB of RAM are all allocated for the linux SOC.

Or it is split between the PS and PL?

Is there a way to find out from command line

many thx.

I will be ordering another one soon

black-pigeon commented 1 year ago

The DDR is at PS side controlled by ps dram controller. The PL side can access the ps dram by ZYNQ's HP or ACP port through axi interface.

abusous2000 commented 1 year ago

FYI black-pigeon

I started to compile master and it failed. Many errors; one of them missing zynq_ant_defconfig

I decided to switch to branch antsdr, and it is compiling as we speak.

FYI, I compiled Pluto .35 and PlutoPlus .33 and both look great. Therefore, my environment is OK.

let me know what you think

MicroPhase commented 1 year ago

Could you please attach your compile log here? The master branch is the branch you can build the firmware. Are you clone all these modules using

git clone --recursive https://github.com/MicroPhase/antsdr-fw.git
abusous2000 commented 1 year ago

Yes, I checkout your master recursively as you have pointed. This is what I did:

git clone --recursive https://github.com/MicroPhase/antsdr-fw.git
export CROSS_COMPILE=arm-linux-gnueabihf- 
export PATH=$PATH:/opt/Xilinx/SDK/2019.1/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin 
export VIVADO_SETTINGS=/opt/Xilinx/Vivado/2019.1/settings64.sh
export PERL_MM_OPT=

# you should export the right deivce to build the firmware, 
# by default the TARGET is ant, you should export the right deivces
# for example: 
# export TARGET=antsdre200
# export TARGET=ant
export TARGET=ant
cd antsdr-fw 
make

I did it many times and I got same error: missing zynq_ant_defconfig. Here is also a screenshot showing how I build it Page_394

It should be noted that I followed the similar instructions to compile Adulm-Pluto, Pluto Plus and most importantly I successfully compiled your code at branch of antsdr (I guess it was based on Pluto .33). It took few hours, but at the end I successfully built all three images. The only thing I didn't do was setting the target to ant and PERL_MM_OPT to empty as it is required by the master branch. On the other hand, your master branch failed right out of the gate; you won't get far by the way. Just try it.

FYI, the below image shows I successfully compiled your antsdr branch: Page_393

I hope this helps

Cheers

black-pigeon commented 1 year ago

It seems like we made some mistakes here, becuase we have another board to support this project,and we forgot to test the e310 device.

We will update it later.

Thanks for you feedback.

black-pigeon commented 1 year ago

Hi,

You can update the submodule now.

git pull
git submodule update --remote

I think you can build the image now.

abusous2000 commented 1 year ago

HI,

No big deal; it happens man. Anyhow

git submodule update --update erred as you see from the below screenshot. Page_397

Did you mean git submodule update --init --recursive ?

black-pigeon commented 1 year ago

opps, my ffault, git submodule update --remote

abusous2000 commented 1 year ago

Building as we speak. So far it so good

I will report back once it is complete

Stay tuned;

abusous2000 commented 1 year ago

I got this error

make[1]: Entering directory '/media/Backup/Downloads/ANTSDR-E310/build/antsdr-fw/linux'
  DTC     arch/arm/boot/dts/zynq-ant.dtb
arch/arm/boot/dts/zynq-ant.dts:10:10: fatal error: zynq-ant-sdr.dtsi: No such file or directory
 #include "zynq-ant-sdr.dtsi"
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
scripts/Makefile.lib:326: recipe for target 'arch/arm/boot/dts/zynq-ant.dtb' failed
make[2]: *** [arch/arm/boot/dts/zynq-ant.dtb] Error 1
Makefile:1338: recipe for target 'zynq-ant.dtb' failed
make[1]: *** [zynq-ant.dtb] Error 2
make[1]: Leaving directory '/media/Backup/Downloads/ANTSDR-E310/build/antsdr-fw/linux'
Makefile:113: recipe for target 'linux/arch/arm/boot/dts/zynq-ant.dtb' failed
make: *** [linux/arch/arm/boot/dts/zynq-ant.dtb] Error 2

Page_398

black-pigeon commented 1 year ago

You can update the submoule and try again now.

git submodule update --remote

For my test, all things seems fine.

abusous2000 commented 1 year ago

Good Morning/Good afternoon wherever you are

Great;

I just picked up one update and this one was built OK. I just built the sdimg too. Page_399 Page_400

OTOH, I cannot test until I receive my AntSDR, which will happen soon.

Based on the documentation I got from the seller; it seems all I have to do is to copy the contents of the build_sdimg folder directly onto a 32 MB SD card formatted with FAT32...Is my understanding correct black-pigeon? I mean I don't have to partition the SD card! or just FAT32 will do!

I have few important questions; I hope you can help me with:

If that is possible to package them; AntSDR will become very powerful with little more investment on your part! IMHO; that will be a game changer. Honestly, until a few days ago; I knew nothing about buildroot; and now I may have to dig more to make this possible (that is if it is not there already).

Cheers

black-pigeon commented 1 year ago

Hello,

The plutosdr like sdcard image using the uramdisk as the rootfile system. You only need to copy the sd image into a fat32 partition.

I think you can add python or jupyter by using buildroot, which will add these tools into the rootfile system.

There is another project, which using the ADI's Kuiper image as the rootfile system. The kuiper image contains a linaro ubuntu system. You can find more information follow this link. https://github.com/MicroPhase/antsdr_fmcomms

abusous2000 commented 1 year ago

Many thx for the info.

If _antsdrfmcomms is remotely as I understood; it will be stunning. I am new to this and I am figuring it out as I go along. I hope it is as easy as you have described. I am building it as we speak

Anyhow, at this page and at the end; there are instruction with regards to modifying uEnv.txt file https://github.com/MicroPhase/antsdr-fw/tree/master

Should I ignore it and do as you have described?

cheers

black-pigeon commented 1 year ago

You can edit the uEnv.txt to enable 2R2T mode while using SD card.

abusous2000 commented 1 year ago

Thx

I just finished building; but I cannot build the sdimg. The command isn't in the makefile.

Anyhow, the build folder contains no uEnv.txt; am I missing something! here is a screenshot

Page_401 very strange

cheers

abusous2000 commented 1 year ago

I just found a file with that name located in the Boot partition; I assume you like me to change as described below Page_403 ?

black-pigeon commented 1 year ago

For fmcomms image, you only need the Boot.bin, uImage and devicetree.dtb, the default uEnv.txt is fine.

abusous2000 commented 1 year ago

black-pigeon

I just got my AntSDR E310 last night. I followed your instructions and I was surprised it worked with few minor issues: 1- apt install libserialport0 2- upgrade to latest libiio (i chose libiio-0.24.g-Ubuntu-arm32v7.deb) 3- execute pip3 install --ignore-installed pyzmq just before installing jupyter; for some reason that solved an issue 4- I had to change one of adi's python file (/usr/local/lib/python3.7/dist-packages/iio.py, changed _self.ctx = device.ctx() to _self.ctx = device.ctx), else Jupyter worked like a charm as you can see from the below screenshots andsdr-jupyater antsdr-adi-change A question: any reason the system is being clocked at 667MHz? the spec says it should be at 766Mhz. It seems as if the device tree was based on XC7Z010 instead of XC7Z020. Do you have any idea how to correct it? Page_428

Many thx in advance. This is really great so far.

lone-boy commented 1 year ago

abusous2000 hello,I am very honored to reply you. A:Question:the default frequency of zynq 7020 is 666.666 Mhz, generally speaking, 766 Mhz is the maximum frequency of operation. The command "cat /proc/cpuinfo" describes the default main frequency. You can improve the frequency by modifying the vivado project, device tree of uboot and zynq-common.h, but we do not recommend this! Best wishes to you.

abusous2000 commented 1 year ago

lone-boy

Many thx for the quick reply. BTW, I was able to install cloud9 too onto the AntSDR E310 As you can see from the below screenshot (which combined 4 windows) how running C9 & Jupyter consumed only 1/4 of the total memory! I integrated matplotlib too and the response isn't bad at all. Page_429

I hope someone can take this to the next level; may be to build a oscilloscope with it too

Cheers

abusous2000 commented 1 year ago

I noticed that AntSDR is becoming really hot although the CPUs is idles. Any reason why? How to limit that? I mean is there a way to turn off/on the Analog's radio module based on demand? I am worried about the device.

I will appreciate any feedback.

lone-boy commented 1 year ago

It's amazing!

The heating phenomenon is normal, you don't need to pay attention to it, this is when the characteristic of zynq chip consumes a lot of resources. Of course, you can also add a heat sink, which will make it cooler.