Compare commits

...

6 Commits

  1. 39
      CHANGELOG.md
  2. 2
      README.md
  3. 2
      build/CMakeCache.txt
  4. 71
      build/CMakeFiles/Makefile.cmake
  5. 146
      build/CMakeFiles/Makefile2
  6. 9
      build/CMakeFiles/TargetDirectories.txt
  7. 62
      build/Makefile
  8. 4
      build/pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/progress.make
  9. 2
      build/pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_bin.dir/progress.make
  10. 4
      build/pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_padded_checksummed_asm.dir/progress.make
  11. 2
      build/src/CMakeFiles/ELF2UF2Build.dir/progress.make
  12. 22
      build/src/CMakeFiles/KISS.dir/CXX.includecache
  13. 20
      build/src/CMakeFiles/KISS.dir/DependInfo.cmake
  14. 99
      build/src/CMakeFiles/KISS.dir/build.make
  15. 10
      build/src/CMakeFiles/KISS.dir/cmake_clean.cmake
  16. 3
      build/src/CMakeFiles/KISS.dir/cmake_clean_target.cmake
  17. 6
      build/src/CMakeFiles/KISS.dir/depend.internal
  18. 6
      build/src/CMakeFiles/KISS.dir/depend.make
  19. 10
      build/src/CMakeFiles/KISS.dir/flags.make
  20. BIN
      build/src/CMakeFiles/KISS.dir/kiss.cpp.obj
  21. 2
      build/src/CMakeFiles/KISS.dir/link.txt
  22. 3
      build/src/CMakeFiles/KISS.dir/progress.make
  23. 176
      build/src/CMakeFiles/LoRa_pico_lib.dir/ASM.includecache
  24. 1726
      build/src/CMakeFiles/LoRa_pico_lib.dir/C.includecache
  25. 232
      build/src/CMakeFiles/LoRa_pico_lib.dir/CXX.includecache
  26. 116
      build/src/CMakeFiles/LoRa_pico_lib.dir/progress.make
  27. 4
      build/src/CMakeFiles/LoRa_print.dir/progress.make
  28. 40
      build/src/CMakeFiles/main.dir/CXX.includecache
  29. 1
      build/src/CMakeFiles/main.dir/DependInfo.cmake
  30. 1
      build/src/CMakeFiles/main.dir/build.make
  31. 5
      build/src/CMakeFiles/main.dir/depend.internal
  32. 5
      build/src/CMakeFiles/main.dir/depend.make
  33. 2
      build/src/CMakeFiles/main.dir/link.txt
  34. BIN
      build/src/CMakeFiles/main.dir/main.cpp.obj
  35. 78
      build/src/CMakeFiles/main.dir/progress.make
  36. 500
      build/src/Makefile
  37. BIN
      build/src/libKISS.a
  38. BIN
      build/src/main.bin
  39. 56437
      build/src/main.dis
  40. BIN
      build/src/main.elf
  41. 1878
      build/src/main.elf.map
  42. 8188
      build/src/main.hex
  43. BIN
      build/src/main.uf2
  44. 3
      src/CMakeLists.txt
  45. 50
      src/Config.h
  46. 28
      src/KISS.h
  47. 460
      src/kiss.cpp
  48. 67
      src/kiss.h
  49. 713
      src/main.cpp

