From 04a3fc2d78d1f657b0d46dd206ed43a649489944 Mon Sep 17 00:00:00 2001 From: Arjan te Marvelde Date: Tue, 28 Jun 2022 22:29:59 +0200 Subject: [PATCH 01/16] V3.00 Added frequency domain processing, cleaned up the text. Refer to doc/uSDR - v3.00.pdf for detailed information. --- README.md | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 6de431f..d39bd00 100644 --- a/README.md +++ b/README.md @@ -3,28 +3,13 @@ This Git repository contains a Micro-SDR implementation, based on a RP2040 Pi Pi Furthermore, the repository contains the electronic design of some modules that cover the mixing, filtering and RF amplification. The ZIP files contain a consistent package, but the latest code is in the files in the main directory. -Please refer to the doc folder for a full description. - -The platform used is a Pi Pico module with an RP2040 processor. This processor has dual cores, running default at 125MHz each, and a very configurable I/O which eases the HW design. -The software is distributed over the two cores: *core0* takes care of all user I/O and control functions, while *core1* performs all of the signal processing. The *core1* functionality consists of a TX-branch and an RX-branch, each called from a function that waits for inter-core FIFO words popping out. This happens every 16usec, because on *core0* a 16usec timer callback ISR pushes the RX/TX status into that FIFO. Hence the signal processing rythm on *core1* effectively is 62.5kHz. -On *core1* the three ADC channels are continuously sampled at maximum speed in round-robin mode. Samples are therefore taken every 6usec for each channel, maximum jitter between I and Q channels is 4usec, which has a negligible effect in the audio domain. - -The TX-branch -- takes latest audio audio sample input from ADC2 (rate = 62.5 kHz), -- applies a low-pass filter at Fc=3kHz, -- reduces sampling by 4 to get better low frequency response Hilbert xform (rate = 15.625 kHz), -- splits into an I-channel 7 sample delay line and a Q-channel 15-tap Discrete Hilbert Transform -- scales, filters and outputs I and Q samples on PWM based DACs, towards QSE output - -The RX-branch -- takes latest Q and I samples from QSD on ADC0 and ADC1 (rate = 62.5 kHz) -- applies a low-pass filter at Fc=3kHz, -- reduces sampling by 4 to get better low frequency response Hilbert xform (rate = 15.625 kHz), -- demodulates, e.g. SSB: --- applies 15-tap DHT on Q channel and 7 sample delay on I channel --- subtracts I and Q samples -- scales, filters and outputs audio on an PWM based DAC, towards audio output +The V3.00 package contains two signal processing engines, selectable with a compile switch in dsp.h. The first engine is the old time domain processor, more or less as in V2, and the second engine is a new FFT based processor. +For a more detailed description of the software and the hardware, please refer to the elaborate documentation. +The platform used is a Pi Pico module with an RP2040 processor. This processor has dual cores, running default at 125MHz each, and a very configurable I/O which eases the HW design. The platform can be overclocked, but some functions seem to become unstable when pushed too far. +The software is distributed over the two cores: *core0* takes care of all user I/O and control functions, while *core1* performs all of the signal processing. The *core1* functionality consists of a TX-branch and an RX-branch, each called from a function that is synchronized by a timer every 64usec. Hence the signal processing rythm on *core1* effectively is 15.625kHz. +On *core1* the three ADC channels are continuously sampled at maximum speed in round-robin mode. Samples are therefore taken every 6usec for each channel, maximum jitter between I and Q channels is 2usec, which has a negligible effect in the audio domain. +For the time domain processing the TX and RX functions are called every timeslot, but for the frequency domain processing the samples are collected until half an FFT buffer is filled (512 samples), and hence this happens every 32msec. On *core0* the main loop takes care of user I/O, all other controls and the monitor port. There is also a LED flashing timer callback functioning as a heartbeat. The Pico controls an Si5351A clock module to obtain the switching clock for the QSE and QSD. The module outputs two synchronous square wave clocks on ch 0 and 1, whith selectable phase difference (0, 90, 180 or 270 degrees). The clock on ch2 is free to be used for other goals. The module is controlled over the **i2c0** channel. @@ -41,9 +26,9 @@ The display is a standard 16x2 LCD, but with an I2C interface. The display is co - [ ] implement RSSI - [x] design a set of PCBs - [x] sort out the new HW modules -- [ ] improve speed: better dual-core management for memory and timer -- [ ] improve speed: overclock processor 2x or so +- [x] improve speed: better dual-core management for memory and timer - [x] add control for new HW: BPF and pre-amp/attenuator switching +- [x] add frequency domain processing ## Installing and using the SDK for Windows: Please refer to https://github.com/ndabas/pico-setup-windows/releases where the latest installer can be downloaded (e.g. **pico-setup-windows-0.3-x64.exe**). From 41131344a07e221eba6deb05b347239f2dc754f5 Mon Sep 17 00:00:00 2001 From: Arjan te Marvelde Date: Wed, 6 Jul 2022 21:54:47 +0200 Subject: [PATCH 02/16] Update README.md --- README.md | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 77 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d39bd00..127db0b 100644 --- a/README.md +++ b/README.md @@ -31,9 +31,83 @@ The display is a standard 16x2 LCD, but with an I2C interface. The display is co - [x] add frequency domain processing ## Installing and using the SDK for Windows: -Please refer to https://github.com/ndabas/pico-setup-windows/releases where the latest installer can be downloaded (e.g. **pico-setup-windows-0.3-x64.exe**). -Execute the installer to set up the SDK environment, e.g. in **~/Documents/Pico** (let's call this folder **$PICO**). -You can upgrade the SDK to the latest version by replacing the complete **$PICO/pico-sdk** folder with the newer version. The latest version is on Github: https://github.com/raspberrypi/pico-sdk (download code as zip, extract the **pico-sdk-master** folder from it, rename it to **pico-sdk** and use it to replace the original) +For setting up the C/C++ build environment for Windows, you can follow the procedure as described in the Raspberry [Getting Started](https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf) document. This document also refers to a [setup script](https://github.com/ndabas/pico-setup-windows), but that seemed to be broken. + +#Manual installation. +Doing it manually, first download the latest packages, in my case for Windows 10 on a 64 bit PC: + +[ARM GNU toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/downloads) , choose: *arm-non-eabi.exe [CMake](https://cmake.org/download/) +[VS Build Tools](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022) +[Python](https://www.python.org/downloads/windows/) , I wonder, do we actually need this for C/C++ environment? +[Git](https://git-scm.com/download/win) + +I use Notepad++ as editor for my source files, since I don't like the VS IDE, so I recommend to install this before anything else. +The installation, step by step, listing the choices I made: + +**-1- ARM GNU toolchain** +Start the installer + Language: English + Next + I Agree + Folder as proposed, Install + Tick the box: "Add path to environment variable", Finish +If the installer complains, you can also add the folder location manually to the system path (something like "C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\11.2 2022.02") + +**-2- CMake** +Start the installer + Next + Accept, Next + Tick the box: "Add CMake to path for all users", Next + Folder as proposed, Next + Install + +**-3- VS Build Tools (Installer)** +Start the loader/installer + Continue + Select: "Desktop development with C++", Install (this takes a while...) +Close the window when done + +**-4- Python** +Start the installer + Tick the boxes: "Add Python ... to PATH" and "Install for all...", Install now + +**-5- Git** +Start installer + Next + Use proposed path, Next + Defaults, Next + Default Start menu folder, Next + Use Notepad++ as default editor, Next + Let Git decide, Next + Git from the commandline and 3rd party software, Next + Use bundled SSH, Next + Use the OpenSSL library, Next + Checkout as-is, commit as-is, Next + Use Windows default console, Next + Default, Next + Git Credential manager, Next + Enable file system caching, Next + Enable experimental support for pseudo consoles, Next + Finish + +**-6- Get Pico SDK and examples from Github** +Open a Windows command prompt, then use it to setup the folder structure: + mkdir (for example, "C:\Users\name\Documents\Pico") + chdir + git clone -b master https://github.com/raspberrypi/pico-sdk.git + cd pico-sdk + git submodule update --init + cd .. + git clone -b master https://github.com/raspberrypi/pico-examples.git + +**-7- Setup the build environment** +Open a Visual Studio Developer Command Prompt from the Start menu +Define some environment variables manually (these were not set right during installation) + setx PICO_SDK_PATH "\pico-sdk" + setx PICO_TOOLCHAIN_PATH "C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\11.2 2022.02" +Note that the actual ARM toolchain folder may be different: check it first! +Close this VS Developer Command Prompt window + ## Building uSDR-pico: Clone/copy the uSDR-pico code files into a subdirectory: **$PICO/uSDR-pico** From 7795ca7f278ab7452a2114e18cc9f382a3a24f58 Mon Sep 17 00:00:00 2001 From: Arjan te Marvelde Date: Wed, 6 Jul 2022 21:56:53 +0200 Subject: [PATCH 03/16] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 127db0b..47c3e40 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,9 @@ For setting up the C/C++ build environment for Windows, you can follow the proce #Manual installation. Doing it manually, first download the latest packages, in my case for Windows 10 on a 64 bit PC: -[ARM GNU toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/downloads) , choose: *arm-non-eabi.exe [CMake](https://cmake.org/download/) +[ARM GNU toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/downloads) , +choose the file ending on *arm-non-eabi.exe* +[CMake](https://cmake.org/download/) [VS Build Tools](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022) [Python](https://www.python.org/downloads/windows/) , I wonder, do we actually need this for C/C++ environment? [Git](https://git-scm.com/download/win) From 044867b8d8d025ea188f17642c559cc2f8368d41 Mon Sep 17 00:00:00 2001 From: Arjan te Marvelde Date: Wed, 6 Jul 2022 21:58:30 +0200 Subject: [PATCH 04/16] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 47c3e40..7c53d6a 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ The display is a standard 16x2 LCD, but with an I2C interface. The display is co ## Installing and using the SDK for Windows: For setting up the C/C++ build environment for Windows, you can follow the procedure as described in the Raspberry [Getting Started](https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf) document. This document also refers to a [setup script](https://github.com/ndabas/pico-setup-windows), but that seemed to be broken. -#Manual installation. +### Manual installation. Doing it manually, first download the latest packages, in my case for Windows 10 on a 64 bit PC: [ARM GNU toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/downloads) , From 7e6ebf005700d6e6a360ccbc67165ca90d895683 Mon Sep 17 00:00:00 2001 From: Arjan te Marvelde Date: Wed, 6 Jul 2022 22:10:45 +0200 Subject: [PATCH 05/16] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7c53d6a..06bbcf8 100644 --- a/README.md +++ b/README.md @@ -57,11 +57,11 @@ If the installer complains, you can also add the folder location manually to the **-2- CMake** Start the installer - Next - Accept, Next - Tick the box: "Add CMake to path for all users", Next - Folder as proposed, Next - Install +> Next +> Accept, Next +> Tick the box: "Add CMake to path for all users", Next +> Folder as proposed, Next +> Install **-3- VS Build Tools (Installer)** Start the loader/installer From 790a9d4093bbb49bb7df1b4f25d26459573bd6ac Mon Sep 17 00:00:00 2001 From: Arjan te Marvelde Date: Wed, 6 Jul 2022 22:12:52 +0200 Subject: [PATCH 06/16] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 06bbcf8..996873e 100644 --- a/README.md +++ b/README.md @@ -47,12 +47,14 @@ I use Notepad++ as editor for my source files, since I don't like the VS IDE, so The installation, step by step, listing the choices I made: **-1- ARM GNU toolchain** -Start the installer +Start the installer +``` Language: English Next I Agree Folder as proposed, Install Tick the box: "Add path to environment variable", Finish +``` If the installer complains, you can also add the folder location manually to the system path (something like "C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\11.2 2022.02") **-2- CMake** From 75cd3cacd489726ca826bc9365ea73f1af8d681f Mon Sep 17 00:00:00 2001 From: Arjan te Marvelde Date: Wed, 6 Jul 2022 22:15:50 +0200 Subject: [PATCH 07/16] Update README.md --- README.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 996873e..33973f8 100644 --- a/README.md +++ b/README.md @@ -48,13 +48,11 @@ The installation, step by step, listing the choices I made: **-1- ARM GNU toolchain** Start the installer -``` - Language: English - Next - I Agree - Folder as proposed, Install - Tick the box: "Add path to environment variable", Finish -``` +- Language: English +- Next +- I Agree +- Folder as proposed, Install +- Tick the box: "Add path to environment variable", Finish If the installer complains, you can also add the folder location manually to the system path (something like "C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\11.2 2022.02") **-2- CMake** From 12adb23a8cabf7e99bd8711089489cbdeab4e400 Mon Sep 17 00:00:00 2001 From: Arjan te Marvelde Date: Wed, 6 Jul 2022 22:17:10 +0200 Subject: [PATCH 08/16] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 33973f8..d953a12 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ Start the installer - Next - I Agree - Folder as proposed, Install -- Tick the box: "Add path to environment variable", Finish +- Tick the box: "Add path to environment variable", Finish If the installer complains, you can also add the folder location manually to the system path (something like "C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\11.2 2022.02") **-2- CMake** From 038d7bae8cc9f96ce8781d78427bb925426acbe9 Mon Sep 17 00:00:00 2001 From: Arjan te Marvelde Date: Wed, 6 Jul 2022 22:17:47 +0200 Subject: [PATCH 09/16] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d953a12..ed9fa88 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ Start the installer - I Agree - Folder as proposed, Install - Tick the box: "Add path to environment variable", Finish + If the installer complains, you can also add the folder location manually to the system path (something like "C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\11.2 2022.02") **-2- CMake** From 6a6e6eb3ad55133b5fecebc56cd2126aa993203a Mon Sep 17 00:00:00 2001 From: Arjan te Marvelde Date: Wed, 6 Jul 2022 22:19:29 +0200 Subject: [PATCH 10/16] Update README.md --- README.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index ed9fa88..36da984 100644 --- a/README.md +++ b/README.md @@ -58,21 +58,24 @@ If the installer complains, you can also add the folder location manually to the **-2- CMake** Start the installer -> Next -> Accept, Next -> Tick the box: "Add CMake to path for all users", Next -> Folder as proposed, Next -> Install +- Next +- Accept, Next +- Tick the box: "Add CMake to path for all users", Next +- Folder as proposed, Next +- Install + **-3- VS Build Tools (Installer)** Start the loader/installer - Continue - Select: "Desktop development with C++", Install (this takes a while...) +- Continue +- Select: "Desktop development with C++", Install (this takes a while...) + Close the window when done **-4- Python** Start the installer - Tick the boxes: "Add Python ... to PATH" and "Install for all...", Install now +- Tick the boxes: "Add Python ... to PATH" and "Install for all...", Install now + **-5- Git** Start installer From 4a10fc991f62358c4ead8fa870d26fe37e9cfdca Mon Sep 17 00:00:00 2001 From: Arjan te Marvelde Date: Wed, 6 Jul 2022 22:22:46 +0200 Subject: [PATCH 11/16] Update README.md --- README.md | 58 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 36da984..7cf90c0 100644 --- a/README.md +++ b/README.md @@ -78,39 +78,45 @@ Start the installer **-5- Git** -Start installer - Next - Use proposed path, Next - Defaults, Next - Default Start menu folder, Next - Use Notepad++ as default editor, Next - Let Git decide, Next - Git from the commandline and 3rd party software, Next - Use bundled SSH, Next - Use the OpenSSL library, Next - Checkout as-is, commit as-is, Next - Use Windows default console, Next - Default, Next - Git Credential manager, Next - Enable file system caching, Next - Enable experimental support for pseudo consoles, Next - Finish +Start installer +- Next +- Use proposed path, Next +- Defaults, Next +- Default Start menu folder, Next +- Use Notepad++ as default editor, Next +- Let Git decide, Next +- Git from the commandline and 3rd party software, Next +- Use bundled SSH, Next +- Use the OpenSSL library, Next +- Checkout as-is, commit as-is, Next +- Use Windows default console, Next +- Default, Next +- Git Credential manager, Next +- Enable file system caching, Next +- Enable experimental support for pseudo consoles, Next +- Finish + **-6- Get Pico SDK and examples from Github** Open a Windows command prompt, then use it to setup the folder structure: - mkdir (for example, "C:\Users\name\Documents\Pico") - chdir - git clone -b master https://github.com/raspberrypi/pico-sdk.git - cd pico-sdk - git submodule update --init - cd .. - git clone -b master https://github.com/raspberrypi/pico-examples.git +``` +mkdir (for example, "C:\Users\name\Documents\Pico") +chdir +git clone -b master https://github.com/raspberrypi/pico-sdk.git +cd pico-sdk +git submodule update --init +cd .. +git clone -b master https://github.com/raspberrypi/pico-examples.git +``` + **-7- Setup the build environment** Open a Visual Studio Developer Command Prompt from the Start menu Define some environment variables manually (these were not set right during installation) - setx PICO_SDK_PATH "\pico-sdk" - setx PICO_TOOLCHAIN_PATH "C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\11.2 2022.02" +``` +setx PICO_SDK_PATH "\pico-sdk" +setx PICO_TOOLCHAIN_PATH "C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\11.2 2022.02" +``` Note that the actual ARM toolchain folder may be different: check it first! Close this VS Developer Command Prompt window From 562d8c60fb98920b5e416e49b7624dacd721299c Mon Sep 17 00:00:00 2001 From: Arjan te Marvelde Date: Wed, 6 Jul 2022 22:41:40 +0200 Subject: [PATCH 12/16] Update README.md --- README.md | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 7cf90c0..1647b89 100644 --- a/README.md +++ b/README.md @@ -36,14 +36,13 @@ For setting up the C/C++ build environment for Windows, you can follow the proce ### Manual installation. Doing it manually, first download the latest packages, in my case for Windows 10 on a 64 bit PC: -[ARM GNU toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/downloads) , -choose the file ending on *arm-non-eabi.exe* +[ARM GNU toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/downloads) (choose the file ending on *arm-non-eabi.exe*) [CMake](https://cmake.org/download/) [VS Build Tools](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022) -[Python](https://www.python.org/downloads/windows/) , I wonder, do we actually need this for C/C++ environment? +[Python](https://www.python.org/downloads/windows/) (I wonder, do we actually need this for C/C++ environment?) [Git](https://git-scm.com/download/win) -I use Notepad++ as editor for my source files, since I don't like the VS IDE, so I recommend to install this before anything else. +I use [Notepad++](https://notepad-plus-plus.org/downloads/) as editor for my source files, since I don't like the VS IDE, so I recommend to install this before anything else. The installation, step by step, listing the choices I made: **-1- ARM GNU toolchain** @@ -98,9 +97,9 @@ Start installer **-6- Get Pico SDK and examples from Github** -Open a Windows command prompt, then use it to setup the folder structure: +Open a Windows command prompt, then use it to setup the folder structure (for example, "C:\Users\name\Documents\Pico"): ``` -mkdir (for example, "C:\Users\name\Documents\Pico") +mkdir chdir git clone -b master https://github.com/raspberrypi/pico-sdk.git cd pico-sdk @@ -119,18 +118,21 @@ setx PICO_TOOLCHAIN_PATH "C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi ``` Note that the actual ARM toolchain folder may be different: check it first! Close this VS Developer Command Prompt window - - -## Building uSDR-pico: -Clone/copy the uSDR-pico code files into a subdirectory: **$PICO/uSDR-pico** + + +## Building uSDR-pico: +Let's call our **$PICO** from now on. +Create the folder **$PICO/uSDR-pico** +Clone/copy the uSDR-pico code files into **$PICO/uSDR-pico** +Copy the file **$PICO/pico-sdk/pico_sdk_import.cmake** into this folder too, it contains the global cmake instructions Create the build folder: **$PICO/uSDR-pico/build** - -Before the first build you need to check and adapt the file **$PICO/uSDR-pico/CMakeLists.txt**, using your favourite editor, to make sure it reflects your own directory structure. Also in this file, select whether you want **stdio** to use the UART on pins 1 and 2 or the USB serial port. The monitor terminal is on **stdio**. This is needed because CMakeLists.txt directs CMake in the creation of your make environment. In fact, every time you change something in CMakeLists.txt (like adding another source file to the build) you will have to delete the build folder and re-issue CMake. -In **$PICO/** you will find a command to start a **Developer Command Prompt for Pico** (*DCP*, like a "DOS box"), make sure to use this one instead of any other DOS box. Within this *DCP* all environment settings have been properly set to enable the building process. + +Before the first build you need to check and adapt the file **$PICO/uSDR-pico/CMakeLists.txt**, using your favourite editor, to make sure it reflects your own directory structure. Also in this file, select whether you want **stdio** to use the UART on pins 1 and 2 or the USB serial port. The monitor terminal is on **stdio**. This is needed because CMakeLists.txt directs CMake in the construction of your nmake environment. In fact, every time you change something in CMakeLists.txt (like adding another source file to the build) you will have to swipe the build folder and re-issue cmake. +All building is using the Visual Studio NMake, so it has to be done from a **VS Developer Command Prompt for Pico**. This is found in the Start menu under VS 2022, and it is best to copy a shortcut in a more convenient place. Then the startup folder property in the shortcut can be changed to for example **$PICO**. Within this *DCP* all environment settings have been properly set to enable the building process. In the *DCP* window, chdir to the **build** folder and execute: **cmake -G "NMake Makefiles" ..** (do not forget the trailing dots, it points to the folder containing CMakeLists.txt). Now you have initialized the make environment (for *nmake*) and by executing **nmake** in that same **build** folder, all SDK libraries and finally the Pi Pico loadable file **uSDR.uf2** will be created. -Rebooting the Pico while the bootsel button is pressed will open a file explorer window with the Pico shown as a Mass Storage Device (e.g. drive E:). Moving the binary to the Pico is as easy as dragging and dropping this uf2 file into that MSD. - +Rebooting the Pico while the bootsel button is pressed will open a Windows Explorer window with the Pico shown as a Mass Storage Device (e.g. drive E:). Moving **uSDR.uf2** to the Pico is as easy as dragging and dropping this file into that MSD. + ## Releases: Stable packages are archived in zip files. The source files in the root folder are newest and could be used to replace files from the zip archive. There are pre-built UF2 files for three display types, which could be tried. However, there are too many differnt types and addresses, so it is better to build a fresh one for your own implementation. The PCB files have been made with Eagle 5.11, and can be modified or otherwise re-used when needed. The CAM files for each board are packaged in separate zips, these can be used as-is to order PCBs. From 2b565be52276aba8f16d442da7ffef47b35d1b62 Mon Sep 17 00:00:00 2001 From: Arjan te Marvelde Date: Wed, 6 Jul 2022 22:42:47 +0200 Subject: [PATCH 13/16] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1647b89..4ed72f1 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ Close this VS Developer Command Prompt window ## Building uSDR-pico: -Let's call our **$PICO** from now on. +Let's call our / **$PICO** from now on. Create the folder **$PICO/uSDR-pico** Clone/copy the uSDR-pico code files into **$PICO/uSDR-pico** Copy the file **$PICO/pico-sdk/pico_sdk_import.cmake** into this folder too, it contains the global cmake instructions From bcaa63d9e7f3840276fccf334cb93ff9f35798e6 Mon Sep 17 00:00:00 2001 From: Arjan te Marvelde Date: Wed, 6 Jul 2022 22:43:58 +0200 Subject: [PATCH 14/16] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4ed72f1..3a49faa 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ Close this VS Developer Command Prompt window ## Building uSDR-pico: -Let's call our / **$PICO** from now on. +Let's call our *target folder* **$PICO** from now on. Create the folder **$PICO/uSDR-pico** Clone/copy the uSDR-pico code files into **$PICO/uSDR-pico** Copy the file **$PICO/pico-sdk/pico_sdk_import.cmake** into this folder too, it contains the global cmake instructions From 9e0cfa78b8ef7ef4628368ddad569206bb8447ec Mon Sep 17 00:00:00 2001 From: Arjan te Marvelde Date: Wed, 6 Jul 2022 22:45:34 +0200 Subject: [PATCH 15/16] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3a49faa..b647162 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ Copy the file **$PICO/pico-sdk/pico_sdk_import.cmake** into this folder too, it Create the build folder: **$PICO/uSDR-pico/build** Before the first build you need to check and adapt the file **$PICO/uSDR-pico/CMakeLists.txt**, using your favourite editor, to make sure it reflects your own directory structure. Also in this file, select whether you want **stdio** to use the UART on pins 1 and 2 or the USB serial port. The monitor terminal is on **stdio**. This is needed because CMakeLists.txt directs CMake in the construction of your nmake environment. In fact, every time you change something in CMakeLists.txt (like adding another source file to the build) you will have to swipe the build folder and re-issue cmake. -All building is using the Visual Studio NMake, so it has to be done from a **VS Developer Command Prompt for Pico**. This is found in the Start menu under VS 2022, and it is best to copy a shortcut in a more convenient place. Then the startup folder property in the shortcut can be changed to for example **$PICO**. Within this *DCP* all environment settings have been properly set to enable the building process. +All building is using the Visual Studio NMake, so it has to be done from a **VS Developer Command Prompt for Pico** (*DCP*). This is found in the Start menu under VS 2022, and it is best to copy a shortcut in a more convenient place. Then the startup folder property in the shortcut can be changed to for example **$PICO**. Within this *DCP* all environment settings have been properly set to enable the building process. In the *DCP* window, chdir to the **build** folder and execute: **cmake -G "NMake Makefiles" ..** (do not forget the trailing dots, it points to the folder containing CMakeLists.txt). Now you have initialized the make environment (for *nmake*) and by executing **nmake** in that same **build** folder, all SDK libraries and finally the Pi Pico loadable file **uSDR.uf2** will be created. Rebooting the Pico while the bootsel button is pressed will open a Windows Explorer window with the Pico shown as a Mass Storage Device (e.g. drive E:). Moving **uSDR.uf2** to the Pico is as easy as dragging and dropping this file into that MSD. From 220a2d9c7eed5e55055c6b14772fbe06da709a4b Mon Sep 17 00:00:00 2001 From: Arjan te Marvelde Date: Wed, 6 Jul 2022 22:48:16 +0200 Subject: [PATCH 16/16] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b647162..bdeffc2 100644 --- a/README.md +++ b/README.md @@ -138,7 +138,7 @@ Stable packages are archived in zip files. The source files in the root folder a The PCB files have been made with Eagle 5.11, and can be modified or otherwise re-used when needed. The CAM files for each board are packaged in separate zips, these can be used as-is to order PCBs. # Background -The folder **$PICO/docs** also contains some manuals, of which the *C-SDK description*, the *RP2040 datasheet* and the *Pico Pinout* are absolute must-reads when you start writing software. +The folder **$PICO/docs** also contains some manuals, of which the *C-SDK description*, the *RP2040 datasheet* and the *Pico Pinout* are absolute must-reads when you start writing software. Note that this folder is only created by the **ndabas** script, after manual installation you should find these on the Raspberry website. For calculating filters I have used the free software from Iowa Hills (http://www.iowahills.com/8DownloadPage.html) I also used the online FIR filter calculator T-Filter (http://t-filter.engineerjs.com/)