@ -0,0 +1,39 @@
# Changelog
All notable changes to this project will be documented in this file.
Added : for new features.
Changed : for changes in existing functionality.
Deprecated: for soon-to-be removed features.
Removed : for now removed features.
Fixed : for any bug fixes.
Security : in case of vulnerabilities.
## [1.0.0] - pre 2022-05-10
First (more or less) working version.
## [1.0.1] - 2022-05-10
### Added
- Support for saving settings to internal FLASH
## [1.0.2] - 2022-05-11
### Added
- APRS settings can now be saved in FLASH
- logging to serial USB is disabled when in KISS mode (but KISS mode still needs to be implemented)
## [1.0.3] - 2022-05-12
### Added
- All settings (LoRa and APRS) can now be saved to FLASH.
- Command added for restarting LoRa radio when settings are alterred: "restart lora"
- Received LoRa frames can now be converted to proper AX25 frames (needed for KISS TNC functionality)
- KISS mode works for receiving (LoRa -> USB port)
- KISS mode for transmitting in early phase of development
- Can enter KISS mode with command "kiss 1" and exit KISS mode with command "sudo kissparms -p ax0 -x"
## [1.0.4] - 2022-05-13
### Added
- Fully functioning KISS TNC, but repeater flag could not be tested because LoRa APRS software in general is a mess. It appears that nobody reads the AX.25 standard anymore. This software probably is also not up to spec. But at least I tried! You should too: [http://www.ax25.net/AX25.2.2-Jul%2098-2.pdf](http://www.ax25.net/AX25.2.2-Jul%2098-2.pdf)

@ -1,5 +1,5 @@
# lora_aprs_node_pico
A simple LoRa APRS module which can be used as a remote data logger and/or remote I/O controller. It is an evolution of another project of mine: [https://www.meezenest.nl/mees-elektronica/aprs_telemetry.html](https://www.meezenest.nl/mees-elektronica/aprs_telemetry.html)
A simple LoRa APRS module which can be used as a remote data logger and/or remote I/O controller. See my website for more information: [https://www.meezenest.nl/mees-elektronica/RPi-pico-LoRa-APRS.html](https://www.meezenest.nl/mees-elektronica/RPi-pico-LoRa-APRS.html). It is an evolution of another project of mine: [https://www.meezenest.nl/mees-elektronica/aprs_telemetry.html](https://www.meezenest.nl/mees-elektronica/aprs_telemetry.html)
This program is written for the RP2040 C++ SDK.

@ -484,7 +484,7 @@ PICO_BOOT_STAGE2_DIR:INTERNAL=/home/marcel/Documents/electronische_projecten/lor
PICO_CMAKE_PRELOAD_PLATFORM_DIR:INTERNAL=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/cmake/preload/platforms
PICO_CMAKE_PRELOAD_PLATFORM_FILE:INTERNAL=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/cmake/preload/platforms/rp2040.cmake
PICO_COMPILER_ASM:INTERNAL=/usr/bin/arm-none-eabi-gcc
PICO_DOXYGEN_EXCLUDE_PATHS:INTERNAL= /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/cmsis /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2040/hardware_regs
PICO_DOXYGEN_EXCLUDE_PATHS:INTERNAL= /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/cmsis /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2040/hardware_regs /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/cmsis /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2040/hardware_regs /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/cmsis /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2040/hardware_regs /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/cmsis /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2040/hardware_regs /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/cmsis /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2040/hardware_regs
PICO_DOXYGEN_PATHS:INTERNAL= /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/common /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2040
PICO_NO_HARDWARE:INTERNAL=0
PICO_ON_DEVICE:INTERNAL=1

@ -106,81 +106,21 @@ set(CMAKE_MAKEFILE_DEPENDS
"../pico-sdk/tools/FindELF2UF2.cmake"
"../pico_sdk_import.cmake"
"../src/CMakeLists.txt"
"/usr/share/cmake-3.16/Modules/CMakeASMCompiler.cmake.in"
"/usr/share/cmake-3.16/Modules/CMakeASMInformation.cmake"
"/usr/share/cmake-3.16/Modules/CMakeCCompiler.cmake.in"
"/usr/share/cmake-3.16/Modules/CMakeCInformation.cmake"
"/usr/share/cmake-3.16/Modules/CMakeCXXCompiler.cmake.in"
"/usr/share/cmake-3.16/Modules/CMakeCXXInformation.cmake"
"/usr/share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake"
"/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake"
"/usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake"
"/usr/share/cmake-3.16/Modules/CMakeDetermineASMCompiler.cmake"
"/usr/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake"
"/usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake"
"/usr/share/cmake-3.16/Modules/CMakeDetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake"
"/usr/share/cmake-3.16/Modules/CMakeDetermineSystem.cmake"
"/usr/share/cmake-3.16/Modules/CMakeFindBinUtils.cmake"
"/usr/share/cmake-3.16/Modules/CMakeGenericSystem.cmake"
"/usr/share/cmake-3.16/Modules/CMakeInitializeConfigs.cmake"
"/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake"
"/usr/share/cmake-3.16/Modules/CMakeSystem.cmake.in"
"/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake"
"/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake"
"/usr/share/cmake-3.16/Modules/CMakeTestASMCompiler.cmake"
"/usr/share/cmake-3.16/Modules/CMakeTestCCompiler.cmake"
"/usr/share/cmake-3.16/Modules/CMakeTestCXXCompiler.cmake"
"/usr/share/cmake-3.16/Modules/CMakeUnixFindMake.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/ADSP-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Borland-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Cray-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/GHS-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/GNU-ASM.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/GNU-C.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/GNU-FindBinUtils.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/HP-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/IAR-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Intel-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/MSVC-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/PGI-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/PathScale-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/SCO-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/TI-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Watcom-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/XL-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/ExternalProject.cmake"
"/usr/share/cmake-3.16/Modules/FindDoxygen.cmake"
"/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake"
@ -198,10 +138,6 @@ set(CMAKE_MAKEFILE_OUTPUTS
# Byproducts of CMake generate step:
set(CMAKE_MAKEFILE_PRODUCTS
"CMakeFiles/3.16.3/CMakeSystem.cmake"
"CMakeFiles/3.16.3/CMakeCCompiler.cmake"
"CMakeFiles/3.16.3/CMakeCXXCompiler.cmake"
"CMakeFiles/3.16.3/CMakeASMCompiler.cmake"
"CMakeFiles/CMakeDirectoryInformation.cmake"
"pico-sdk/CMakeFiles/CMakeDirectoryInformation.cmake"
"pico-sdk/tools/CMakeFiles/CMakeDirectoryInformation.cmake"
@ -281,8 +217,9 @@ set(CMAKE_DEPEND_INFO_FILES
"pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/DependInfo.cmake"
"pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_bin.dir/DependInfo.cmake"
"pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_padded_checksummed_asm.dir/DependInfo.cmake"
"src/CMakeFiles/ELF2UF2Build.dir/DependInfo.cmake"
"src/CMakeFiles/main.dir/DependInfo.cmake"
"src/CMakeFiles/LoRa_pico_lib.dir/DependInfo.cmake"
"src/CMakeFiles/LoRa_print.dir/DependInfo.cmake"
"src/CMakeFiles/KISS.dir/DependInfo.cmake"
"src/CMakeFiles/LoRa_pico_lib.dir/DependInfo.cmake"
"src/CMakeFiles/main.dir/DependInfo.cmake"
"src/CMakeFiles/ELF2UF2Build.dir/DependInfo.cmake"
)

@ -1525,10 +1525,11 @@ pico-sdk/tools/clean:
# Directory level rules for directory src
# Recursive "all" directory target.
src/all: src/CMakeFiles/ELF2UF2Build.dir/all
src/all: src/CMakeFiles/main.dir/all
src/all: src/CMakeFiles/LoRa_pico_lib.dir/all
src/all: src/CMakeFiles/LoRa_print.dir/all
src/all: src/CMakeFiles/KISS.dir/all
src/all: src/CMakeFiles/LoRa_pico_lib.dir/all
src/all: src/CMakeFiles/main.dir/all
src/all: src/CMakeFiles/ELF2UF2Build.dir/all
.PHONY : src/all
@ -1538,10 +1539,11 @@ src/preinstall:
.PHONY : src/preinstall
# Recursive "clean" directory target.
src/clean: src/CMakeFiles/ELF2UF2Build.dir/clean
src/clean: src/CMakeFiles/main.dir/clean
src/clean: src/CMakeFiles/LoRa_pico_lib.dir/clean
src/clean: src/CMakeFiles/LoRa_print.dir/clean
src/clean: src/CMakeFiles/KISS.dir/clean
src/clean: src/CMakeFiles/LoRa_pico_lib.dir/clean
src/clean: src/CMakeFiles/main.dir/clean
src/clean: src/CMakeFiles/ELF2UF2Build.dir/clean
.PHONY : src/clean
@ -1552,7 +1554,7 @@ src/clean: src/CMakeFiles/LoRa_print.dir/clean
pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/all:
$(MAKE) -f pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/build.make pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/depend
$(MAKE) -f pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/build.make pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=52 "Built target bs2_default"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=53 "Built target bs2_default"
.PHONY : pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/all
# Build rule for subdir invocation for target.
@ -1579,7 +1581,7 @@ pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/clean:
pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_bin.dir/all: pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/all
$(MAKE) -f pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_bin.dir/build.make pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_bin.dir/depend
$(MAKE) -f pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_bin.dir/build.make pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_bin.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=53 "Built target bs2_default_bin"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=54 "Built target bs2_default_bin"
.PHONY : pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_bin.dir/all
# Build rule for subdir invocation for target.
@ -1606,7 +1608,7 @@ pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_bin.dir/clean:
pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_padded_checksummed_asm.dir/all: pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/all
$(MAKE) -f pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_padded_checksummed_asm.dir/build.make pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_padded_checksummed_asm.dir/depend
$(MAKE) -f pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_padded_checksummed_asm.dir/build.make pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_padded_checksummed_asm.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=54 "Built target bs2_default_padded_checksummed_asm"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=55 "Built target bs2_default_padded_checksummed_asm"
.PHONY : pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_padded_checksummed_asm.dir/all
# Build rule for subdir invocation for target.
@ -1627,61 +1629,58 @@ pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_padded_checksummed_as
.PHONY : pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_padded_checksummed_asm.dir/clean
#=============================================================================
# Target rules for target src/CMakeFiles/ELF2UF2Build.dir
# Target rules for target src/CMakeFiles/LoRa_print.dir
# All Build rule for target.
src/CMakeFiles/ELF2UF2Build.dir/all:
$(MAKE) -f src/CMakeFiles/ELF2UF2Build.dir/build.make src/CMakeFiles/ELF2UF2Build.dir/depend
$(MAKE) -f src/CMakeFiles/ELF2UF2Build.dir/build.make src/CMakeFiles/ELF2UF2Build.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=1,2,3,4,5 "Built target ELF2UF2Build"
.PHONY : src/CMakeFiles/ELF2UF2Build.dir/all
src/CMakeFiles/LoRa_print.dir/all:
$(MAKE) -f src/CMakeFiles/LoRa_print.dir/build.make src/CMakeFiles/LoRa_print.dir/depend
$(MAKE) -f src/CMakeFiles/LoRa_print.dir/build.make src/CMakeFiles/LoRa_print.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=51,52 "Built target LoRa_print"
.PHONY : src/CMakeFiles/LoRa_print.dir/all
# Build rule for subdir invocation for target.
src/CMakeFiles/ELF2UF2Build.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles 5
$(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/ELF2UF2Build.dir/all
src/CMakeFiles/LoRa_print.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles 2
$(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/LoRa_print.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles 0
.PHONY : src/CMakeFiles/ELF2UF2Build.dir/rule
.PHONY : src/CMakeFiles/LoRa_print.dir/rule
# Convenience name for target.
ELF2UF2Build: src/CMakeFiles/ELF2UF2Build.dir/rule
LoRa_print: src/CMakeFiles/LoRa_print.dir/rule
.PHONY : ELF2UF2Build
.PHONY : LoRa_print
# clean rule for target.
src/CMakeFiles/ELF2UF2Build.dir/clean:
$(MAKE) -f src/CMakeFiles/ELF2UF2Build.dir/build.make src/CMakeFiles/ELF2UF2Build.dir/clean
.PHONY : src/CMakeFiles/ELF2UF2Build.dir/clean
src/CMakeFiles/LoRa_print.dir/clean:
$(MAKE) -f src/CMakeFiles/LoRa_print.dir/build.make src/CMakeFiles/LoRa_print.dir/clean
.PHONY : src/CMakeFiles/LoRa_print.dir/clean
#=============================================================================
# Target rules for target src/CMakeFiles/main.dir
# Target rules for target src/CMakeFiles/KISS.dir
# All Build rule for target.
src/CMakeFiles/main.dir/all: pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_padded_checksummed_asm.dir/all
src/CMakeFiles/main.dir/all: src/CMakeFiles/ELF2UF2Build.dir/all
src/CMakeFiles/main.dir/all: src/CMakeFiles/LoRa_pico_lib.dir/all
src/CMakeFiles/main.dir/all: src/CMakeFiles/LoRa_print.dir/all
$(MAKE) -f src/CMakeFiles/main.dir/build.make src/CMakeFiles/main.dir/depend
$(MAKE) -f src/CMakeFiles/main.dir/build.make src/CMakeFiles/main.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100 "Built target main"
.PHONY : src/CMakeFiles/main.dir/all
src/CMakeFiles/KISS.dir/all:
$(MAKE) -f src/CMakeFiles/KISS.dir/build.make src/CMakeFiles/KISS.dir/depend
$(MAKE) -f src/CMakeFiles/KISS.dir/build.make src/CMakeFiles/KISS.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=5,6 "Built target KISS"
.PHONY : src/CMakeFiles/KISS.dir/all
# Build rule for subdir invocation for target.
src/CMakeFiles/main.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles 99
$(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/main.dir/all
src/CMakeFiles/KISS.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles 2
$(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/KISS.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles 0
.PHONY : src/CMakeFiles/main.dir/rule
.PHONY : src/CMakeFiles/KISS.dir/rule
# Convenience name for target.
main: src/CMakeFiles/main.dir/rule
KISS: src/CMakeFiles/KISS.dir/rule
.PHONY : main
.PHONY : KISS
# clean rule for target.
src/CMakeFiles/main.dir/clean:
$(MAKE) -f src/CMakeFiles/main.dir/build.make src/CMakeFiles/main.dir/clean
.PHONY : src/CMakeFiles/main.dir/clean
src/CMakeFiles/KISS.dir/clean:
$(MAKE) -f src/CMakeFiles/KISS.dir/build.make src/CMakeFiles/KISS.dir/clean
.PHONY : src/CMakeFiles/KISS.dir/clean
#=============================================================================
# Target rules for target src/CMakeFiles/LoRa_pico_lib.dir
@ -1691,7 +1690,7 @@ src/CMakeFiles/LoRa_pico_lib.dir/all: pico-sdk/src/rp2_common/boot_stage2/CMakeF
src/CMakeFiles/LoRa_pico_lib.dir/all: src/CMakeFiles/LoRa_print.dir/all
$(MAKE) -f src/CMakeFiles/LoRa_pico_lib.dir/build.make src/CMakeFiles/LoRa_pico_lib.dir/depend
$(MAKE) -f src/CMakeFiles/LoRa_pico_lib.dir/build.make src/CMakeFiles/LoRa_pico_lib.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50 "Built target LoRa_pico_lib"
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50 "Built target LoRa_pico_lib"
.PHONY : src/CMakeFiles/LoRa_pico_lib.dir/all
# Build rule for subdir invocation for target.
@ -1712,31 +1711,62 @@ src/CMakeFiles/LoRa_pico_lib.dir/clean:
.PHONY : src/CMakeFiles/LoRa_pico_lib.dir/clean
#=============================================================================
# Target rules for target src/CMakeFiles/LoRa_print.dir
# Target rules for target src/CMakeFiles/main.dir
# All Build rule for target.
src/CMakeFiles/LoRa_print.dir/all:
$(MAKE) -f src/CMakeFiles/LoRa_print.dir/build.make src/CMakeFiles/LoRa_print.dir/depend
$(MAKE) -f src/CMakeFiles/LoRa_print.dir/build.make src/CMakeFiles/LoRa_print.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=51 "Built target LoRa_print"
.PHONY : src/CMakeFiles/LoRa_print.dir/all
src/CMakeFiles/main.dir/all: pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_padded_checksummed_asm.dir/all
src/CMakeFiles/main.dir/all: src/CMakeFiles/LoRa_print.dir/all
src/CMakeFiles/main.dir/all: src/CMakeFiles/KISS.dir/all
src/CMakeFiles/main.dir/all: src/CMakeFiles/LoRa_pico_lib.dir/all
src/CMakeFiles/main.dir/all: src/CMakeFiles/ELF2UF2Build.dir/all
$(MAKE) -f src/CMakeFiles/main.dir/build.make src/CMakeFiles/main.dir/depend
$(MAKE) -f src/CMakeFiles/main.dir/build.make src/CMakeFiles/main.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100 "Built target main"
.PHONY : src/CMakeFiles/main.dir/all
# Build rule for subdir invocation for target.
src/CMakeFiles/LoRa_print.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles 1
$(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/LoRa_print.dir/all
src/CMakeFiles/main.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles 99
$(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/main.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles 0
.PHONY : src/CMakeFiles/LoRa_print.dir/rule
.PHONY : src/CMakeFiles/main.dir/rule
# Convenience name for target.
LoRa_print: src/CMakeFiles/LoRa_print.dir/rule
main: src/CMakeFiles/main.dir/rule
.PHONY : LoRa_print
.PHONY : main
# clean rule for target.
src/CMakeFiles/LoRa_print.dir/clean:
$(MAKE) -f src/CMakeFiles/LoRa_print.dir/build.make src/CMakeFiles/LoRa_print.dir/clean
.PHONY : src/CMakeFiles/LoRa_print.dir/clean
src/CMakeFiles/main.dir/clean:
$(MAKE) -f src/CMakeFiles/main.dir/build.make src/CMakeFiles/main.dir/clean
.PHONY : src/CMakeFiles/main.dir/clean
#=============================================================================
# Target rules for target src/CMakeFiles/ELF2UF2Build.dir
# All Build rule for target.
src/CMakeFiles/ELF2UF2Build.dir/all:
$(MAKE) -f src/CMakeFiles/ELF2UF2Build.dir/build.make src/CMakeFiles/ELF2UF2Build.dir/depend
$(MAKE) -f src/CMakeFiles/ELF2UF2Build.dir/build.make src/CMakeFiles/ELF2UF2Build.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=1,2,3,4 "Built target ELF2UF2Build"
.PHONY : src/CMakeFiles/ELF2UF2Build.dir/all
# Build rule for subdir invocation for target.
src/CMakeFiles/ELF2UF2Build.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles 4
$(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/ELF2UF2Build.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles 0
.PHONY : src/CMakeFiles/ELF2UF2Build.dir/rule
# Convenience name for target.
ELF2UF2Build: src/CMakeFiles/ELF2UF2Build.dir/rule
.PHONY : ELF2UF2Build
# clean rule for target.
src/CMakeFiles/ELF2UF2Build.dir/clean:
$(MAKE) -f src/CMakeFiles/ELF2UF2Build.dir/build.make src/CMakeFiles/ELF2UF2Build.dir/clean
.PHONY : src/CMakeFiles/ELF2UF2Build.dir/clean
#=============================================================================
# Special targets to cleanup operation of make.

@ -143,9 +143,10 @@
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/pico-sdk/src/rp2040/hardware_structs/CMakeFiles/edit_cache.dir
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/pico-sdk/docs/CMakeFiles/rebuild_cache.dir
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/pico-sdk/docs/CMakeFiles/edit_cache.dir
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src/CMakeFiles/edit_cache.dir
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src/CMakeFiles/rebuild_cache.dir
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src/CMakeFiles/ELF2UF2Build.dir
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src/CMakeFiles/main.dir
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src/CMakeFiles/LoRa_pico_lib.dir
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src/CMakeFiles/LoRa_print.dir
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src/CMakeFiles/KISS.dir
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src/CMakeFiles/LoRa_pico_lib.dir
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src/CMakeFiles/main.dir
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src/CMakeFiles/ELF2UF2Build.dir
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src/CMakeFiles/edit_cache.dir

@ -150,30 +150,30 @@ bs2_default_padded_checksummed_asm/fast:
.PHONY : bs2_default_padded_checksummed_asm/fast
#=============================================================================
# Target rules for targets named ELF2UF2Build
# Target rules for targets named LoRa_print
# Build rule for target.
ELF2UF2Build: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 ELF2UF2Build
.PHONY : ELF2UF2Build
LoRa_print: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 LoRa_print
.PHONY : LoRa_print
# fast build rule for target.
ELF2UF2Build/fast:
$(MAKE) -f src/CMakeFiles/ELF2UF2Build.dir/build.make src/CMakeFiles/ELF2UF2Build.dir/build
.PHONY : ELF2UF2Build/fast
LoRa_print/fast:
$(MAKE) -f src/CMakeFiles/LoRa_print.dir/build.make src/CMakeFiles/LoRa_print.dir/build
.PHONY : LoRa_print/fast
#=============================================================================
# Target rules for targets named main
# Target rules for targets named KISS
# Build rule for target.
main: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 main
.PHONY : main
KISS: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 KISS
.PHONY : KISS
# fast build rule for target.
main/fast:
$(MAKE) -f src/CMakeFiles/main.dir/build.make src/CMakeFiles/main.dir/build
.PHONY : main/fast
KISS/fast:
$(MAKE) -f src/CMakeFiles/KISS.dir/build.make src/CMakeFiles/KISS.dir/build
.PHONY : KISS/fast
#=============================================================================
# Target rules for targets named LoRa_pico_lib
@ -189,17 +189,30 @@ LoRa_pico_lib/fast:
.PHONY : LoRa_pico_lib/fast
#=============================================================================
# Target rules for targets named LoRa_print
# Target rules for targets named main
# Build rule for target.
LoRa_print: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 LoRa_print
.PHONY : LoRa_print
main: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 main
.PHONY : main
# fast build rule for target.
LoRa_print/fast:
$(MAKE) -f src/CMakeFiles/LoRa_print.dir/build.make src/CMakeFiles/LoRa_print.dir/build
.PHONY : LoRa_print/fast
main/fast:
$(MAKE) -f src/CMakeFiles/main.dir/build.make src/CMakeFiles/main.dir/build
.PHONY : main/fast
#=============================================================================
# Target rules for targets named ELF2UF2Build
# Build rule for target.
ELF2UF2Build: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 ELF2UF2Build
.PHONY : ELF2UF2Build
# fast build rule for target.
ELF2UF2Build/fast:
$(MAKE) -f src/CMakeFiles/ELF2UF2Build.dir/build.make src/CMakeFiles/ELF2UF2Build.dir/build
.PHONY : ELF2UF2Build/fast
# Help Target
help:
@ -212,10 +225,11 @@ help:
@echo "... bs2_default"
@echo "... bs2_default_bin"
@echo "... bs2_default_padded_checksummed_asm"
@echo "... ELF2UF2Build"
@echo "... main"
@echo "... LoRa_pico_lib"
@echo "... LoRa_print"
@echo "... KISS"
@echo "... LoRa_pico_lib"
@echo "... main"
@echo "... ELF2UF2Build"
.PHONY : help

@ -1,3 +1,3 @@
CMAKE_PROGRESS_1 = 52
CMAKE_PROGRESS_2 =
CMAKE_PROGRESS_1 =
CMAKE_PROGRESS_2 = 53

@ -1,3 +1,3 @@
CMAKE_PROGRESS_1 = 54
CMAKE_PROGRESS_2 =
CMAKE_PROGRESS_1 =
CMAKE_PROGRESS_2 = 55

@ -5,5 +5,5 @@ CMAKE_PROGRESS_4 = 2
CMAKE_PROGRESS_5 = 3
CMAKE_PROGRESS_6 =
CMAKE_PROGRESS_7 = 4
CMAKE_PROGRESS_8 = 5
CMAKE_PROGRESS_8 =

@ -0,0 +1,22 @@
#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">])
#IncludeRegexScan: ^.*$
#IncludeRegexComplain: ^$
#IncludeRegexTransform:
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/kiss.cpp
kiss.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/kiss.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/kiss.h
stdio.h
-
string.h
-
time.h
-
stdarg.h
-

@ -0,0 +1,20 @@
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
"CXX"
)
# The set of files for implicit dependencies of each language:
set(CMAKE_DEPENDS_CHECK_CXX
"/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/kiss.cpp" "/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src/CMakeFiles/KISS.dir/kiss.cpp.obj"
)
set(CMAKE_CXX_COMPILER_ID "GNU")
# The include file search paths:
set(CMAKE_CXX_TARGET_INCLUDE_PATH
)
# Targets to which this target links.
set(CMAKE_TARGET_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")

@ -0,0 +1,99 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.16
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build
# Include any dependencies generated for this target.
include src/CMakeFiles/KISS.dir/depend.make
# Include the progress variables for this target.
include src/CMakeFiles/KISS.dir/progress.make
# Include the compile flags for this target's objects.
include src/CMakeFiles/KISS.dir/flags.make
src/CMakeFiles/KISS.dir/kiss.cpp.obj: src/CMakeFiles/KISS.dir/flags.make
src/CMakeFiles/KISS.dir/kiss.cpp.obj: ../src/kiss.cpp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object src/CMakeFiles/KISS.dir/kiss.cpp.obj"
cd /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src && /usr/bin/arm-none-eabi-g++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/KISS.dir/kiss.cpp.obj -c /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/kiss.cpp
src/CMakeFiles/KISS.dir/kiss.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/KISS.dir/kiss.cpp.i"
cd /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src && /usr/bin/arm-none-eabi-g++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/kiss.cpp > CMakeFiles/KISS.dir/kiss.cpp.i
src/CMakeFiles/KISS.dir/kiss.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/KISS.dir/kiss.cpp.s"
cd /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src && /usr/bin/arm-none-eabi-g++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/kiss.cpp -o CMakeFiles/KISS.dir/kiss.cpp.s
# Object files for target KISS
KISS_OBJECTS = \
"CMakeFiles/KISS.dir/kiss.cpp.obj"
# External object files for target KISS
KISS_EXTERNAL_OBJECTS =
src/libKISS.a: src/CMakeFiles/KISS.dir/kiss.cpp.obj
src/libKISS.a: src/CMakeFiles/KISS.dir/build.make
src/libKISS.a: src/CMakeFiles/KISS.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX static library libKISS.a"
cd /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src && $(CMAKE_COMMAND) -P CMakeFiles/KISS.dir/cmake_clean_target.cmake
cd /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/KISS.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
src/CMakeFiles/KISS.dir/build: src/libKISS.a
.PHONY : src/CMakeFiles/KISS.dir/build
src/CMakeFiles/KISS.dir/clean:
cd /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src && $(CMAKE_COMMAND) -P CMakeFiles/KISS.dir/cmake_clean.cmake
.PHONY : src/CMakeFiles/KISS.dir/clean
src/CMakeFiles/KISS.dir/depend:
cd /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src /home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src/CMakeFiles/KISS.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : src/CMakeFiles/KISS.dir/depend

@ -0,0 +1,10 @@
file(REMOVE_RECURSE
"CMakeFiles/KISS.dir/kiss.cpp.obj"
"libKISS.a"
"libKISS.pdb"
)
# Per-language clean rules from dependency scanning.
foreach(lang CXX)
include(CMakeFiles/KISS.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()

@ -0,0 +1,3 @@
file(REMOVE_RECURSE
"libKISS.a"
)

@ -0,0 +1,6 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.16
src/CMakeFiles/KISS.dir/kiss.cpp.obj
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/kiss.cpp
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/kiss.h

@ -0,0 +1,6 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.16
src/CMakeFiles/KISS.dir/kiss.cpp.obj: ../src/kiss.cpp
src/CMakeFiles/KISS.dir/kiss.cpp.obj: ../src/kiss.h

@ -0,0 +1,10 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.16
# compile CXX with /usr/bin/arm-none-eabi-g++
CXX_FLAGS = -mcpu=cortex-m0plus -mthumb -O3 -DNDEBUG -std=gnu++1z
CXX_DEFINES =
CXX_INCLUDES =

@ -0,0 +1,2 @@
/usr/bin/arm-none-eabi-ar qc libKISS.a CMakeFiles/KISS.dir/kiss.cpp.obj
/usr/bin/arm-none-eabi-ranlib libKISS.a

@ -0,0 +1,3 @@
CMAKE_PROGRESS_1 = 5
CMAKE_PROGRESS_2 = 6

@ -6,179 +6,3 @@
#IncludeRegexTransform:
../pico-sdk/src/common/pico_base/include/pico.h
pico/types.h
../pico-sdk/src/common/pico_base/include/pico/types.h
pico/version.h
../pico-sdk/src/common/pico_base/include/pico/version.h
pico/config.h
../pico-sdk/src/common/pico_base/include/pico/config.h
pico/platform.h
../pico-sdk/src/common/pico_base/include/pico/platform.h
pico/error.h
../pico-sdk/src/common/pico_base/include/pico/error.h
../pico-sdk/src/common/pico_base/include/pico/assert.h
stdbool.h
-
cassert
-
assert.h
-
../pico-sdk/src/common/pico_base/include/pico/config.h
pico/config_autogen.h
../pico-sdk/src/common/pico_base/include/pico/pico/config_autogen.h
../pico-sdk/src/common/pico_base/include/pico/error.h
../pico-sdk/src/common/pico_base/include/pico/types.h
pico/assert.h
../pico-sdk/src/common/pico_base/include/pico/pico/assert.h
stdint.h
-
stdbool.h
-
stddef.h
-
../pico-sdk/src/common/pico_binary_info/include/pico/binary_info/defs.h
../pico-sdk/src/rp2040/hardware_regs/include/hardware/platform_defs.h
../pico-sdk/src/rp2040/hardware_regs/include/hardware/regs/addressmap.h
hardware/platform_defs.h
../pico-sdk/src/rp2040/hardware_regs/include/hardware/regs/hardware/platform_defs.h
../pico-sdk/src/rp2040/hardware_regs/include/hardware/regs/intctrl.h
../pico-sdk/src/rp2040/hardware_regs/include/hardware/regs/m0plus.h
../pico-sdk/src/rp2040/hardware_regs/include/hardware/regs/sio.h
../pico-sdk/src/rp2_common/hardware_base/include/hardware/address_mapped.h
pico.h
../pico-sdk/src/rp2_common/hardware_base/include/hardware/pico.h
hardware/regs/addressmap.h
../pico-sdk/src/rp2_common/hardware_base/include/hardware/hardware/regs/addressmap.h
../pico-sdk/src/rp2_common/hardware_divider/include/hardware/divider_helper.S
hardware/regs/addressmap.h
../pico-sdk/src/rp2_common/hardware_divider/include/hardware/hardware/regs/addressmap.h
hardware/regs/sio.h
../pico-sdk/src/rp2_common/hardware_divider/include/hardware/hardware/regs/sio.h
../pico-sdk/src/rp2_common/hardware_irq/include/hardware/irq.h
pico.h
../pico-sdk/src/rp2_common/hardware_irq/include/hardware/pico.h
hardware/address_mapped.h
../pico-sdk/src/rp2_common/hardware_irq/include/hardware/hardware/address_mapped.h
hardware/regs/intctrl.h
../pico-sdk/src/rp2_common/hardware_irq/include/hardware/hardware/regs/intctrl.h
hardware/regs/m0plus.h
../pico-sdk/src/rp2_common/hardware_irq/include/hardware/hardware/regs/m0plus.h
../pico-sdk/src/rp2_common/pico_bootrom/include/pico/bootrom.h
pico.h
../pico-sdk/src/rp2_common/pico_bootrom/include/pico/pico.h
../pico-sdk/src/rp2_common/pico_bootrom/include/pico/bootrom/sf_table.h
../pico-sdk/src/rp2_common/pico_platform/include/pico/asm_helper.S
pico.h
../pico-sdk/src/rp2_common/pico_platform/include/pico/pico.h
../pico-sdk/src/rp2_common/pico_platform/include/pico/platform.h
hardware/platform_defs.h
../pico-sdk/src/rp2_common/pico_platform/include/pico/hardware/platform_defs.h
sys/cdefs.h
-
pico/types.h
../pico-sdk/src/rp2_common/pico_platform/include/pico/pico/types.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/boards/include/boards/pico.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/cmsis/include/cmsis/rename_exceptions.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/hardware_divider/divider.S
pico/asm_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/hardware_divider/pico/asm_helper.S
hardware/regs/addressmap.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/hardware_divider/hardware/regs/addressmap.h
hardware/regs/sio.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/hardware_divider/hardware/regs/sio.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/hardware_irq/irq_handler_chain.S
pico.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/hardware_irq/pico.h
hardware/irq.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/hardware_irq/hardware/irq.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_bit_ops/bit_ops_aeabi.S
pico/asm_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_bit_ops/pico/asm_helper.S
pico/bootrom.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_bit_ops/pico/bootrom.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_divider/divider.S
hardware/regs/addressmap.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_divider/hardware/regs/addressmap.h
hardware/divider_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_divider/hardware/divider_helper.S
pico/asm_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_divider/pico/asm_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_double/double_aeabi.S
pico/asm_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_double/pico/asm_helper.S
pico/bootrom/sf_table.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_double/pico/bootrom/sf_table.h
hardware/divider_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_double/hardware/divider_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_double/double_v1_rom_shim.S
pico/asm_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_double/pico/asm_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_float/float_aeabi.S
pico/asm_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_float/pico/asm_helper.S
pico/bootrom/sf_table.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_float/pico/bootrom/sf_table.h
hardware/divider_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_float/hardware/divider_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_float/float_v1_rom_shim.S
pico/asm_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_float/pico/asm_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.S
pico/asm_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_int64_ops/pico/asm_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_mem_ops/mem_ops_aeabi.S
pico/asm_helper.S
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_mem_ops/pico/asm_helper.S
pico/bootrom.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_mem_ops/pico/bootrom.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_standard_link/crt0.S
pico.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_standard_link/pico.h
hardware/regs/m0plus.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_standard_link/hardware/regs/m0plus.h
hardware/regs/addressmap.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_standard_link/hardware/regs/addressmap.h
hardware/regs/sio.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_standard_link/hardware/regs/sio.h
pico/binary_info/defs.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_standard_link/pico/binary_info/defs.h
generated/pico_base/pico/config_autogen.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/boards/include/boards/pico.h
-
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/cmsis/include/cmsis/rename_exceptions.h
-
generated/pico_base/pico/version.h

File diff suppressed because it is too large Load Diff

@ -6,235 +6,3 @@
#IncludeRegexTransform:
../pico-sdk/src/common/pico_base/include/pico.h
pico/types.h
../pico-sdk/src/common/pico_base/include/pico/types.h
pico/version.h
../pico-sdk/src/common/pico_base/include/pico/version.h
pico/config.h
../pico-sdk/src/common/pico_base/include/pico/config.h
pico/platform.h
../pico-sdk/src/common/pico_base/include/pico/platform.h
pico/error.h
../pico-sdk/src/common/pico_base/include/pico/error.h
../pico-sdk/src/common/pico_base/include/pico/assert.h
stdbool.h
-
cassert
-
assert.h
-
../pico-sdk/src/common/pico_base/include/pico/config.h
pico/config_autogen.h
../pico-sdk/src/common/pico_base/include/pico/pico/config_autogen.h
../pico-sdk/src/common/pico_base/include/pico/error.h
../pico-sdk/src/common/pico_base/include/pico/types.h
pico/assert.h
../pico-sdk/src/common/pico_base/include/pico/pico/assert.h
stdint.h
-
stdbool.h
-
stddef.h
-
../pico-sdk/src/common/pico_binary_info/include/pico/binary_info.h
pico/binary_info/defs.h
../pico-sdk/src/common/pico_binary_info/include/pico/pico/binary_info/defs.h
pico/binary_info/structure.h
../pico-sdk/src/common/pico_binary_info/include/pico/pico/binary_info/structure.h
pico/binary_info/code.h
../pico-sdk/src/common/pico_binary_info/include/pico/pico/binary_info/code.h
../pico-sdk/src/common/pico_binary_info/include/pico/binary_info/code.h
pico.h
../pico-sdk/src/common/pico_binary_info/include/pico/binary_info/pico.h
pico/binary_info/structure.h
../pico-sdk/src/common/pico_binary_info/include/pico/binary_info/pico/binary_info/structure.h
../pico-sdk/src/common/pico_binary_info/include/pico/binary_info/defs.h
../pico-sdk/src/common/pico_binary_info/include/pico/binary_info/structure.h
stdint.h
-
../pico-sdk/src/common/pico_stdlib/include/pico/stdlib.h
pico.h
../pico-sdk/src/common/pico_stdlib/include/pico/pico.h
pico/stdio.h
../pico-sdk/src/common/pico_stdlib/include/pico/pico/stdio.h
pico/time.h
../pico-sdk/src/common/pico_stdlib/include/pico/pico/time.h
hardware/gpio.h
../pico-sdk/src/common/pico_stdlib/include/pico/hardware/gpio.h
hardware/uart.h
../pico-sdk/src/common/pico_stdlib/include/pico/hardware/uart.h
pico/stdio_uart.h
../pico-sdk/src/common/pico_stdlib/include/pico/pico/stdio_uart.h
pico/stdio_usb.h
../pico-sdk/src/common/pico_stdlib/include/pico/pico/stdio_usb.h
pico/stdio_semihosting.h
../pico-sdk/src/common/pico_stdlib/include/pico/pico/stdio_semihosting.h
../pico-sdk/src/common/pico_time/include/pico/time.h
pico.h
../pico-sdk/src/common/pico_time/include/pico/pico.h
hardware/timer.h
../pico-sdk/src/common/pico_time/include/pico/hardware/timer.h
../pico-sdk/src/rp2040/hardware_regs/include/hardware/platform_defs.h
../pico-sdk/src/rp2040/hardware_regs/include/hardware/regs/addressmap.h
hardware/platform_defs.h
../pico-sdk/src/rp2040/hardware_regs/include/hardware/regs/hardware/platform_defs.h
../pico-sdk/src/rp2040/hardware_regs/include/hardware/regs/dreq.h
../pico-sdk/src/rp2040/hardware_regs/include/hardware/regs/pads_bank0.h
../pico-sdk/src/rp2040/hardware_regs/include/hardware/regs/sio.h
../pico-sdk/src/rp2040/hardware_regs/include/hardware/regs/spi.h
../pico-sdk/src/rp2040/hardware_regs/include/hardware/regs/timer.h
../pico-sdk/src/rp2040/hardware_regs/include/hardware/regs/uart.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/interp.h
hardware/address_mapped.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/hardware/address_mapped.h
hardware/regs/sio.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/hardware/regs/sio.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/padsbank0.h
hardware/address_mapped.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/hardware/address_mapped.h
hardware/regs/pads_bank0.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/hardware/regs/pads_bank0.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/sio.h
hardware/address_mapped.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/hardware/address_mapped.h
hardware/regs/sio.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/hardware/regs/sio.h
hardware/structs/interp.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/hardware/structs/interp.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/spi.h
hardware/address_mapped.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/hardware/address_mapped.h
hardware/regs/spi.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/hardware/regs/spi.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/timer.h
hardware/address_mapped.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/hardware/address_mapped.h
hardware/regs/timer.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/hardware/regs/timer.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/uart.h
hardware/address_mapped.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/hardware/address_mapped.h
hardware/regs/uart.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/hardware/regs/uart.h
../pico-sdk/src/rp2_common/hardware_base/include/hardware/address_mapped.h
pico.h
../pico-sdk/src/rp2_common/hardware_base/include/hardware/pico.h
hardware/regs/addressmap.h
../pico-sdk/src/rp2_common/hardware_base/include/hardware/hardware/regs/addressmap.h
../pico-sdk/src/rp2_common/hardware_gpio/include/hardware/gpio.h
pico.h
../pico-sdk/src/rp2_common/hardware_gpio/include/hardware/pico.h
hardware/structs/sio.h
../pico-sdk/src/rp2_common/hardware_gpio/include/hardware/hardware/structs/sio.h
hardware/structs/padsbank0.h
../pico-sdk/src/rp2_common/hardware_gpio/include/hardware/hardware/structs/padsbank0.h
../pico-sdk/src/rp2_common/hardware_spi/include/hardware/spi.h
pico.h
../pico-sdk/src/rp2_common/hardware_spi/include/hardware/pico.h
pico/time.h
../pico-sdk/src/rp2_common/hardware_spi/include/hardware/pico/time.h
hardware/structs/spi.h
../pico-sdk/src/rp2_common/hardware_spi/include/hardware/hardware/structs/spi.h
hardware/regs/dreq.h
../pico-sdk/src/rp2_common/hardware_spi/include/hardware/hardware/regs/dreq.h
../pico-sdk/src/rp2_common/hardware_timer/include/hardware/timer.h
pico.h
../pico-sdk/src/rp2_common/hardware_timer/include/hardware/pico.h
hardware/structs/timer.h
../pico-sdk/src/rp2_common/hardware_timer/include/hardware/hardware/structs/timer.h
../pico-sdk/src/rp2_common/hardware_uart/include/hardware/uart.h
pico.h
../pico-sdk/src/rp2_common/hardware_uart/include/hardware/pico.h
hardware/structs/uart.h
../pico-sdk/src/rp2_common/hardware_uart/include/hardware/hardware/structs/uart.h
hardware/regs/dreq.h
../pico-sdk/src/rp2_common/hardware_uart/include/hardware/hardware/regs/dreq.h
../pico-sdk/src/rp2_common/pico_platform/include/pico/platform.h
hardware/platform_defs.h
../pico-sdk/src/rp2_common/pico_platform/include/pico/hardware/platform_defs.h
sys/cdefs.h
-
pico/types.h
../pico-sdk/src/rp2_common/pico_platform/include/pico/pico/types.h
../pico-sdk/src/rp2_common/pico_stdio/include/pico/stdio.h
pico.h
../pico-sdk/src/rp2_common/pico_stdio/include/pico/pico.h
../pico-sdk/src/rp2_common/pico_stdio_usb/include/pico/stdio_usb.h
pico/stdio.h
../pico-sdk/src/rp2_common/pico_stdio_usb/include/pico/pico/stdio.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/boards/include/boards/pico.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/cmsis/include/cmsis/rename_exceptions.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp
cstdlib
-
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/LoRa-RP2040.cpp
LoRa-RP2040.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/LoRa-RP2040.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/LoRa-RP2040.h
pico/stdlib.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/pico/stdlib.h
pico/binary_info.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/pico/binary_info.h
hardware/gpio.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/hardware/gpio.h
hardware/spi.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/hardware/spi.h
string.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/string.h
Print.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/Print.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/Print.h
inttypes.h
-
stdio.h
-
string
-
generated/pico_base/pico/config_autogen.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/boards/include/boards/pico.h
-
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/cmsis/include/cmsis/rename_exceptions.h
-
generated/pico_base/pico/version.h

@ -1,73 +1,73 @@
CMAKE_PROGRESS_1 =
CMAKE_PROGRESS_2 = 6
CMAKE_PROGRESS_3 =
CMAKE_PROGRESS_4 = 7
CMAKE_PROGRESS_5 = 8
CMAKE_PROGRESS_2 = 7
CMAKE_PROGRESS_3 = 8
CMAKE_PROGRESS_4 =
CMAKE_PROGRESS_5 = 9
CMAKE_PROGRESS_6 =
CMAKE_PROGRESS_7 = 9
CMAKE_PROGRESS_8 = 10
CMAKE_PROGRESS_7 = 10
CMAKE_PROGRESS_8 = 11
CMAKE_PROGRESS_9 =
CMAKE_PROGRESS_10 = 11
CMAKE_PROGRESS_11 =
CMAKE_PROGRESS_12 = 12
CMAKE_PROGRESS_13 = 13
CMAKE_PROGRESS_10 = 12
CMAKE_PROGRESS_11 = 13
CMAKE_PROGRESS_12 =
CMAKE_PROGRESS_13 = 14
CMAKE_PROGRESS_14 =
CMAKE_PROGRESS_15 = 14
CMAKE_PROGRESS_16 = 15
CMAKE_PROGRESS_15 = 15
CMAKE_PROGRESS_16 = 16
CMAKE_PROGRESS_17 =
CMAKE_PROGRESS_18 = 16
CMAKE_PROGRESS_19 =
CMAKE_PROGRESS_20 = 17
CMAKE_PROGRESS_21 = 18
CMAKE_PROGRESS_18 = 17
CMAKE_PROGRESS_19 = 18
CMAKE_PROGRESS_20 =
CMAKE_PROGRESS_21 = 19
CMAKE_PROGRESS_22 =
CMAKE_PROGRESS_23 = 19
CMAKE_PROGRESS_24 = 20
CMAKE_PROGRESS_23 = 20
CMAKE_PROGRESS_24 = 21
CMAKE_PROGRESS_25 =
CMAKE_PROGRESS_26 = 21
CMAKE_PROGRESS_27 = 22
CMAKE_PROGRESS_28 =
CMAKE_PROGRESS_29 = 23
CMAKE_PROGRESS_26 = 22
CMAKE_PROGRESS_27 =
CMAKE_PROGRESS_28 = 23
CMAKE_PROGRESS_29 = 24
CMAKE_PROGRESS_30 =
CMAKE_PROGRESS_31 = 24
CMAKE_PROGRESS_32 = 25
CMAKE_PROGRESS_31 = 25
CMAKE_PROGRESS_32 = 26
CMAKE_PROGRESS_33 =
CMAKE_PROGRESS_34 = 26
CMAKE_PROGRESS_35 = 27
CMAKE_PROGRESS_36 =
CMAKE_PROGRESS_37 = 28
CMAKE_PROGRESS_34 = 27
CMAKE_PROGRESS_35 =
CMAKE_PROGRESS_36 = 28
CMAKE_PROGRESS_37 = 29
CMAKE_PROGRESS_38 =
CMAKE_PROGRESS_39 = 29
CMAKE_PROGRESS_40 = 30
CMAKE_PROGRESS_39 = 30
CMAKE_PROGRESS_40 = 31
CMAKE_PROGRESS_41 =
CMAKE_PROGRESS_42 = 31
CMAKE_PROGRESS_43 = 32
CMAKE_PROGRESS_44 =
CMAKE_PROGRESS_45 = 33
CMAKE_PROGRESS_42 = 32
CMAKE_PROGRESS_43 =
CMAKE_PROGRESS_44 = 33
CMAKE_PROGRESS_45 = 34
CMAKE_PROGRESS_46 =
CMAKE_PROGRESS_47 = 34
CMAKE_PROGRESS_48 = 35
CMAKE_PROGRESS_47 = 35
CMAKE_PROGRESS_48 = 36
CMAKE_PROGRESS_49 =
CMAKE_PROGRESS_50 = 36
CMAKE_PROGRESS_51 = 37
CMAKE_PROGRESS_52 =
CMAKE_PROGRESS_53 = 38
CMAKE_PROGRESS_50 = 37
CMAKE_PROGRESS_51 =
CMAKE_PROGRESS_52 = 38
CMAKE_PROGRESS_53 = 39
CMAKE_PROGRESS_54 =
CMAKE_PROGRESS_55 = 39
CMAKE_PROGRESS_56 = 40
CMAKE_PROGRESS_57 =
CMAKE_PROGRESS_58 = 41
CMAKE_PROGRESS_59 = 42
CMAKE_PROGRESS_60 =
CMAKE_PROGRESS_61 = 43
CMAKE_PROGRESS_62 = 44
CMAKE_PROGRESS_63 =
CMAKE_PROGRESS_64 = 45
CMAKE_PROGRESS_65 =
CMAKE_PROGRESS_66 = 46
CMAKE_PROGRESS_67 = 47
CMAKE_PROGRESS_68 =
CMAKE_PROGRESS_69 = 48
CMAKE_PROGRESS_70 = 49
CMAKE_PROGRESS_71 =
CMAKE_PROGRESS_72 = 50
CMAKE_PROGRESS_55 = 40
CMAKE_PROGRESS_56 =
CMAKE_PROGRESS_57 = 41
CMAKE_PROGRESS_58 = 42
CMAKE_PROGRESS_59 =
CMAKE_PROGRESS_60 = 43
CMAKE_PROGRESS_61 = 44
CMAKE_PROGRESS_62 =
CMAKE_PROGRESS_63 = 45
CMAKE_PROGRESS_64 =
CMAKE_PROGRESS_65 = 46
CMAKE_PROGRESS_66 = 47
CMAKE_PROGRESS_67 =
CMAKE_PROGRESS_68 = 48
CMAKE_PROGRESS_69 = 49
CMAKE_PROGRESS_70 =
CMAKE_PROGRESS_71 = 50
CMAKE_PROGRESS_72 =

@ -1,3 +1,3 @@
CMAKE_PROGRESS_1 =
CMAKE_PROGRESS_2 = 51
CMAKE_PROGRESS_1 = 51
CMAKE_PROGRESS_2 = 52

@ -148,6 +148,16 @@ pico.h
hardware/regs/addressmap.h
../pico-sdk/src/rp2_common/hardware_base/include/hardware/hardware/regs/addressmap.h
../pico-sdk/src/rp2_common/hardware_claim/include/hardware/claim.h
pico.h
../pico-sdk/src/rp2_common/hardware_claim/include/hardware/pico.h
hardware/sync.h
../pico-sdk/src/rp2_common/hardware_claim/include/hardware/hardware/sync.h
../pico-sdk/src/rp2_common/hardware_flash/include/hardware/flash.h
pico.h
../pico-sdk/src/rp2_common/hardware_flash/include/hardware/pico.h
../pico-sdk/src/rp2_common/hardware_gpio/include/hardware/gpio.h
pico.h
../pico-sdk/src/rp2_common/hardware_gpio/include/hardware/pico.h
@ -166,6 +176,14 @@ hardware/structs/spi.h
hardware/regs/dreq.h
../pico-sdk/src/rp2_common/hardware_spi/include/hardware/hardware/regs/dreq.h
../pico-sdk/src/rp2_common/hardware_sync/include/hardware/sync.h
pico.h
../pico-sdk/src/rp2_common/hardware_sync/include/hardware/pico.h
hardware/address_mapped.h
../pico-sdk/src/rp2_common/hardware_sync/include/hardware/hardware/address_mapped.h
hardware/regs/sio.h
../pico-sdk/src/rp2_common/hardware_sync/include/hardware/hardware/regs/sio.h
../pico-sdk/src/rp2_common/hardware_timer/include/hardware/timer.h
pico.h
../pico-sdk/src/rp2_common/hardware_timer/include/hardware/pico.h
@ -202,8 +220,6 @@ pico/stdio.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/Config.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/KISS.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/LoRa-RP2040.h
pico/stdlib.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/pico/stdlib.h
@ -226,6 +242,16 @@ stdio.h
string
-
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/kiss.h
stdio.h
-
string.h
-
time.h
-
stdarg.h
-
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/main.cpp
stdio.h
-
@ -233,16 +259,22 @@ string.h
-
time.h
-
stdarg.h
-
pico/stdlib.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/pico/stdlib.h
pico/binary_info.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/pico/binary_info.h
hardware/flash.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/hardware/flash.h
LoRa-RP2040.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/LoRa-RP2040.h
Config.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/Config.h
KISS.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/KISS.h
kiss.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/kiss.h
hardware/claim.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/hardware/claim.h
generated/pico_base/pico/config_autogen.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/boards/include/boards/pico.h

@ -384,6 +384,7 @@ set(CMAKE_CXX_TARGET_INCLUDE_PATH
set(CMAKE_TARGET_LINKED_INFO_FILES
"/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src/CMakeFiles/LoRa_pico_lib.dir/DependInfo.cmake"
"/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src/CMakeFiles/LoRa_print.dir/DependInfo.cmake"
"/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/src/CMakeFiles/KISS.dir/DependInfo.cmake"
)
# Fortran module output directory.

@ -1043,6 +1043,7 @@ src/main.elf: src/CMakeFiles/main.dir/__/pico-sdk/src/rp2_common/hardware_interp
src/main.elf: src/CMakeFiles/main.dir/build.make
src/main.elf: src/libLoRa_pico_lib.a
src/main.elf: src/libLoRa_print.a
src/main.elf: src/libKISS.a
src/main.elf: pico-sdk/src/rp2_common/boot_stage2/bs2_default_padded_checksummed.S
src/main.elf: src/CMakeFiles/main.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_72) "Linking CXX executable main.elf"

@ -2162,8 +2162,11 @@ src/CMakeFiles/main.dir/main.cpp.obj
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/timer.h
../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/uart.h
../pico-sdk/src/rp2_common/hardware_base/include/hardware/address_mapped.h
../pico-sdk/src/rp2_common/hardware_claim/include/hardware/claim.h
../pico-sdk/src/rp2_common/hardware_flash/include/hardware/flash.h
../pico-sdk/src/rp2_common/hardware_gpio/include/hardware/gpio.h
../pico-sdk/src/rp2_common/hardware_spi/include/hardware/spi.h
../pico-sdk/src/rp2_common/hardware_sync/include/hardware/sync.h
../pico-sdk/src/rp2_common/hardware_timer/include/hardware/timer.h
../pico-sdk/src/rp2_common/hardware_uart/include/hardware/uart.h
../pico-sdk/src/rp2_common/pico_platform/include/pico/platform.h
@ -2172,9 +2175,9 @@ src/CMakeFiles/main.dir/main.cpp.obj
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/boards/include/boards/pico.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/pico-sdk/src/rp2_common/cmsis/include/cmsis/rename_exceptions.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/Config.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/KISS.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/LoRa-RP2040.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/Print.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/kiss.h
/home/marcel/Documents/electronische_projecten/lora_aprs_node_pico/src/main.cpp
generated/pico_base/pico/config_autogen.h
generated/pico_base/pico/version.h

@ -2161,8 +2161,11 @@ src/CMakeFiles/main.dir/main.cpp.obj: ../pico-sdk/src/rp2040/hardware_structs/in
src/CMakeFiles/main.dir/main.cpp.obj: ../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/timer.h
src/CMakeFiles/main.dir/main.cpp.obj: ../pico-sdk/src/rp2040/hardware_structs/include/hardware/structs/uart.h
src/CMakeFiles/main.dir/main.cpp.obj: ../pico-sdk/src/rp2_common/hardware_base/include/hardware/address_mapped.h
src/CMakeFiles/main.dir/main.cpp.obj: ../pico-sdk/src/rp2_common/hardware_claim/include/hardware/claim.h
src/CMakeFiles/main.dir/main.cpp.obj: ../pico-sdk/src/rp2_common/hardware_flash/include/hardware/flash.h
src/CMakeFiles/main.dir/main.cpp.obj: ../pico-sdk/src/rp2_common/hardware_gpio/include/hardware/gpio.h
src/CMakeFiles/main.dir/main.cpp.obj: ../pico-sdk/src/rp2_common/hardware_spi/include/hardware/spi.h
src/CMakeFiles/main.dir/main.cpp.obj: ../pico-sdk/src/rp2_common/hardware_sync/include/hardware/sync.h
src/CMakeFiles/main.dir/main.cpp.obj: ../pico-sdk/src/rp2_common/hardware_timer/include/hardware/timer.h
src/CMakeFiles/main.dir/main.cpp.obj: ../pico-sdk/src/rp2_common/hardware_uart/include/hardware/uart.h
src/CMakeFiles/main.dir/main.cpp.obj: ../pico-sdk/src/rp2_common/pico_platform/include/pico/platform.h
@ -2171,9 +2174,9 @@ src/CMakeFiles/main.dir/main.cpp.obj: ../pico-sdk/src/rp2_common/pico_stdio_usb/
src/CMakeFiles/main.dir/main.cpp.obj: ../pico-sdk/src/boards/include/boards/pico.h
src/CMakeFiles/main.dir/main.cpp.obj: ../pico-sdk/src/rp2_common/cmsis/include/cmsis/rename_exceptions.h
src/CMakeFiles/main.dir/main.cpp.obj: ../src/Config.h
src/CMakeFiles/main.dir/main.cpp.obj: ../src/KISS.h
src/CMakeFiles/main.dir/main.cpp.obj: ../src/LoRa-RP2040.h
src/CMakeFiles/main.dir/main.cpp.obj: ../src/Print.h
src/CMakeFiles/main.dir/main.cpp.obj: ../src/kiss.h
src/CMakeFiles/main.dir/main.cpp.obj: ../src/main.cpp
src/CMakeFiles/main.dir/main.cpp.obj: generated/pico_base/pico/config_autogen.h
src/CMakeFiles/main.dir/main.cpp.obj: generated/pico_base/pico/version.h

File diff suppressed because one or more lines are too long

@ -1,68 +1,68 @@
CMAKE_PROGRESS_1 = 55
CMAKE_PROGRESS_2 =
CMAKE_PROGRESS_3 = 56
CMAKE_PROGRESS_4 = 57
CMAKE_PROGRESS_5 =
CMAKE_PROGRESS_6 = 58
CMAKE_PROGRESS_7 = 59
CMAKE_PROGRESS_8 =
CMAKE_PROGRESS_9 = 60
CMAKE_PROGRESS_1 =
CMAKE_PROGRESS_2 = 56
CMAKE_PROGRESS_3 = 57
CMAKE_PROGRESS_4 =
CMAKE_PROGRESS_5 = 58
CMAKE_PROGRESS_6 = 59
CMAKE_PROGRESS_7 =
CMAKE_PROGRESS_8 = 60
CMAKE_PROGRESS_9 =
CMAKE_PROGRESS_10 = 61
CMAKE_PROGRESS_11 =
CMAKE_PROGRESS_12 = 62
CMAKE_PROGRESS_13 =
CMAKE_PROGRESS_14 = 63
CMAKE_PROGRESS_11 = 62
CMAKE_PROGRESS_12 =
CMAKE_PROGRESS_13 = 63
CMAKE_PROGRESS_14 =
CMAKE_PROGRESS_15 = 64
CMAKE_PROGRESS_16 =
CMAKE_PROGRESS_17 = 65
CMAKE_PROGRESS_16 = 65
CMAKE_PROGRESS_17 =
CMAKE_PROGRESS_18 = 66
CMAKE_PROGRESS_19 =
CMAKE_PROGRESS_20 = 67
CMAKE_PROGRESS_21 =
CMAKE_PROGRESS_22 = 68
CMAKE_PROGRESS_19 = 67
CMAKE_PROGRESS_20 =
CMAKE_PROGRESS_21 = 68
CMAKE_PROGRESS_22 =
CMAKE_PROGRESS_23 = 69
CMAKE_PROGRESS_24 =
CMAKE_PROGRESS_25 = 70
CMAKE_PROGRESS_24 = 70
CMAKE_PROGRESS_25 =
CMAKE_PROGRESS_26 = 71
CMAKE_PROGRESS_27 =
CMAKE_PROGRESS_28 = 72
CMAKE_PROGRESS_29 =
CMAKE_PROGRESS_30 = 73
CMAKE_PROGRESS_27 = 72
CMAKE_PROGRESS_28 =
CMAKE_PROGRESS_29 = 73
CMAKE_PROGRESS_30 =
CMAKE_PROGRESS_31 = 74
CMAKE_PROGRESS_32 =
CMAKE_PROGRESS_33 = 75
CMAKE_PROGRESS_32 = 75
CMAKE_PROGRESS_33 =
CMAKE_PROGRESS_34 = 76
CMAKE_PROGRESS_35 =
CMAKE_PROGRESS_36 = 77
CMAKE_PROGRESS_37 =
CMAKE_PROGRESS_38 = 78
CMAKE_PROGRESS_35 = 77
CMAKE_PROGRESS_36 =
CMAKE_PROGRESS_37 = 78
CMAKE_PROGRESS_38 =
CMAKE_PROGRESS_39 = 79
CMAKE_PROGRESS_40 =
CMAKE_PROGRESS_41 = 80
CMAKE_PROGRESS_40 = 80
CMAKE_PROGRESS_41 =
CMAKE_PROGRESS_42 = 81
CMAKE_PROGRESS_43 =
CMAKE_PROGRESS_44 = 82
CMAKE_PROGRESS_45 = 83
CMAKE_PROGRESS_46 =
CMAKE_PROGRESS_47 = 84
CMAKE_PROGRESS_48 =
CMAKE_PROGRESS_49 = 85
CMAKE_PROGRESS_48 = 85
CMAKE_PROGRESS_49 =
CMAKE_PROGRESS_50 = 86
CMAKE_PROGRESS_51 =
CMAKE_PROGRESS_52 = 87
CMAKE_PROGRESS_53 = 88
CMAKE_PROGRESS_54 =
CMAKE_PROGRESS_55 = 89
CMAKE_PROGRESS_56 =
CMAKE_PROGRESS_57 = 90
CMAKE_PROGRESS_56 = 90
CMAKE_PROGRESS_57 =
CMAKE_PROGRESS_58 = 91
CMAKE_PROGRESS_59 =
CMAKE_PROGRESS_60 = 92
CMAKE_PROGRESS_61 = 93
CMAKE_PROGRESS_62 =
CMAKE_PROGRESS_63 = 94
CMAKE_PROGRESS_64 =
CMAKE_PROGRESS_65 = 95
CMAKE_PROGRESS_64 = 95
CMAKE_PROGRESS_65 =
CMAKE_PROGRESS_66 = 96
CMAKE_PROGRESS_67 =
CMAKE_PROGRESS_68 = 97

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

@ -6,6 +6,7 @@ cmake_minimum_required(VERSION 3.12)
add_library(LoRa_pico_lib LoRa-RP2040.cpp LoRa-RP2040.h)
add_library(LoRa_print Print.h Print.cpp)
add_library(KISS kiss.h kiss.cpp)
target_link_libraries(LoRa_pico_lib pico_stdlib hardware_spi hardware_interp LoRa_print)
@ -24,7 +25,7 @@ target_include_directories(main PUBLIC ./)
target_link_directories(main PUBLIC ./)
target_link_libraries(main pico_stdlib LoRa_pico_lib LoRa_print)
target_link_libraries(main pico_stdlib LoRa_pico_lib LoRa_print KISS)
# enable usb output, disable uart output
pico_enable_stdio_usb(main 1)

@ -18,23 +18,16 @@
#endif
#define OFF 0
#define ON 1
#define OFF 0
#define ON 1
#define CR 13
const long serialBaudRate = 38400;
const int rssiOffset = 292;
const int loraRxTurnaround = 50;
// Default LoRa settings
int loraSpreadingFactor = 12;
int loraPreamble = 8;
int loraCodingRate = 5;
int loraTxPower = 17;
int LoRaPaSelect = 1;
uint32_t loraBandwidth = 125E3;
uint32_t loraFrequency = 433775000;
uint8_t txBuffer[MTU];
uint8_t rxBuffer[MTU];
@ -60,14 +53,31 @@
const uint8_t SIG_SYNCED = 0x02;
const uint8_t RX_ONGOING = 0x04;
// The size of this struc should be a exactly 256 bytes (or a multiple), which is the FLASH_PAGE_SIZE of the RPi pico's flash memory
// Struct can not be bigger than 4kbyte
struct aprssettings {
uint8_t MyCall[10] = { 'P','E','1','R','X','F','-','5', 0} ;
uint8_t ServerCall[10] = { 'P','E','1','R','X','F','-','3', 0} ;
uint8_t Destination[10] = { 'A','P','Z','M','D','M', 0} ;
uint8_t Path1[10] = { 0,'I','D','E','1','-', '1', 0} ;
uint8_t Path2[10] = { 0,'I','D','E','2','-', '2', 0} ;
uint8_t ValidFlashData = 0x5A; // Indicates flash contains valid data - 1 bytes
uint8_t MyCall[10] = { 'P','E','1','R','X','F','-','5', 0, 0} ; // 10 bytes
uint8_t ServerCall[10] = { 'P','E','1','R','X','F','-','3', 0, 0} ; // 10 bytes
uint8_t Destination[10] = { 'A','P','Z','M','D','M', 0, 0, 0 ,0} ; // 10 bytes
uint8_t Path1[10] = { 0,'I','D','E','1','-', '1', 0, 0, 0} ; // 10 bytes
uint8_t Path2[10] = { 0,'I','D','E','2','-', '2', 0, 0 ,0} ; // 10 bytes
uint8_t FirmwareVersion[20] = { 'V','1',',','C','o','n','t','r', 'o','l','l','e','r',' ','0','1', 0, 0, 0, 0} ;
// 20 bytes
// Default LoRa settings
uint16_t loraSpreadingFactor = 12; // 2 bytes
uint16_t loraPreamble = 8; // 2 bytes
uint16_t loraCodingRate = 5; // 2 bytes
uint16_t loraTxPower = 17; // 2 bytes
uint16_t loraPaSelect = 1; // 2 bytes
uint32_t loraBandwidth = 125E3; // 4 bytes
uint32_t loraFrequency = 433775000; // 4 bytes
// Total 89 bytes
uint8_t FirmwareVersion[20] = { 'V','1',',','C','o','n','t','r', 'o','l','l','e','r',' ','0','1', 0} ;
uint8_t FillerData[163];
} AprsSettings;
struct status {
@ -77,6 +87,12 @@
bool ControlRelay;
uint8_t StatusString[6] = { '0','0','0','0','0',0};
uint8_t DescriptionString[20] ={ 'N','C',',','C','n','t','r',',','5','V',',','1','2','V',',','2','4','V',0,0};
uint8_t KissMode = OFF;
} Status;
#endif

@ -1,28 +0,0 @@
#ifndef KISS_H
#define KISS_H
#define FEND 0xC0
#define FESC 0xDB
#define TFEND 0xDC
#define TFESC 0xDD
#define CMD_UNKNOWN 0xFE
#define CMD_DATA 0x00
#define CMD_HARDWARE 0x06
#define HW_RSSI 0x21
#define CMD_ERROR 0x90
#define ERROR_INITRADIO 0x01
#define ERROR_TXFAILED 0x02
#define ERROR_QUEUE_FULL 0x04
size_t frameLength;
bool inFrame = false;
bool escape = false;
bool SERIAL_READING = false;
uint8_t command = CMD_UNKNOWN;
uint32_t lastSerialRead = 0;
uint32_t serialReadTimeout = 25;
#endif

@ -0,0 +1,460 @@
#include "kiss.h"
/*
* KISS encoder uses two steps:
*
* Step 1: encodes the LoRa APRS frame into an AX.25 frame. DONE
* Step 2: encapsulates the AX.25 frame into a KISS frame. DONE
*
* struct aprs_frame {
* uint8_t source_address[10];
* uint8_t digi_path[255];
* uint8_t data_field[255];
* uint8_t message[255];
* uint8_t digis[10][10];
* uint8_t acknowledge_number[255];
* bool acknowledge_request = false;
* uint16_t server_command = 0;
* uint16_t number_of_digipeaters = 0;
*
* uint8_t valid_apsr_data = false;
* };
*
*/
uint16_t KissClass::EncodeFrame(struct aprs_frame *aprsframe, struct ax25_frame *ax25frame)
{
uint8_t *encoded_call;
uint16_t cnt=0;
uint16_t position = 0;
uint8_t digi_cnt = 0;
uint8_t escaped_string_cnt=0;
//printf("Encode KISS");
// Destination call
//printf("Destination: ");
encoded_call = EncodeCall(aprsframe->digis[0]);
cnt = 0;
while (cnt < 7)
{
ax25frame->complete[position] = *(encoded_call+cnt);
//printf("0x%X ", *(encoded_call+cnt));
//printf("0x%X ", ax25frame->complete[position]);
cnt++;
position++;
}
//printf("\n");
// Source call
//printf("Source: ");
cnt=0;
encoded_call = EncodeCall(aprsframe->source_address);
while (cnt < 7)
{
ax25frame->complete[position] = *(encoded_call+cnt);
//printf("0x%X ", *(encoded_call+cnt));
//printf("0x%X ", ax25frame->complete[position]);
cnt++;
position++;
}
//printf("\n");
// No digipeaters in path, so destination is the last call and therefore the 'last' flag should be set
if (aprsframe->number_of_digipeaters == 0)
{
ax25frame->complete[position-1] |= 0x01;
}
else
{
// Path (digipeaters)
//printf("Path: ");
cnt=0;
digi_cnt = 1; // Start at position 1 as position 0 contains destination (which we already encoded)
while (aprsframe->number_of_digipeaters-- != 0) {
encoded_call = EncodeCall(aprsframe->digis[digi_cnt]);
while (cnt < 7) {
ax25frame->complete[position] = *(encoded_call+cnt);
//printf("0x%X ", *(encoded_call+cnt));
//printf("0x%X ", ax25frame->complete[position]);
cnt++;
position++;
}
digi_cnt++;
cnt = 0;
}
//printf("\n");
// Set 'last' flag
ax25frame->complete[position-1] |= 0x01;
}
// Add control fields
ax25frame->complete[position++] = 0x03;
ax25frame->complete[position++] = 0xF0;
// All the dificult bits are done, now we just add the payload.
//printf("Data:");
cnt = 0;
while (aprsframe->data_field[cnt] != 0 && cnt < 256) {
ax25frame->complete[position] = aprsframe->data_field[cnt];
//printf("0x%X ", ax25frame->complete[position]);
cnt++;
position++;
}
//printf( "\n");
// Store length of AX25 frame
ax25frame->lenght = position;
// Encapsulate AX.25 frame in KISS frame (including escaping FEND codes)
putchar(FEND);
putchar(CMD_DATA);
escaped_string_cnt=0;
ax25frame->encoded_kiss_frame[escaped_string_cnt++] = FEND;
ax25frame->encoded_kiss_frame[escaped_string_cnt++] = CMD_DATA;
cnt=0;
position=ax25frame->lenght;
while (position-- != 0)
{
// Escape FESC and TFEND
if (ax25frame->complete[cnt] == FEND) {
putchar(FESC);
putchar(TFEND);
ax25frame->encoded_kiss_frame[escaped_string_cnt++] = FESC;
ax25frame->encoded_kiss_frame[escaped_string_cnt++] = TFEND;
} else if (ax25frame->complete[cnt] == FESC) {
putchar(FESC);
putchar(TFESC);
ax25frame->encoded_kiss_frame[escaped_string_cnt++] = FESC;
ax25frame->encoded_kiss_frame[escaped_string_cnt++] = TFESC;
} else {
putchar(ax25frame->complete[cnt]);
ax25frame->encoded_kiss_frame[escaped_string_cnt++] = ax25frame->complete[cnt];
}
cnt++;
}
putchar(FEND);
ax25frame->encoded_kiss_frame[escaped_string_cnt++] = FEND;
//printf("\n");
return 0;
}
/*
* Decodes a KISS frame from the usb serial port
*
* Input : string starting with FEND and ending with FEND
* Output: filled struct AprsFrame
* Return: 0 = OK, 1 = ERROR, 2 = EXIT KISS MODE
*/
uint16_t KissClass::DecodeFrame(uint8_t string[], struct kiss_tx_frame *kisstxframe)
{
uint16_t position =0 ;
uint16_t loop_counter = 0;
uint16_t cnt =0 ;
uint16_t ssid = 0;
uint16_t last_digi = 0;
uint16_t digi_cnt = 0;
//printf("Decode KISS");
kisstxframe->valid_data = false;
// Not a valid frame
if (string[position] != FEND)
return 1;
position++;
// Is data frame: we de-escape the string and put it back in the same string with a NULL at the end as terminator.
if (string[position] == CMD_DATA)
{
position++;
while (string[position] != FEND)
{
// De-escape codes
if (string[position] == FESC && string[position+1] == TFEND)
{
string[cnt] = FEND;
position++;
}
else if (string[position] == FESC && string[position+1] == TFESC)
{
string[cnt] = FESC;
position++;
}
else {
string[cnt] = string[position];
}
cnt++;
position++;
}
string[cnt] = 0; //Terminate string
}
// Is command to exit KISS MODE
else if (string[position] == CMD_EXIT_KISS) {
return 2;
}
// If we are here we have a valid AX.25 frame in 'string' which is decapsulated from its KISS frame
/*
0-5 destination
6 destination ssid
7-12 source
13 desitination sidd
vanaf byte 13 LAST FLAG zoeken
03
f0
payload tot aan NULL
*/
// Decode destination call
position = 0;
cnt = 0;
loop_counter = 0;
while (loop_counter < 6)
{
kisstxframe->digis[0][cnt] = string[position] >> 1;
// Remove space
if (kisstxframe->digis[0][cnt] == ' ')
cnt--;
position++;
loop_counter++;
cnt++;
//printf("%u ", position);
}
// Extract SSID
//printf("position: %u\n", position);
ssid = (string[position] & 0b00011110) >> 1;
//printf("DIGI SSID: %u (%u)\n", ssid, position);
// Place SSID behind call or not if it is zero
if (ssid != 0) {
kisstxframe->digis[0][cnt++] = '-';
if (ssid < 10)
{
kisstxframe->digis[0][cnt++] = ssid + 48;
}
else
{
kisstxframe->digis[0][cnt++] = '1';
kisstxframe->digis[0][cnt++] = (ssid%10)+48;
}
}
// Is has-been-repeated flag set?
if(string[position] & 0b10000000) {
kisstxframe->digis[0][cnt] = '*';
cnt++;
}
kisstxframe->digis[0][cnt] = 0; //terminate string
position++;
// Decode source call
cnt = 0;
loop_counter=0;
while (loop_counter < 6)
{
kisstxframe->source_address[cnt] = string[position] >> 1;
// Remove space
if (kisstxframe->source_address[cnt] == ' ')
cnt--;
position++;
loop_counter++;
cnt++;
//printf("%u ", position);
}
// Extract SSID
ssid = (string[position] & 0b00011110) >> 1;
//printf("sources SSID: %u (%u)\n", ssid, position);
// Place SSID behind call or not if it is zero
if (ssid != 0) {
kisstxframe->source_address[cnt++] = '-';
if (ssid < 10)
{
kisstxframe->source_address[cnt++] = ssid + 48;
}
else
{
kisstxframe->source_address[cnt++] = '1';
kisstxframe->source_address[cnt++] = (ssid%10)+48;
}
}
// Is has-been-repeated flag set?
if(string[position] & 0b10000000) {
kisstxframe->source_address[cnt] = '*';
cnt++;
}
kisstxframe->source_address[cnt] = 0; //terminate string
// Check LAST flag
if ( (string[position] & 0b00000001))
last_digi = 1;
position++;
// Decode digi path
digi_cnt=1;
while (last_digi == 0) {
cnt = 0;
loop_counter=0;
while (loop_counter < 6)
{
kisstxframe->digis[digi_cnt][cnt] = string[position] >> 1;
// Remove space
if (kisstxframe->digis[digi_cnt][cnt] == ' ')
cnt--;
position++;
loop_counter++;
cnt++;
//printf("%u ", position);
}
// Extract SSID
ssid = (string[position] & 0b00011110) >> 1;
//printf("DIGI SSID: %u (%u)\n", ssid, position);
// Place SSID behind call or not if it is zero
if (ssid != 0) {
kisstxframe->digis[digi_cnt][cnt++] = '-';
if (ssid < 10)
{
kisstxframe->digis[digi_cnt][cnt++] = ssid + 48;
}
else
{
kisstxframe->digis[digi_cnt][cnt++] = '1';
kisstxframe->digis[digi_cnt][cnt++] = (ssid%10) + 48;
}
}
// Is has-been-repeated flag set?
if(string[position] & 0b10000000) {
kisstxframe->digis[digi_cnt][cnt] = '*';
cnt++;
}
kisstxframe->digis[digi_cnt][cnt] = 0; //terminate string
// Check LAST flag (also ends when more than 10 digis)
if ( (string[position] & 0b00000001) || digi_cnt > 8)
last_digi = 1;
digi_cnt++;
position++;
}
kisstxframe->number_of_digipeaters = digi_cnt-1;
//printf("Digipeaters: %u \n",kisstxframe->number_of_digipeaters );
//Skip the two control fields
position++;
position++;
//Rest of string up to NULL is payload
cnt = 0;
kisstxframe->data_field[cnt++] = ':';
while (string[position] != 0 && position < 512)
{
kisstxframe->data_field[cnt] = string[position];
position++;
cnt++;
}
kisstxframe->data_field[cnt] = 0; //terminate string
kisstxframe->valid_data = true;
return 0;
}
/*
* Encodes call according to AX.25 specs.
*
* input : string with call and ssid as readable characters
* output: pointer to memory location (7 bytes with the encoded call)
*
*/
uint8_t * KissClass::EncodeCall(uint8_t string[])
{
uint8_t position = 0;
uint8_t cnt = 0;
uint8_t repeat_flag = 0;
static uint8_t call[7] = { 0,0,0,0,0,0,0} ;
uint8_t ssid = 0;
// if asterix is pressent in string, than the message has been repeated, so set the 'has been repeated' flag in the ssid register
// At the same time delete the asterix and place a NULL (string terminator) at its place. As the asterix should be the last character in the string, this should work.
position = 0;
while( string[position] != 0)
{
if (string[position] == '*') {
repeat_flag = 1;
string[position] == 0;
break;
}
position++;
}
position = 0;
// extract call
while( string[position] != 0 || cnt < 6)
{
if ( string[position] == '-') {
position++;
break;
} else {
call[cnt] = string[position] << 1;
}
cnt++;
position++;
}
// pad with spaces to a length of 6
while( cnt < 6 )
{
call[cnt++] = ' ' << 1;
}
// extract ssid
cnt=0;
while( string[position] != 0 )
{
if (string[position] >= 48 && string[position] <= 57) {
ssid = 10*ssid + string[position]-48;
position++;
}
}
ssid = ssid << 1;
ssid |= 0b01100000;
if (repeat_flag == 1)
ssid |= 0b10000000;
// add encoded ssid to encoded call array
call[6] = ssid;
/*
//printf("SSID: 0x%X\n", ssid);
cnt = 0;
while (cnt < 7)
{
//printf("0x%X ", call[cnt++]);
}
//printf("\n");
*/
return call;
}

@ -0,0 +1,67 @@
#ifndef KISS_H
#define KISS_H
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdarg.h>
#define FEND 0xC0
#define FESC 0xDB
#define TFEND 0xDC
#define TFESC 0xDD
#define CMD_UNKNOWN 0xFE
#define CMD_DATA 0x00
#define CMD_HARDWARE 0x06
#define CMD_EXIT_KISS 0xFF
#define HW_RSSI 0x21
#define CMD_ERROR 0x90
#define ERROR_INITRADIO 0x01
#define ERROR_TXFAILED 0x02
#define ERROR_QUEUE_FULL 0x04
struct aprs_frame {
uint8_t source_address[10];
uint8_t digi_path[255];
uint8_t data_field[255];
uint8_t message[255];
uint8_t digis[10][10];
uint8_t acknowledge_number[255];
bool acknowledge_request = false;
uint16_t server_command = 0;
uint16_t number_of_digipeaters = 0;
uint8_t valid_apsr_data = false;
};
struct ax25_frame {
uint8_t complete[512];
uint16_t lenght = 0;
uint8_t encoded_kiss_frame[512];
uint8_t decoded_kiss_frame[512];
uint16_t kiss_length = 0;
};
struct kiss_tx_frame {
uint8_t source_address[10];
uint8_t data_field[512];
uint8_t digis[10][10];
uint16_t number_of_digipeaters = 0;
uint8_t lora_string[512];
uint8_t valid_data = false;
};
class KissClass
{
public:
uint16_t EncodeFrame(struct aprs_frame *frame, struct ax25_frame *ax25frame);
uint16_t DecodeFrame(uint8_t string[], struct kiss_tx_frame *kisstxframe);
private:
uint8_t * EncodeCall(uint8_t string[]);
};
#endif

@ -1,14 +1,21 @@
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdarg.h>
#include "pico/stdlib.h"
#include "pico/binary_info.h"
#include "hardware/flash.h"
#include "LoRa-RP2040.h"
#include "Config.h"
#include "KISS.h"
#include "kiss.h"
#include "hardware/claim.h"
KissClass Kiss;
struct ax25_frame AX25Frame; //defined in kiss.h
struct aprs_frame AprsFrame; //defined in kiss.h
struct kiss_tx_frame KissTxFrame; //defined in kiss.h
bool startRadio();
bool LoadSettings();
void getPacketData(int packetLength);
int compare_strings(uint8_t a[], uint8_t b[]);
bool is_message_for_me (uint8_t data[], uint8_t mycall[]);
@ -18,6 +25,7 @@ uint16_t decode_packet ();
/* declaration for transmit functions */
void ComposeAprsFrame(uint8_t payload[]);
void ComposeAprsFrameFromKiss();
bool TransmitRequest = false;
void transmit();
@ -27,14 +35,101 @@ const uint PowerSupply5VControl = 4;
const uint RelayOffControl = 2;
const uint RelayOnControl = 3;
int main() {
// We're going to use a region 512k from the start of flash as non volatile storage for our settings.
// We can access this at XIP_BASE + 512k.
#define FLASH_TARGET_OFFSET (512 * 1024)
const uint8_t *flash_target_contents = (const uint8_t *) (XIP_BASE + FLASH_TARGET_OFFSET);
void log_out(const char *fmt, ...)
{
char buf[256];
va_list args;
if (Status.KissMode == OFF) {
va_start(args, fmt);
vsnprintf(buf, sizeof buf, fmt, args);
va_end( args);
printf("%s", buf);
}
}
/*
* Saves settings in struct AprsSettings to FLASH memory
* Struct AprsSettings should be exactly a multiple of FLASH_PAGE_SIZE in size.
*
* Returns: 0 when successfull
* 1 when error
*/
uint8_t SaveSettingsToFlash(void)
{
uint32_t ints = save_and_disable_interrupts();
// First we erase the FLASH sector we need. After that we can store new values.
// Note that a whole number of sectors must be erased at a time.
// Sector size is 4kB, so this is way bigger than the 256 bytes PAGE_SIZE for storing the settings.
// We can therefore store up to 16 blocks of 256 bytes per sector
log_out("Erasing FLASH region...");
flash_range_erase(FLASH_TARGET_OFFSET, FLASH_SECTOR_SIZE);
log_out("done\n");
log_out("Writing settings to FLASH...");
flash_range_program(FLASH_TARGET_OFFSET, (uint8_t*)&AprsSettings, sizeof(AprsSettings) );
log_out("done\n");
restore_interrupts (ints);
return(0);
}
void ShowSettings(void)
{
log_out("LoRa APRS remote switcher with build in KISS TNC.\n");
log_out(" Firmware version : %s\n",AprsSettings.FirmwareVersion);
log_out(" Size of struct : %u.\n\n", sizeof(AprsSettings));
uint16_t ServerCommand = 0;
uint16_t TxDelay = 0;
/* Among others, this initializes the USB-serial port at 115200bps 8N1 */
stdio_init_all();
log_out("APRS settings\n");
log_out(" My call : %s\n", AprsSettings.MyCall);
log_out(" Server call : %s\n", AprsSettings.ServerCall);
log_out(" Destination : %s\n", AprsSettings.Destination);
log_out(" Path 1 : %s\n", AprsSettings.Path1);
log_out(" Path 2 : %s\n\n", AprsSettings.Path2);
log_out("LoRa settings\n");
log_out(" Frequency : %u\n", AprsSettings.loraFrequency);
log_out(" SpreadingFactor : %i\n", AprsSettings.loraSpreadingFactor);
log_out(" Preamble : %i\n", AprsSettings.loraPreamble);
log_out(" CodingRate : %i\n", AprsSettings.loraCodingRate);
log_out(" TxPower : %i\n", AprsSettings.loraTxPower);
log_out(" PaSelect : %i\n", AprsSettings.loraPaSelect);
log_out(" Bandwidth : %u\n", AprsSettings.loraBandwidth);
}
uint8_t ReadSettingsFromFlash(void)
{
// If byte zero of flash contains 0x5A we assume the data to be valid, otherwise we fill the flash with default values.
if (flash_target_contents[0] != 0x5A)
{
log_out( "No valid data found in FLASH memory. Using default values.\n" );
memset(AprsSettings.FillerData, 0, sizeof(AprsSettings.FillerData));
SaveSettingsToFlash();
} else {
// Read settings stored in flash memory
log_out("Found valid settings in FLASH memory.\n");
}
memcpy((uint8_t*)&AprsSettings, flash_target_contents, sizeof(AprsSettings));
ShowSettings();
}
void setup(void)
{
/* Among others, this initializes the USB-serial port at 115200bps 8N1 */
stdio_init_all();
// Buffers
memset(rxBuffer, 0, sizeof(rxBuffer));
memset(txBuffer, 0, sizeof(txBuffer));
@ -63,18 +158,368 @@ int main() {
gpio_put(RelayOffControl, 0);
gpio_put(RelayOnControl, 0);
Status.ControlRelay = OFF;
sleep_ms(5000);
LoadSettings();
ReadSettingsFromFlash();
startRadio();
}
void print_help(void)
{
log_out("Unknown command.\n\n");
log_out("kiss\n");
log_out(" Enter KISS mode.\n");
log_out("save\n");
log_out(" Save settings to flash.\n");
log_out("read <flash/ram>\n");
log_out(" Read settings from FLASH or RAM.\n");
log_out("mycall/servercall/destination/path1/path2\n");
log_out(" APRS settings.\n");
log_out("freq/spread/pre/rate/power/pa/band.\n");
log_out(" LoRa settings.\n");
}
/*
* Reads a string and converts it to its 32 bit value if it contains a number,
* else it returns 0xFFFFFFFF
*/
uint32_t ConvertStringToValue(char string[])
{
uint16_t position = 0;
uint32_t value = 0;
// Extract value from string (if present)
while( string[position] != 0 )
{
// Is character a number?
if (string[position] >= 48 && string[position] <= 57) {
value = 10*value + string[position]-48;
} else {
return 0xFFFFFFFF;
}
position++;
}
return value;
}
void ProcessSerialInput(char string[])
{
uint8_t cnt;
uint8_t position=0;
uint32_t tmp = 0;
char command[100];
char parameter[100];
//log_out("You wrote - %s (%u).\n", string, strlen(string));
// Command cannot be any shorter than 3 characters
if (strlen(string) > 2) {
// Extract command (part before space)
cnt = 0;
while( string[position] != 0 )
{
command[cnt++] = string[position];
if ( string[position] == ' ' ) {
command[cnt-1] = 0; // terminate command string
position++;
break;
}
position++;
}
// Extract parameter (part after space)
cnt = 0;
while( string[position] != 0 )
{
parameter[cnt++] = string[position++];
}
parameter[cnt] = 0; //terminate string
//log_out("Command - %s.\n", command);
//log_out("Parameter - %s.\n", parameter);
// Read settings
if (strcmp(command, "read") == 0) {
if (strcmp(parameter, "flash") == 0) {
ReadSettingsFromFlash();
}
else if (strcmp(parameter, "ram") == 0) {
ShowSettings();
}
}
// Save settings to FLASH
else if (strcmp(command, "save") == 0)
SaveSettingsToFlash();
// Enter KISS mode
else if (strcmp(command, "kiss") == 0) {
log_out("Entering KISS mode.\n");
log_out("You can exit KISS mode via KISS command <0xC0 0xFF 0xC0>\n");
// disable CRLF convertion, so we can write raw data to the USB port in KISS mode
stdio_set_translate_crlf(&stdio_usb, false);
//fwrite(buf, 1, sizeof(buf), stdout); // seems not to work
//putchar(49);
Status.KissMode = ON;
}
// Set mycall (cannot be longer than 9 characters)
else if (strcmp(command, "mycall") == 0) {
if (sizeof(AprsSettings.MyCall) > strlen(parameter)) {
position = 0;
while( parameter[position] != 0 )
{
AprsSettings.MyCall[position] = parameter[position];
position++;
}
AprsSettings.MyCall[position] = 0;
log_out("MyCall set to %s.\n", AprsSettings.MyCall);
}
}
// Set servercall (cannot be longer than 9 characters)
else if (strcmp(command, "servercall") == 0) {
if (sizeof(AprsSettings.ServerCall) > strlen(parameter)) {
position = 0;
while( parameter[position] != 0 )
{
AprsSettings.ServerCall[position] = parameter[position];
position++;
}
AprsSettings.ServerCall[position] = 0;
log_out("ServerCall set to %s.\n", AprsSettings.ServerCall);
}
}
// Set path 1 (cannot be longer than 9 characters)
else if (strcmp(command, "path1") == 0) {
// Set path to nothing
if (parameter[0] == '0') {
AprsSettings.Path1[0] = 0;
log_out("Path1 cleared.\n");
}
else if (sizeof(AprsSettings.Path1) > strlen(parameter)) {
position = 0;
while( parameter[position] != 0 )
{
AprsSettings.Path1[position] = parameter[position];
position++;
}
AprsSettings.Path1[position] = 0;
log_out("Path1 set to %s.\n", AprsSettings.Path1);
}
}
// Set path 2 (cannot be longer than 9 characters)
else if (strcmp(command, "path2") == 0) {
// Set path to nothing
if (parameter[0] == '0') {
AprsSettings.Path2[0] = 0;
log_out("Path2 cleared.\n");
}
else if (sizeof(AprsSettings.Path2) > strlen(parameter)) {
position = 0;
while( parameter[position] != 0 )
{
AprsSettings.Path2[position] = parameter[position];
position++;
}
AprsSettings.Path2[position] = 0;
log_out("Path2 set to %s.\n", AprsSettings.Path2);
}
}
// Set destination (cannot be longer than 9 characters)
else if (strcmp(command, "dest") == 0) {
if (sizeof(AprsSettings.Destination) > strlen(parameter)) {
position = 0;
while( parameter[position] != 0 )
{
AprsSettings.Destination[position] = parameter[position];
position++;
}
AprsSettings.Destination[position] = 0;
log_out("Destination set to %s.\n", AprsSettings.Destination);
}
}
// Set lora frequency (limited between 420MHz and 450MHz)
else if (strcmp(command, "freq") == 0) {
tmp = ConvertStringToValue(parameter);
if (tmp == 0xFFFFFFFF || tmp < 420000000 || tmp > 450000000)
log_out("ERROR: that is not a valid value.\n");
else {
AprsSettings.loraFrequency = tmp;
log_out("LoRa frequency set to %u.\n", AprsSettings.loraFrequency);
}
}
// Set lora spreading factor (can be between 6 and 12)
else if (strcmp(command, "spread") == 0) {
tmp = ConvertStringToValue(parameter);
if (tmp == 0xFFFFFFFF || tmp < 6 || tmp > 12)
log_out("ERROR: that is not a valid value.\n");
else {
AprsSettings.loraSpreadingFactor = (uint16_t)tmp;
log_out("LoRa spreading factor set to %u.\n", AprsSettings.loraSpreadingFactor);
}
}
// Set lora preamble (can be between 6 and 0xFFFF)
else if (strcmp(command, "pre") == 0) {
tmp = ConvertStringToValue(parameter);
if (tmp == 0xFFFFFFFF || tmp < 6 || tmp > 0xFFFF)
log_out("ERROR: that is not a valid value.\n");
else {
AprsSettings.loraPreamble = (uint16_t)tmp;
log_out("LoRa preamble set to %u.\n", AprsSettings.loraPreamble);
}
}
// Set lora coding rate (can be between 5 and 8)
else if (strcmp(command, "rate") == 0) {
tmp = ConvertStringToValue(parameter);
if (tmp == 0xFFFFFFFF || tmp < 5 || tmp > 8)
log_out("ERROR: that is not a valid value.\n");
else {
AprsSettings.loraCodingRate = (uint16_t)tmp;
log_out("LoRa coding rate set to %u.\n", AprsSettings.loraCodingRate);
}
}
// Set lora tx power (can be between 2 and 17)
else if (strcmp(command, "power") == 0) {
tmp = ConvertStringToValue(parameter);
if (tmp == 0xFFFFFFFF || tmp < 2 || tmp > 17)
log_out("ERROR: that is not a valid value.\n");
else {
AprsSettings.loraTxPower = (uint16_t)tmp;
log_out("LoRa tx power set to %u.\n", AprsSettings.loraTxPower);
}
}
// Set lora bandwidth (can be between 7800 and 500000)
else if (strcmp(command, "band") == 0) {
tmp = ConvertStringToValue(parameter);
if (tmp == 0xFFFFFFFF || tmp < 7800 || tmp > 5000000)
log_out("ERROR: that is not a valid value.\n");
else {
AprsSettings.loraBandwidth = tmp;
log_out("LoRa bandwidth set to %u.\n", AprsSettings.loraBandwidth);
}
}
// Set lora pa to +20dBm (can be either 0 or 1)
else if (strcmp(command, "pa") == 0) {
tmp = ConvertStringToValue(parameter);
if (tmp != 0 && tmp != 1)
log_out("ERROR: that is not a valid value.\n");
else {
AprsSettings.loraPaSelect = (uint16_t)tmp;
log_out("LoRa PA set to %u.\n", AprsSettings.loraPaSelect);
}
}
// Restart radio
else if (strcmp(command, "restart") == 0)
if (strcmp(parameter, "lora") == 0) {
log_out("Re-");
startRadio();
}
else {
print_help();
}
}
else
{
print_help();
}
}
void ReadUSBSerial(void)
{
static char strg[512];
int chr;
static int lp = 0;
uint16_t tmp;
if (Status.KissMode == OFF) {
// Read serial port (USB) - non-blocking!
chr = getchar_timeout_us(0);
while(chr != PICO_ERROR_TIMEOUT)
{
log_out("%c", chr);
strg[lp++] = chr;
if(chr == CR || lp == (sizeof(strg) - 1))
{
strg[lp-1] = 0; //terminate string by overwriting <CR> with NULL
//log_out("You wrote - %s\n", strg);
lp = 0; //reset string buffer pointer
log_out("\n");
ProcessSerialInput(strg);
break;
}
chr = getchar_timeout_us(0);
}
}
// We are in KISS mode
else
{
// Read serial port (USB) - non-blocking!
chr = getchar_timeout_us(0);
while(chr != PICO_ERROR_TIMEOUT)
{
strg[lp++] = chr;
// Receive buffer buffer full
if( lp == (sizeof(strg) - 1)) {
lp=0;
}
// Received FEND (=begin or end frame)
if(chr == FEND)
{
// Valid KISS frame received
if (strg[0] == FEND && lp > 1)
{
tmp = Kiss.DecodeFrame((uint8_t *) strg, &KissTxFrame);
if ( tmp == 2)
{
//exit KISS MODE
stdio_set_translate_crlf(&stdio_usb, true);
Status.KissMode = OFF;
}
// Valid KISS data frame, so lets send it
else if (tmp == 0)
{
ComposeAprsFrameFromKiss();
}
lp = 0; //reset string buffer pointer
}
// We received a FEND byte,so we are probably between two KISS frames. Let's assume the latest FEND is the beginning of a new frame
else
{
strg[0] = chr;
lp = 1; // set string buffer pointer to second position
}
break;
}
chr = getchar_timeout_us(0);
}
}
}
int main() {
uint16_t ServerCommand = 0;
uint16_t TxDelay = 0;
setup();
while (1) {
int packetSize = LoRa.parsePacket();
if (packetSize) {
// received a packet
printf("Received packet (RSSI = %idBm)\n",LoRa.packetRssi());
log_out("Received packet (RSSI = %idBm)\n",LoRa.packetRssi());
getPacketData(packetSize);
@ -85,10 +530,10 @@ int main() {
rxBuffer[cnt-3] = rxBuffer[cnt];
}
rxBuffer[packetSize-3] = 0;
printf("%s\n", rxBuffer);
log_out("%s\n", rxBuffer);
ServerCommand = decode_packet();
} else {
printf("ERROR: No or corrupted APRS frame.\n");
log_out("ERROR: No or corrupted APRS frame.\n");
}
}
@ -125,6 +570,10 @@ int main() {
break;
// Send description digital outputs
case 7 :
ComposeAprsFrame(Status.DescriptionString);
// Switch off 24V power supply
case 30 :
gpio_put(PowerSupply24VControl, 0);
@ -191,21 +640,14 @@ int main() {
TransmitRequest = false;
}
}
// Read serial input and process it
ReadUSBSerial();
}
return 0;
}
/*
* Load settings from EEPROM
*/
bool LoadSettings()
{
printf("APRS settings:\n");
printf("My call: %s\n", AprsSettings.MyCall);
printf("Server call: %s\n", AprsSettings.ServerCall);
}
/*
* Initializes the LoRa module with the parameters set in config.h
*/
@ -213,29 +655,19 @@ bool startRadio()
{
// override the default CS, reset, and IRQ pins (optional)
// LoRa.setPins(7, 6, 1); // set CS, reset, IRQ pin
printf("LoRa settings:\n");
printf("loraFrequency = %u\n", loraFrequency);
printf("loraSpreadingFactor = %i\n", loraSpreadingFactor);
printf("loraPreamble = %i\n", loraPreamble);
printf("loraCodingRate = %i\n", loraCodingRate);
printf("loraTxPower = %i\n", loraTxPower);
printf("LoRaPaSelect = %i\n", LoRaPaSelect);
printf("loraBandwidth = %u\n", loraBandwidth);
printf("Starting LoRa radio");
if (!LoRa.begin(loraFrequency)) {
printf(" [ FAILED ]\n");
log_out("Starting LoRa radio");
if (!LoRa.begin(AprsSettings.loraFrequency)) {
log_out(" [ FAILED ]\n");
while(1);
}
else {
LoRa.setPreambleLength(loraPreamble);
LoRa.setSignalBandwidth(loraBandwidth);
LoRa.setTxPower(loraTxPower,LoRaPaSelect);
LoRa.setSpreadingFactor(loraSpreadingFactor);
LoRa.setCodingRate4(loraCodingRate);
LoRa.setPreambleLength(AprsSettings.loraPreamble);
LoRa.setSignalBandwidth(AprsSettings.loraBandwidth);
LoRa.setTxPower(AprsSettings.loraTxPower,AprsSettings.loraPaSelect);
LoRa.setSpreadingFactor(AprsSettings.loraSpreadingFactor);
LoRa.setCodingRate4(AprsSettings.loraCodingRate);
LoRa.enableCrc();
printf(" [ DONE ]\n");
log_out(" [ DONE ]\n");
}
}
@ -249,59 +681,54 @@ void getPacketData(int packetLength)
rxBuffer[position] = 0;
}
/* Encode LoRa APRS frame: extract source call, digipeater path and data field. At the same time, check for data corruption
/* Decode LoRa APRS frame: extract source call, digipeater path and data field. At the same time, check for data corruption
*
* If frame is a message from the server it returns the command from this server
*
* The resulting fields are stored in struct AprsFrame and given to the kiss-routines for further processing (when in kiss-mode)
*/
uint16_t decode_packet ()
{
int position = 0;
int cnt = 0;
int number_of_digipeaters = 0;
char valid_apsr_data = false;
uint8_t aprs_source_address[10];
uint8_t aprs_digi_path[255];
uint8_t aprs_data_field[255];
uint8_t aprs_message[255];
uint8_t aprs_digis[10][10];
uint8_t aprs_acknowledge_number[255];
bool aprs_acknowledge_request = false;
uint16_t aprs_server_command = 0;
memset(aprs_source_address, 0, sizeof(aprs_source_address));
memset(aprs_digi_path, 0, sizeof(aprs_digi_path));
memset(aprs_data_field, 0, sizeof(aprs_data_field));
memset(aprs_message, 0, sizeof(aprs_message));
memset(aprs_digis, 0, sizeof(aprs_digis));
memset(aprs_acknowledge_number, 0, sizeof(aprs_acknowledge_number));
memset(AprsFrame.source_address, 0, sizeof(AprsFrame.source_address));
memset(AprsFrame.digi_path, 0, sizeof(AprsFrame.digi_path));
memset(AprsFrame.data_field, 0, sizeof(AprsFrame.data_field));
memset(AprsFrame.message, 0, sizeof(AprsFrame.message));
memset(AprsFrame.digis, 0, sizeof(AprsFrame.digis));
memset(AprsFrame.acknowledge_number, 0, sizeof(AprsFrame.acknowledge_number));
AprsFrame.acknowledge_request = false;
AprsFrame.server_command = 0;
AprsFrame.number_of_digipeaters = 0;
AprsFrame.valid_apsr_data = false;
// Extract from address
cnt = 0;
while( rxBuffer[position] != 0 )
{
aprs_source_address[cnt++] = rxBuffer[position];
AprsFrame.source_address[cnt++] = rxBuffer[position];
if ( rxBuffer[position] == '>' && position < 10 ) {
aprs_source_address[cnt-1] = 0;
valid_apsr_data = true;
AprsFrame.source_address[cnt-1] = 0;
AprsFrame.valid_apsr_data = true;
position++;
break;
}
position++;
}
position++;
if (valid_apsr_data == true)
if (AprsFrame.valid_apsr_data == true)
{
// Extract digi path
valid_apsr_data = false;
AprsFrame.valid_apsr_data = false;
cnt = 0;
while( rxBuffer[position] != 0 )
{
aprs_digi_path[cnt++] = rxBuffer[position];
AprsFrame.digi_path[cnt++] = rxBuffer[position];
if ( rxBuffer[position] == ':' ) {
aprs_digi_path[cnt-1] = 0;
valid_apsr_data = true;
AprsFrame.digi_path[cnt-1] = 0;
AprsFrame.valid_apsr_data = true;
position++;
break;
}
position++;
@ -309,103 +736,108 @@ uint16_t decode_packet ()
}
position++;
if (valid_apsr_data == true)
if (AprsFrame.valid_apsr_data == true)
{
// Extract data field
cnt = 0;
while( rxBuffer[position] != 0 )
{
aprs_data_field[cnt++] = rxBuffer[position];
AprsFrame.data_field[cnt++] = rxBuffer[position];
position++;
}
aprs_data_field[cnt] = 0;
AprsFrame.data_field[cnt] = 0;
}
if (valid_apsr_data == true)
if (AprsFrame.valid_apsr_data == true)
{
// Extract digis from digi-path
cnt = 0;
position = 0;
number_of_digipeaters = 0;
while( aprs_digi_path[position] != 0 )
AprsFrame.number_of_digipeaters = 0;
while( AprsFrame.digi_path[position] != 0 )
{
aprs_digis[number_of_digipeaters][cnt++] = aprs_digi_path[position];
if ( aprs_digi_path[position] == ',' && cnt < 10 ) {
aprs_digis[number_of_digipeaters][cnt-1] = 0;
if (++number_of_digipeaters > 9) {
valid_apsr_data = false;
AprsFrame.digis[AprsFrame.number_of_digipeaters][cnt++] = AprsFrame.digi_path[position];
if ( AprsFrame.digi_path[position] == ',' && cnt < 10 ) {
AprsFrame.digis[AprsFrame.number_of_digipeaters][cnt-1] = 0;
if (++AprsFrame.number_of_digipeaters > 9) {
AprsFrame.valid_apsr_data = false;
break;
}
//position++;
cnt = 0;
}
position++;
}
aprs_digis[number_of_digipeaters][cnt] = 0;
AprsFrame.digis[AprsFrame.number_of_digipeaters][cnt] = 0;
}
if (valid_apsr_data) {
if (AprsFrame.valid_apsr_data) {
// Check if packet comes from our server and if so, check if it is a message for us.
if ( !compare_strings(aprs_source_address, AprsSettings.ServerCall) ) {
if ( !compare_strings(AprsFrame.source_address, AprsSettings.ServerCall) ) {
if ( is_message_for_me(aprs_data_field, AprsSettings.MyCall) )
if ( is_message_for_me(AprsFrame.data_field, AprsSettings.MyCall) )
{
// Extract aprs message from data field
position=11;
while( aprs_data_field[position] != 0 )
while( AprsFrame.data_field[position] != 0 )
{
aprs_message[position-11] = aprs_data_field[position];
AprsFrame.message[position-11] = AprsFrame.data_field[position];
position++;
}
AprsFrame.message[position-11] = 0; // Terminate string
// Extract command and acknowledge number (if present)
cnt = 0;
position = 0;
while( aprs_message[position] != 0 )
while( AprsFrame.message[position] != 0 )
{
if ( aprs_message[position] == '{' ) {
if ( AprsFrame.message[position] == '{' ) {
aprs_acknowledge_number[cnt++] = 'a';
aprs_acknowledge_number[cnt++] = 'c';
aprs_acknowledge_number[cnt++] = 'k';
aprs_acknowledge_request = true;
AprsFrame.acknowledge_number[cnt++] = 'a';
AprsFrame.acknowledge_number[cnt++] = 'c';
AprsFrame.acknowledge_number[cnt++] = 'k';
AprsFrame.acknowledge_request = true;
}
// Calculate server command
if (!aprs_acknowledge_request) {
aprs_server_command = 10*aprs_server_command + aprs_message[position]-48;
if (!AprsFrame.acknowledge_request) {
AprsFrame.server_command = 10*AprsFrame.server_command + AprsFrame.message[position]-48;
}
position++;
if (aprs_acknowledge_request) {
aprs_acknowledge_number[cnt++] = aprs_message[position];
if (AprsFrame.acknowledge_request) {
AprsFrame.acknowledge_number[cnt++] = AprsFrame.message[position];
}
}
aprs_acknowledge_number[cnt] = 0;
AprsFrame.acknowledge_number[cnt] = 0;
}
}
printf("Source address: %s\nDigipeaters (%u): %s %s %s %s\nData: %s\n", aprs_source_address, number_of_digipeaters+1, aprs_digis[0], aprs_digis[1], aprs_digis[2], aprs_digis[3], aprs_data_field);
if (aprs_message[0])
log_out("Source address: %s\nDigipeaters (%u): %s %s %s %s\nData: %s\n", AprsFrame.source_address, AprsFrame.number_of_digipeaters+1, AprsFrame.digis[0], AprsFrame.digis[1], AprsFrame.digis[2], AprsFrame.digis[3], AprsFrame.data_field);
// If in KISS mode the struct AprsFrame is handed over to the KISS encoder
if (Status.KissMode == ON) {
Kiss.EncodeFrame(&AprsFrame, &AX25Frame);
//if (Kiss.DecodeFrame(AX25Frame.encoded_kiss_frame, &KissTxFrame) == 0)
//ComposeAprsFrameFromKiss();
}
if (AprsFrame.message[0])
{
printf("Message from server: %s (command %u)\n", aprs_message, aprs_server_command);
if (aprs_acknowledge_request) {
ComposeAprsFrame(aprs_acknowledge_number);
printf("Acknowledge request: %s\n", aprs_acknowledge_number);
log_out("Message from server: %s (command %u)\n", AprsFrame.message, AprsFrame.server_command);
if (AprsFrame.acknowledge_request) {
ComposeAprsFrame(AprsFrame.acknowledge_number);
log_out("Acknowledge request: %s\n", AprsFrame.acknowledge_number);
}
}
}
else
printf("Error decoding APRS frame.");
log_out("Error decoding APRS frame.");
return (aprs_server_command);
return (AprsFrame.server_command);
}
/*
@ -536,7 +968,62 @@ void ComposeAprsFrame(uint8_t payload[])
// Set variable to indicate a send request
TransmitRequest = true;
printf("%s\n", txBuffer);
log_out("%s\n", txBuffer);
}
void ComposeAprsFrameFromKiss()
{
uint16_t BufferPosition = 0;
uint16_t cnt = 0;
uint8_t digi_cnt=0;
log_out( "Compose APRS from KISS frame");
memset(txBuffer, 0, sizeof(txBuffer));
// APRS header
txBuffer[BufferPosition++] = '<';
txBuffer[BufferPosition++] = 0xff;
txBuffer[BufferPosition++] = 0x01;
while ( KissTxFrame.source_address[cnt] != 0 && BufferPosition<MTU )
{
txBuffer[BufferPosition] = KissTxFrame.source_address[cnt];
BufferPosition++;
cnt++;
}
txBuffer[BufferPosition++] = '>';
digi_cnt=0;
while(digi_cnt <= KissTxFrame.number_of_digipeaters) {
cnt=0;
while ( KissTxFrame.digis[digi_cnt][cnt] != 0 && BufferPosition<MTU )
{
txBuffer[BufferPosition++] = KissTxFrame.digis[digi_cnt][cnt];
cnt++;
}
txBuffer[BufferPosition++] = ',';
digi_cnt++;
}
// Overwrite last command with colon
txBuffer[--BufferPosition] = ':';
cnt=0;
while ( KissTxFrame.data_field[cnt] != 0 && BufferPosition<MTU )
{
txBuffer[BufferPosition++] = KissTxFrame.data_field[cnt];
cnt++;
}
// Set variable to indicate a send request
TransmitRequest = true;
// Ready for next input KISS frame.
KissTxFrame.valid_data = false;
log_out("%s\n", txBuffer);
}
void transmit() {

Loading…
Cancel
Save