Giter Club home page Giter Club logo

mikaelnousiainen / rs41ng Goto Github PK

View Code? Open in Web Editor NEW
113.0 13.0 29.0 2.83 MB

Custom firmware for Vaisala RS41 and Graw DFM-17 radiosondes with support for amateur radio use. Ideal for tracking high-altitude balloons. Supported modes include APRS, Horus 4FSK mode, CATS, morse code (CW) and additional digital modes like WSPR and FT8 via Si5351.

License: GNU General Public License v2.0

CMake 0.17% C 91.81% C++ 7.98% Dockerfile 0.01% Shell 0.03%
4fsk amateur-radio aprs balloon gps gps-tracker high-altitude-balloon horus radio radiosonde

rs41ng's People

Contributors

argilo avatar kd2eat avatar manodasilva avatar mikaelnousiainen avatar mrarm avatar penfold42 avatar rpratt20 avatar scd31 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rs41ng's Issues

Warning during compilation

During compilation i get this error

In file included from /usr/local/src/RS41ng/src/telemetry.h:7, from /usr/local/src/RS41ng/src/codecs/horus/horus_packet_v1.h:6, from /usr/local/src/RS41ng/src/radio_payload_horus_v1.c:3: /usr/local/src/RS41ng/src/radio_payload_horus_v1.c: In function 'radio_horus_v1_encode': /usr/local/src/RS41ng/src/config.h:307:29: warning: unsigned conversion from 'int' to 'uint8_t' {aka 'unsigned char'} changes value from 'XXX' to '62' [-Woverflow] 307 | #define HORUS_V1_PAYLOAD_ID XXX

XXX Iis my Horus ID from Mark Jessop

However, when i flash the RS41, everything seems to be ok except i still have 4FSK-TEST V2 as payload.....

Erik

region `rom' overflowed by 4 bytes

Hello,

While building RS41ng I run in region from" overflowed by 4 bytes error message while linking.
Platform is Ubuntu 20.04.2 LTS.

Any hint how to solve?

➜  build git:(master) cmake ..
CMake Warning (dev) in CMakeLists.txt:
  No project() command is present.  The top-level CMakeLists.txt file must
  contain a literal, direct call to the project() command.  Add a line of
  code such as

    project(ProjectName)

  near the top of the file, but after cmake_minimum_required().

  CMake is pretending there is a "project(Project)" command on the first
  line.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/fkemps/RS41ng/build
➜  build git:(master) make
Scanning dependencies of target RS41ng.elf
[  1%] Building C object src/CMakeFiles/RS41ng.elf.dir/bmp280_handler.c.o
[  2%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs.c.o
[  4%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/ax25/ax25.c.o
[  5%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/bell/bell.c.o
[  6%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_l2.c.o
[  8%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_packet_v1.c.o
[  9%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/crc14.c.o
[ 10%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/mfsk/mfsk.c.o
[ 12%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/morse/morse.c.o
[ 13%] Building C object src/CMakeFiles/RS41ng.elf.dir/config.c.o
[ 15%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/bmp280/bmp280.c.o
[ 16%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/si4032/si4032.c.o
[ 17%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/ubxg6010/ubxg6010.c.o
[ 19%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/cmsis_boot/startup/startup_stm32f10x_md_vl.c.o
[ 20%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/cmsis_boot/system_stm32f10x.c.o
[ 21%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/datatimer.c.o
[ 23%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/delay.c.o
[ 24%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/i2c.c.o
[ 26%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/pwm.c.o
[ 27%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/spi.c.o
[ 28%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/misc.c.o
[ 30%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_adc.c.o
[ 31%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_dma.c.o
[ 32%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_flash.c.o
[ 34%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_gpio.c.o
[ 35%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_i2c.c.o
[ 36%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_pwr.c.o
[ 38%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_rcc.c.o
[ 39%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_spi.c.o
[ 41%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_tim.c.o
[ 42%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_usart.c.o
[ 43%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/system.c.o
[ 45%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/usart_ext.c.o
[ 46%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/usart_gps.c.o
[ 47%] Building C object src/CMakeFiles/RS41ng.elf.dir/locator.c.o
[ 49%] Building C object src/CMakeFiles/RS41ng.elf.dir/log.c.o
[ 50%] Building C object src/CMakeFiles/RS41ng.elf.dir/main.c.o
[ 52%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio.c.o
[ 53%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_aprs.c.o
[ 54%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_cw.c.o
[ 56%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_fsq.c.o
[ 57%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_horus_v1.c.o
[ 58%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_jtencode.c.o
[ 60%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_wspr.c.o
[ 61%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_si4032.c.o
[ 63%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_si5351.c.o
[ 64%] Building C object src/CMakeFiles/RS41ng.elf.dir/syscalls/semihosting.c.o
[ 65%] Building C object src/CMakeFiles/RS41ng.elf.dir/syscalls/syscalls.c.o
[ 67%] Building C object src/CMakeFiles/RS41ng.elf.dir/telemetry.c.o
[ 68%] Building C object src/CMakeFiles/RS41ng.elf.dir/template.c.o
[ 69%] Building C object src/CMakeFiles/RS41ng.elf.dir/utils.c.o
[ 71%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/jtencode.cpp.o
[ 72%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/JTEncode.cpp.o
[ 73%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/encode_rs_int.cpp.o
[ 75%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/init_rs_int.cpp.o
/home/fkemps/RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp: In member function 'void* JTEncode::init_rs_int(int, int, int, int, int, int)':
/home/fkemps/RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp:33:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
   33 |   if(symsize < 0 || symsize > 8*sizeof(data_t)){
      |                     ~~~~~~~~^~~~~~~~~~~~~~~~~~
[ 76%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/drivers/si5351/si5351.cpp.o
[ 78%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/si5351_handler.cpp.o
[ 79%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/si5351_test.cpp.o
[ 80%] Linking CXX executable RS41ng.elf
/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: RS41ng.elf section `.ARM.exidx' will not fit in region `rom'
/usr/lib/gcc/arm-none-eabi/9.2.1/../../../arm-none-eabi/bin/ld: region `rom' overflowed by 4 bytes
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/RS41ng.elf.dir/build.make:939: src/RS41ng.elf] Error 1
make[1]: *** [CMakeFiles/Makefile2:143: src/CMakeFiles/RS41ng.elf.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

Mod RS41ng Firmware for Serial Port Configuration

Request to mod the RS41ng firmware to use the serial port on the RS41 and DFM17 to set and permanently save the operating parameters (Callsign, Mode, Rate, Freq.) instead of having to use a config file and then have to rebuild the firmware and re-flash the unit. If so, it would make the re-purposing of these units much simpler for people who are not computer programming experts since they could easily use a windows computer to flash the supplied .bin or .hex file into the re-purposed unit and then use Putty to connect to the serial port to set the config without having to know how to build the firmware. Thanks, Joe WJ2B

Will not decode on Kenwood TM-D710

I can get my FT-2DR to decode packets from the RS41ng, but not my Kenwood TM-D710. It was speculated that there could be a pre-emphasis/de-emphasis issue and could explain why one receiver works, while the other does not.

Has pre/de-emphasis been accounted for?

Change default transmit power and add comments

From VK5QI:

Might be worth changing the default SI4032 transmit power in the RS41ng config...

The default of 7 (20 dBm) results in considerably reduced battery life (~12 hours)

25mW is more than enough

Maybe add in a comment that if being used purely for APRS to increase the power, but for horus binary 25mW is more than enough.

config.h should have APRSCALLSIGN in quotes ?

Hi, I found out that #define APRS_CALLSIGN PE2BZ does not work, it actually requires "PE2BZ" which might be obvious for most of us, but took me some "debugging" (reading the error message)

Pulse Counter 'driver'

To enable support for things like radiation sensors, it would be handy to have a 'driver' which counts pulses on one of the IO pins available on the 10-way connector.

The example radiation sensor I have on hand is this one: http://www.radiation-watch.org/

Thoughts on this:

  • Use an external rising edge interrupt on a GPIO. Not entirely sure which ones are available - it would be nice to be able to do I2C sensors and pulse counting working in parallel, but this might not be possible.
  • On each pulse, increment a uint16. This will of course wrap at 65535, but that's fine.
  • Send down the uint16 in the downlink. We have 2 bytes free at the end of the current default Horus Binary v2 frame, so it could slot in there.
  • Users can figure out the counts-per-minute from the downlinked data (probably easier than trying to do it on the payload)

This will need the addition of the stm_lib ext interrupt driver: stm32f10x_exti.c/h
I've found a copy of this here: https://github.com/NordicPlayground/mbed/tree/master/libraries/mbed/targets/cmsis/TARGET_STM/TARGET_DISCO_F100RB

Some info on using it here: https://scienceprog.com/interrupt-based-button-read-on-stm32f103zet6-board/

Docker build: Some errors on Windows

Hi,
There are a few errors that occur when trying to build the firmware via docker on Windows. Maybe you can add these information to the documentation:

On Windows, the path must be specified directly, so the $(pwd) command wont work:
docker run --rm -it -v PATH_TO_FILE:/usr/local/src/RS41ng rs41ng_compiler should be the correct one

Now you will probably get an error like this:
line 1: $':\r': command not found

This is because Windows creates new lines via unix and not via dos like Linux.

This problem can be easily solved on Windows using Notepad++:

At first open Notepad++

1. menu: Search -> Find in Files...
2. directory = set to your RS41ng source directory
4. find what = \r\n
5. replace with = \n
6. search mode = extended
7. press "Replace in Files

More information on how to convert the files to unix

This should solve the problem. Please note that you may have to rebuild the Docker image.

Looking for some explanation about the "TIME_SYNC"

Hi, I am trying to make RS41ng running 12 payloads, with different ID's on the same frequency (intended for a scouting competition)

I don't have enabled continous for either V1 or V2 4fsk, all other modes are disabled.

// Use Horus payload ID 256 for Horus V2 tests (4FSKTEST-V2) #define HORUS_V2_PAYLOAD_ID 379 #define HORUS_V2_BAUD_RATE_SI4032 100 #define HORUS_V2_BAUD_RATE_SI5351 100 #define HORUS_V2_PREAMBLE_LENGTH 16 #define HORUS_V2_IDLE_PREAMBLE_LENGTH 32 #define HORUS_V2_TONE_SPACING_HZ_SI5351 270 #define HORUS_V2_TIME_SYNC_SECONDS 10 // Schedule transmission every N seconds, counting from beginning of an hour (based on GPS$ #define HORUS_V2_TIME_SYNC_OFFSET_SECONDS 60 // Delay transmission for an N second offset after the scheduled time.

With these settings I expected the sonde to only transmit every 10 seconds AND again after the 60 seconds offset.

I added another tracker with the V2_TIME_SYNC_SECONDS set to 5 but both trackers, with GPS lock, appear to transmit continuously.

Can you shine a light on my question and maybe explain where I am going wrong ? Thanks.

HORUS and APRS with custom time schedule

Hi!
I trying setup for two modes. HORUS and APRS with custom time schedule. APRS 300 seconds (5 minute) and HORUS 60 seconds (1 minute). I use APRS_TIME_SYNC_SECONDS 300 and HORUS_V2_TIME_SYNC_SECONDS 60 in Config.h, but APRS send packet every 300 seconds and HORUS send packet 60 seconds after APRS packet. If it possible set time for APRS send every 300 seconds and HORUS every 60 second, if yes, how??
Thanks in advance.
Mario.

Can you try if FT8 still is working ?

Hi, I can compile a version which transmits wspr , Horus V2 and FT8 on HF (si5351) but the FT8 signal however is undecodable.

Instead of a normal FT8 transmission there appears an FT8 signal which starts at the right moment, sounds normal, but got interrupted, restarts, got interrupted, restarts and ends by the usual timing

image

The first transmission is the FT8 transmission, followed by the 4FSK transmission. As you can see the FT8 is "interrupted"

The same problem happened with another user with another computer, other RS41 and si5351 too.

I would like to test this mode on a balloon flight :-)

Thanks,

Ben

What to expect if BMP280 is enabled but not connected ?

Hi, today I did build the firmware on Ubuntu, .bin and .hex files are written, after re powering the sonde the red led stays on.

I have not yet attached the BMP280 but it's enabled in the config.

Does the software check and halt if no BMP280 is connected ?

Thanks,
Ben

DFM17 APRS packets do not format correctly

The address fields and the routing fields in the packet header are transmitted in a mixed order.
Expect:
[sender callsign]>[to callsign],[WIDE1-1],[WIDE2-2],:

TRANSMITTED ORDER:
[WIDE2]>[WIDE1-1],1:

Looks as sender callsign is replaced with part of second route. To callsign replaced with first route. Both sender and destination data are missing but the routing fields are missing from the packet.
I don't see routing declared in ax25 header file so memory pointers likely address incorrect area.

Radiosonde not detected by RTL-SDR

Hi, i have RTL-SDR and SDR++ application to see the responce from the radiosonde, i have programmed RS41ng firmware into my radiosonde and i tried to tune my sdr++ to below frequency, but no luck
// Transmit frequencies for the Si4032 transmitter modes
#define RADIO_SI4032_TX_FREQUENCY_CW 432500000
#define RADIO_SI4032_TX_FREQUENCY_PIP 432500000
#define RADIO_SI4032_TX_FREQUENCY_APRS_1200 432500000

My SDR is not detecting any signal in the programmed frequency range, can anybody help me on this.

Cant debug anymore - Memory limit in RS41?

Problem: if i try to use the debug system, the file size increases over a limit of 64 kb. Is there any chance to get it lower? How do you @mikaelnousiainen debug this?

Details:
If i try to enable

#define SEMIHOSTING_ENABLE
#define LOGGING_ENABLE

the make command shows this infos:

[ 32%] Linking CXX executable RS41ng.elf
Building /home/wolfgang/RS41ng_workspace/build/RS41ng.hex 
Building /home/wolfgang/RS41ng_workspace/build/RS41ng.bin
   text	   data	    bss	    dec	    hex	filename
  65148	   1432	   5192	  71772	  1185c	RS41ng.elf
[ 78%] Built target RS41ng.elf
Info : clock speed 950 kHz
Info : STLINK v2 JTAG v29 API v2 SWIM v7 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 3.540079
Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints
target halted due to debug-request, current mode: Thread 
xPSR: 0x01000000 pc: 0x0800281c msp: 0x200019e0
** Programming Started **
auto erase enabled
Info : device id = 0x10016420
Info : flash size = 64kbytes
target halted due to breakpoint, current mode: Thread 
xPSR: 0x61000000 pc: 0x2000003a msp: 0x200019e0
Warn : no flash bank found for address 8010000
wrote 65536 bytes from file build/src/RS41ng.elf in 2.187044s (29.263 KiB/s)
** Programming Finished **
** Verify Started **
target halted due to breakpoint, current mode: Thread 
xPSR: 0x61000000 pc: 0x2000002e msp: 0x200019e0
target halted due to breakpoint, current mode: Thread 
xPSR: 0x61000000 pc: 0x2000002e msp: 0x200019e0
Error: checksum mismatch - attempting binary compare
diff 0 address 0x08010000. Was 0xff instead of 0x00
diff 1 address 0x08010001. Was 0xff instead of 0x00
diff 2 address 0x08010002. Was 0xff instead of 0x10
diff 3 address 0x08010003. Was 0xff instead of 0x27

the linker shows more then 64 k so this maybe the Limit - so i cant flash to unit

BTW: without SEMIHOST Switch the Linker shows:

   text	   data	    bss	    dec	    hex	filename
  60148	   1432	   5192	  66772	  104d4	RS41ng.elf

Flashing instructions are unclear

The flashing instructions in the readme are:

  1. Remove batteries from the sonde
  2. Connect an ST-LINK v2 programmer dongle [...]
  3. Unlock the flash protection [...]

These instructions didn't work for me. Instead I had to put the batteries in the sonde and press the power button to switch it on before unlocking & flashing would work. The ST-LINK v2 does not appear to supply power to the target device (but it could be that I connected it incorrectly).

If the instructions need updating, I'd be happy to open a pull request.

CATS not transmitting from DFM-17

I spent a few hours this afternoon attempting to try the new cats option. I programmed a sequence of APRS, Hv2, cats with 30 second repeating cycle. APRS and HV2 both transmitted and decoded. I could not identify a cats transmission at all. I tried the cats-sdr-software, an ht set to the frequency and an sdr# but no signal at all transmitted from the DFM. I used the GitHub cats settings other than call sign and comment text and the not balloon reporting option. The cats sdr receiving station did appear on APRS.fi along with the APRS icon from the DFM APRS transmission received through APRS.

macOS arm-none-eabi build error

I'm trying to build the code on macOS; everything works well until I get to this point :

[ 78%] Linking CXX executable RS41ng.elf
/opt/local/lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld : arm-none-eabi/bin/ld : Error: unable to disambiguate: -search_paths_first  (did you mean --search_paths_first ?)

make[2]: *** [src/RS41ng.elf] Error 1
make[1]: *** [src/CMakeFiles/RS41ng.elf.dir/all] Error 2
make: *** [all] Error 2

I had to specify my TOOLCHAIN_PATH in src/CMakeLists.txt to be /opt/local/bin before running cmake .. because the arm-none-eabi-gcc toolchain is apparently installed there on macOS.

How could I fix this issue ?

Edit : I installed the toolchain with MacPorts, which compiled it on my machine

Add flash instructions for genuine ST-Link/V2 Flasher

I ran into some issues today trying to flash a RS41 with a genuine ST-Link/V2 programmer instead of the 3rd-party clones I have used before. When trying to flash using openOCD i got the following errors:

Error: target voltage may be too low for reliable debugging
Error: init mode failed (unable to connect to the target)

I found conflicting information online, about whether or not to connect the voltage supply pin (MCU switch 3.3V/Pin5) to the programmer, so I chose not to connect it. After connecting this pin I had no further issues.

As far as I understand (please correct me if I'm wrong) the corresponding pin on the ST-Links 20-pin header (MCU_VDD/Pin1 and Pin2) does not power the Radiosonde (so batteries or another power supply is still needed for flashing) but is needed to "ensure signal compatibility between the boards" (see User Manual Page 12). I don't know if this was obvious to other people, but it took me some time to figure out.
Maybe consider adding this info to the README (for example like below)?
Also might be a good idea to try to reproduce this issue, as I don't know if my programmer is behaving nominally.

Best regards.


Connect the RS41 radiosonde to the programmer

With 3rd Party ST-LINK Dongle:
  1. If your ST-LINK v2 programmer is capable of providing a voltage of 3.3V (as some third-party clones are),
    remove the batteries from the sonde. Otherwise, leave the batteries in and power on the sonde.
  2. Connect an ST-LINK v2 programmer dongle to the sonde via the following pins:
    • SWDIO -> Pin 9 (SWDIO)
    • SWCLK -> Pin 8 (SWCLK)
    • GND -> Pin 1 (GND)
    • 3.3V -> Pin 5 (MCU switch 3.3V) (only required when using the programmer to power the sonde)
With genuine ST-LINK Dongle:
  1. The programmer is not able to provide the sonde with power so you will need to leave the batteries in/provide another power source.
  2. Connect the Radiosonde to the 20-pin Connector of the programmer.
    • SWDIO -> Pin 9 (SWDIO)
    • SWCLK -> Pin 8 (SWCLK)
    • GND -> Pin 1 (GND)
    • MCU_VDD -> Pin 5 (MCU switch 3.3V) (only required when using the programmer to power the sonde)

compilation fails even with libbsd-dev installed on ubuntu jammy

I am finding that compilation fails even with libbsd-dev installed on ubuntu jammy
Issue is with the strlcpy vs strncpy

-- The C compiler identification is GNU 11.3.0
-- The CXX compiler identification is GNU 11.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/mitch/RS41ng/build
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/bmp280_handler.c.o
[ 2%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs.c.o
[ 3%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs_position.c.o
[ 4%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs_weather.c.o
[ 5%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/ax25/ax25.c.o
[ 6%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/bell/bell.c.o
[ 8%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_common.c.o
[ 9%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_l2.c.o
[ 10%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_packet_v1.c.o
[ 11%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_packet_v2.c.o
[ 12%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/crc14.c.o
[ 13%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/mfsk/mfsk.c.o
[ 14%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/morse/morse.c.o
[ 16%] Building C object src/CMakeFiles/RS41ng.elf.dir/config.c.o
[ 17%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/bmp280/bmp280.c.o
[ 18%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/pulse_counter/pulse_counter.c.o
[ 19%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/si4032/si4032.c.o
[ 20%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/ubxg6010/ubxg6010.c.o
[ 21%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/cmsis_boot/startup/startup_stm32f10x_md_vl.c.o
[ 22%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/cmsis_boot/system_stm32f10x.c.o
[ 24%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/datatimer.c.o
[ 25%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/delay.c.o
[ 26%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/i2c.c.o
[ 27%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/pwm.c.o
[ 28%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/spi.c.o
[ 29%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/misc.c.o
[ 31%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_adc.c.o
[ 32%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_dma.c.o
[ 33%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_exti.c.o
[ 34%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_flash.c.o
[ 35%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_gpio.c.o
[ 36%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_i2c.c.o
[ 37%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_pwr.c.o
[ 39%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_rcc.c.o
[ 40%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_spi.c.o
[ 41%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_tim.c.o
[ 42%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_usart.c.o
[ 43%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/system.c.o
[ 44%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/usart_ext.c.o
[ 45%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/usart_gps.c.o
[ 47%] Building C object src/CMakeFiles/RS41ng.elf.dir/locator.c.o
[ 48%] Building C object src/CMakeFiles/RS41ng.elf.dir/log.c.o
[ 49%] Building C object src/CMakeFiles/RS41ng.elf.dir/main.c.o
[ 50%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio.c.o
[ 51%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_aprs_position.c.o
[ 52%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_aprs_weather.c.o
[ 54%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_cw.c.o
[ 55%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_fsq.c.o
[ 56%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_horus_v1.c.o
[ 57%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_horus_v2.c.o
[ 58%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_jtencode.c.o
[ 59%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_wspr.c.o
[ 60%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_si4032.c.o
[ 62%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_si5351.c.o
[ 63%] Building C object src/CMakeFiles/RS41ng.elf.dir/syscalls/semihosting.c.o
[ 64%] Building C object src/CMakeFiles/RS41ng.elf.dir/syscalls/syscalls.c.o
[ 65%] Building C object src/CMakeFiles/RS41ng.elf.dir/telemetry.c.o
[ 66%] Building C object src/CMakeFiles/RS41ng.elf.dir/template.c.o
[ 67%] Building C object src/CMakeFiles/RS41ng.elf.dir/utils.c.o
[ 68%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/jtencode.cpp.o
[ 70%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/JTEncode.cpp.o
[ 71%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/encode_rs_int.cpp.o
[ 72%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/init_rs_int.cpp.o
/home/mitch/RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp: In member function 'void* JTEncode::init_rs_int(int, int, int, int, int, int)':
/home/mitch/RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp:33:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
33 | if(symsize < 0 || symsize > 8*sizeof(data_t)){
| ~~~~~~~~^~~~~~~~~~~~~~~~~~
[ 73%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/drivers/si5351/si5351.cpp.o
[ 74%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/drivers/si5351fast/si5351mcu.cpp.o
[ 75%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/si5351_handler.cpp.o
[ 77%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/si5351_test.cpp.o
[ 78%] Linking CXX executable RS41ng.elf
Building /home/mitch/RS41ng/build/RS41ng.hex
Building /home/mitch/RS41ng/build/RS41ng.bin
text data bss dec hex filename
55340 1512 5152 62004 f234 RS41ng.elf
[ 78%] Built target RS41ng.elf
[ 79%] Building C object tests/CMakeFiles/RS41ng_top.dir/bell_test.c.o
/home/mitch/RS41ng/tests/bell_test.c: In function ‘main2’:
/home/mitch/RS41ng/tests/bell_test.c:16:34: warning: format argument 1 unused before used argument 4 in ‘$’-style format [-Wformat=]
16 | snprintf(test, sizeof(test), "%3$s %4$s %2$s\n", "1fd", gg, "3aa", "4ab");
| ^~~~~~~~~~~~~~~~~~
In file included from /home/mitch/RS41ng/src/gps.h:6,
from /home/mitch/RS41ng/src/codecs/aprs/aprs_position.h:7,
from /home/mitch/RS41ng/tests/bell_test.c:5:
/home/mitch/RS41ng/src/config.h:189:22: warning: too many arguments for format [-Wformat-extra-args]
189 | #define APRS_COMMENT "RS41ng radiosonde firmware test"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mitch/RS41ng/src/config.h:189:22: note: in definition of macro ‘APRS_COMMENT’
189 | #define APRS_COMMENT "RS41ng radiosonde firmware test"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 80%] Building C object tests/CMakeFiles/RS41ng_top.dir/morse_test.c.o
[ 81%] Building C object tests/CMakeFiles/RS41ng_top.dir/template_test.c.o
[ 82%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/aprs/aprs.c.o
[ 83%] Building C object tests/CMakeFiles/RS41ng_top.dir/
/src/codecs/aprs/aprs_position.c.o
[ 85%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/aprs/aprs_weather.c.o
[ 86%] Building C object tests/CMakeFiles/RS41ng_top.dir/
/src/codecs/ax25/ax25.c.o
[ 87%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/bell/bell.c.o
[ 88%] Building C object tests/CMakeFiles/RS41ng_top.dir/
/src/codecs/horus/horus_common.c.o
[ 89%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/horus/horus_l2.c.o
[ 90%] Building C object tests/CMakeFiles/RS41ng_top.dir/
/src/codecs/horus/horus_packet_v1.c.o
[ 91%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/horus/horus_packet_v2.c.o
[ 93%] Building C object tests/CMakeFiles/RS41ng_top.dir/
/src/codecs/jtencode/lib/crc14.c.o
[ 94%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/mfsk/mfsk.c.o
[ 95%] Building C object tests/CMakeFiles/RS41ng_top.dir/
/src/codecs/morse/morse.c.o
[ 96%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/config.c.o
[ 97%] Building C object tests/CMakeFiles/RS41ng_top.dir/
/src/template.c.o
/home/mitch/RS41ng/src/template.c: In function ‘template_replace’:
/home/mitch/RS41ng/src/template.c:16:5: warning: implicit declaration of function ‘strlcpy’; did you mean ‘strncpy’? [-Wimplicit-function-declaration]
16 | strlcpy(replacement, CALLSIGN, sizeof(replacement));
| ^~~~~~~
| strncpy
[ 98%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/utils.c.o
[100%] Linking C executable RS41ng_top
/usr/bin/ld: CMakeFiles/RS41ng_top.dir/template_test.c.o: in function main': template_test.c:(.text+0x7b): undefined reference to strlcpy'
/usr/bin/ld: CMakeFiles/RS41ng_top.dir/
/src/template.c.o: in function template_replace': template.c:(.text+0x68): undefined reference to strlcpy'
/usr/bin/ld: template.c:(.text+0x84): undefined reference to strlcpy' /usr/bin/ld: template.c:(.text+0xc7): undefined reference to strlcpy'
/usr/bin/ld: template.c:(.text+0xe3): undefined reference to strlcpy' /usr/bin/ld: CMakeFiles/RS41ng_top.dir/__/src/template.c.o:template.c:(.text+0x126): more undefined references to strlcpy' follow
collect2: error: ld returned 1 exit status
make[2]: *** [tests/CMakeFiles/RS41ng_top.dir/build.make:369: tests/RS41ng_top] Error 1
make[1]: *** [CMakeFiles/Makefile2:169: tests/CMakeFiles/RS41ng_top.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

APRS Longitude not showing

My longitude is 150 00'00" and does not show up on my FT3D is that because $lon is up to 6 characters and my longitude has more characters?

Feature Request- 'Pips' between transmissions

RS41HUP had a useful feature where you could transmit short 'pips' (50ms of carrier) at regular intervals between telemetry transmissions.
This acts as a channel marker of sorts, helping listeners tune their receivers in, while not using too much power.

I would suggest adding it in as a 'mode' which the user can include inamongst other transmissions.

e.g.

#define RADIO_POST_TRANSMIT_DELAY_MS 2000


#define RADIO_SI4032_TX_HORUS_V2 true
#define RADIO_SI4032_TX_HORUS_V2_COUNT 1
#define RADIO_SI4032_TX_PIP true
#define RADIO_SI4032_TX_PIP_COUNT 5

Would result in a Horus v2 transmission, then 6 pips every 2 seconds thereafter

Firmware for the new STM32L412KB based RS41

The latest recoverd sonde (from the german Bundeswehr) contains the STM32L412KB chip and is a device with Ultra-low-power with FPU Arm Cortex-M4 MCU 80 MHz with 128 Kbytes of Flash memory. Looks the same (bottom one on the picture)
The current firmware RS41ng is written for the STM32F100. And that is an M3 MCU.
Hence you cannot flash it with the current firmware.

Is there already a process to port the current firmware for the new sondes ?

My knowledge is not enough to port the current firmware so I am keen to find out if someone is already on to it.
If needed i could donate one of the new sondes.

Erik

Scherm­afbeelding 2024-05-17 om 00 33 09

Building docker compiler

I am building on an old Dell 64 bit running Ubuntu 20.04 Jammy jellyfish. Have attemped 2 times with errors :

randy@randy-Inspiron-N4010:~/RS41ng-main$ docker build -t rs41ng_compiler .
[+] Building 2775.4s (5/8) docker:default
[+] Building 3055.4s (6/8) docker:default
=> [internal] load build definition from Dockerfile 1.9s
=> => transferring dockerfile: 312B 0.4s
=> [internal] load .dockerignore 1.6s
=> => transferring context: 2B 0.1s
=> [internal] load metadata for docker.io/library/fedora:36 3.2s
=> [1/4] FROM docker.io/library/fedora:36@sha256:64cd00a0e2b92d527c0a 1112.2s
=> => resolve docker.io/library/fedora:36@sha256:64cd00a0e2b92d527c0a095 0.4s
=> => sha256:64cd00a0e2b92d527c0a0954162a73e85f160e3a53c3832 975B / 975B 0.0s
=> => sha256:c3928ce4e65d6d1e66fc1e2c9b1cc163d31bc63a96117d9 529B / 529B 0.0s
=> => sha256:1d81a0524f7d02b7673be0eb1201ab507468b736188 1.99kB / 1.99kB 0.0s
=> => sha256:c7bef7d09442a4c4deef8e8120027e7fa3f163 60.07MB / 60.07MB 1104.5s
=> => extracting sha256:c7bef7d09442a4c4deef8e8120027e7fa3f163c7b5a0afed 4.8s
=> [internal] load build context 0.9s
=> => transferring context: 634B 0.0s
=> ERROR [2/4] RUN dnf install -y gcc-c++ arm-none-eabi-gcc- 1935.6s

[2/4] RUN dnf install -y gcc-c++ arm-none-eabi-gcc-cs arm-none-eabi-gcc-cs-c++ arm-none-eabi-binutils-cs arm-none-eabi-newlib cmake:
1833.1 Fedora 36 - x86_64 47 kB/s | 83 MB 30:19
1884.1 Fedora 36 openh264 (From Cisco) - x86_64 1.2 kB/s | 2.5 kB 00:02
1934.7 Fedora Modular 36 - x86_64 0.0 B/s | 0 B 00:49
1934.7 Errors during downloading metadata for repository 'fedora-modular':
1934.7 - Status code: 404 for https://d2lzkl7pfhq30w.cloudfront.net/pub/fedora/linux/releases/36/Modular/x86_64/os/repodata/repomd.xml (IP: 18.160.94.44)
1934.7 - Status code: 404 for http://dl.fedoraproject.org/pub/fedora/linux/releases/36/Modular/x86_64/os/repodata/repomd.xml (IP: 38.145.60.24)
1934.7 - Status code: 404 for https://dl.fedoraproject.org/pub/fedora/linux/releases/36/Modular/x86_64/os/repodata/repomd.xml (IP: 38.145.60.24)
1934.7 - Status code: 404 for http://mirror.rnet.missouri.edu/fedora/linux/releases/36/Modular/x86_64/os/repodata/repomd.xml (IP: 128.206.116.77)
1934.7 - Curl error (28): Timeout was reached for http://ftp.tudelft.nl/download.fedora.redhat.com/linux/releases/36/Modular/x86_64/os/repodata/repomd.xml [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]
1934.8 Error: Failed to download metadata for repo 'fedora-modular': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried


Dockerfile:3

2 |
3 | >>> RUN dnf install -y
4 | >>> gcc-c++
5 | >>> arm-none-eabi-gcc-cs
6 | >>> arm-none-eabi-gcc-cs-c++
7 | >>> arm-none-eabi-binutils-cs
8 | >>> arm-none-eabi-newlib
9 | >>> cmake
10 |

ERROR: failed to solve: process "/bin/sh -c dnf install -y gcc-c++ arm-none-eabi-gcc-cs arm-none-eabi-gcc-cs-c++ arm-none-eabi-binutils-cs arm-none-eabi-newlib cmake" did not complete successfully: exit code: 1

What do I try?

Thank you.
Randy

Power OFF Function Not Working for both RS41 and DFM17

When the #define ALLOW_POWER_OFF field in the config.h file is set to "true", the power OFF function is not working in both the RS41 and DFM17. I have held down the Power Button while the sonde is not transmitting but the sonde does not turn off. Only way to power OFF is to remove the batteries. Thanks, Joe WJ2B

Failure to build under docker and fedora workstation

Using either the docker or fedora build enviroments I get the following error

npc@fedora build]$ cmake ..

-- The C compiler identification is GNU 12.2.1
-- The CXX compiler identification is GNU 12.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/npc/RS41ng/build
[npc@fedora build]$ make
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/bmp280_handler.c.o
[ 2%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs.c.o
[ 3%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs_position.c.o
[ 4%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs_weather.c.o
[ 5%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/ax25/ax25.c.o
[ 6%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/bell/bell.c.o
[ 8%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_common.c.o
[ 9%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_l2.c.o
[ 10%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_packet_v1.c.o
[ 11%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_packet_v2.c.o
[ 12%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/crc14.c.o
[ 13%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/mfsk/mfsk.c.o
[ 14%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/morse/morse.c.o
[ 16%] Building C object src/CMakeFiles/RS41ng.elf.dir/config.c.o
[ 17%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/bmp280/bmp280.c.o
[ 18%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/pulse_counter/pulse_counter.c.o
[ 19%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/si4032/si4032.c.o
[ 20%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/ubxg6010/ubxg6010.c.o
[ 21%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/cmsis_boot/startup/startup_stm32f10x_md_vl.c.o
[ 22%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/cmsis_boot/system_stm32f10x.c.o
[ 24%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/datatimer.c.o
[ 25%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/delay.c.o
[ 26%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/i2c.c.o
[ 27%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/pwm.c.o
[ 28%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/spi.c.o
[ 29%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/misc.c.o
[ 31%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_adc.c.o
[ 32%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_dma.c.o
[ 33%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_exti.c.o
[ 34%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_flash.c.o
[ 35%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_gpio.c.o
[ 36%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_i2c.c.o
[ 37%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_pwr.c.o
[ 39%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_rcc.c.o
[ 40%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_spi.c.o
[ 41%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_tim.c.o
[ 42%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_usart.c.o
[ 43%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/system.c.o
[ 44%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/usart_ext.c.o
[ 45%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/usart_gps.c.o
[ 47%] Building C object src/CMakeFiles/RS41ng.elf.dir/locator.c.o
[ 48%] Building C object src/CMakeFiles/RS41ng.elf.dir/log.c.o
[ 49%] Building C object src/CMakeFiles/RS41ng.elf.dir/main.c.o
[ 50%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio.c.o
[ 51%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_aprs_position.c.o
[ 52%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_aprs_weather.c.o
[ 54%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_cw.c.o
[ 55%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_fsq.c.o
[ 56%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_horus_v1.c.o
[ 57%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_horus_v2.c.o
[ 58%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_jtencode.c.o
[ 59%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_wspr.c.o
[ 60%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_si4032.c.o
[ 62%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_si5351.c.o
[ 63%] Building C object src/CMakeFiles/RS41ng.elf.dir/syscalls/semihosting.c.o
[ 64%] Building C object src/CMakeFiles/RS41ng.elf.dir/syscalls/syscalls.c.o
[ 65%] Building C object src/CMakeFiles/RS41ng.elf.dir/telemetry.c.o
[ 66%] Building C object src/CMakeFiles/RS41ng.elf.dir/template.c.o
[ 67%] Building C object src/CMakeFiles/RS41ng.elf.dir/utils.c.o
[ 68%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/jtencode.cpp.o
[ 70%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/JTEncode.cpp.o
[ 71%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/encode_rs_int.cpp.o
[ 72%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/init_rs_int.cpp.o
/home/npc/RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp: In member function 'void* JTEncode::init_rs_int(int, int, int, int, int, int)':
/home/npc/RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp:33:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
33 | if(symsize < 0 || symsize > 8*sizeof(data_t)){
| ~~~~~~~~^~~~~~~~~~~~~~~~~~
[ 73%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/drivers/si5351/si5351.cpp.o
[ 74%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/drivers/si5351fast/si5351mcu.cpp.o
[ 75%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/si5351_handler.cpp.o
[ 77%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/si5351_test.cpp.o
[ 78%] Linking CXX executable RS41ng.elf
/usr/lib/gcc/arm-none-eabi/12.2.0/../../../../arm-none-eabi/bin/ld: /usr/lib/gcc/arm-none-eabi/12.2.0/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libstdc++_nano.a(eh_globals.o): in function _GLOBAL__sub_I___cxa_get_globals_fast&apos;: eh_globals.cc:(.text.startup._GLOBAL__sub_I___cxa_get_globals_fast+0xc): undefined reference to __dso_handle'
/usr/lib/gcc/arm-none-eabi/12.2.0/../../../../arm-none-eabi/bin/ld: RS41ng.elf: hidden symbol `__dso_handle' isn't defined
/usr/lib/gcc/arm-none-eabi/12.2.0/../../../../arm-none-eabi/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/RS41ng.elf.dir/build.make:1153: src/RS41ng.elf] Error 1
make[1]: *** [CMakeFiles/Makefile2:117: src/CMakeFiles/RS41ng.elf.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
[npc@fedora build]$

GPS power saving

Please add GPS power saving as used in RS41HUP (UBLOX_POWERSAVE). The batteries last much longer needed for floating HAB's.

No GPS Fix when Time Sync enabled

Hi! Whenever I enable GPS Time Sync for any transmission, the packets indefinitely come with latitude, longitude, and altitude equal to 0. The same config, same radiosonde, but without time sync enabled, returns proper coordinates. The value of the sync is irrelevant, happens on any value, such as 10s, 15s, etc. Why is this happening? Is there an easy and quick fix for this? Thanks in advance!

Sensor data problem

hello again, hope not to disturb. I loaded the last update and I found that it does not recognize the sensor, the probe takes 15 seconds to start, it takes 35 seconds, and it does not throw the sensor data. Could something have happened in the code? I was able to visualize with the weather station logo but with zero values. Sorry for so many questions, and there is very little to work. Thank you

APRS

Hi. What part of the program should be modified so that in APRS.FI when I click on the probe, show the temperature, humidity and pressure on the balloon that appears on the station? He currently does not show me anything. Figure as LW7EEA-13

Errors building firmware @wsl in windows10

Hi!
Get this errors
root@DESKTOP-4VNP1BN:/RS41ng/build# cmake .. -- The C compiler identification is GNU 10.2.1 -- The CXX compiler identification is GNU 10.2.1 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Configuring done -- Generating done -- Build files have been written to: /RS41ng/build root@DESKTOP-4VNP1BN:/RS41ng/build# make Scanning dependencies of target RS41ng.elf [ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/bmp280_handler.c.o [ 2%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs.c.o [ 3%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs_position.c.o [ 4%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs_weather.c.o [ 5%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/ax25/ax25.c.o [ 6%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/bell/bell.c.o [ 7%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_common.c.o [ 8%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_l2.c.o [ 10%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_packet_v1.c.o [ 11%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_packet_v2.c.o [ 12%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/crc14.c.o [ 13%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/mfsk/mfsk.c.o [ 14%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/morse/morse.c.o [ 15%] Building C object src/CMakeFiles/RS41ng.elf.dir/config.c.o [ 16%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/bmp280/bmp280.c.o [ 17%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/pulse_counter/pulse_counter.c.o [ 19%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/si4032/si4032.c.o [ 20%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/ubxg6010/ubxg6010.c.o [ 21%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/cmsis_boot/startup/startup_stm32f10x_md_vl.c.o [ 22%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/cmsis_boot/system_stm32f10x.c.o [ 23%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/datatimer.c.o [ 24%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/delay.c.o [ 25%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/i2c.c.o [ 26%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/pwm.c.o [ 28%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/spi.c.o [ 29%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/misc.c.o [ 30%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_adc.c.o [ 31%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_dma.c.o [ 32%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_exti.c.o [ 33%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_flash.c.o [ 34%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_gpio.c.o [ 35%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_i2c.c.o [ 37%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_pwr.c.o [ 38%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_rcc.c.o [ 39%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_spi.c.o [ 40%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_tim.c.o [ 41%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_usart.c.o [ 42%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/system.c.o [ 43%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/usart_ext.c.o [ 44%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/usart_gps.c.o [ 46%] Building C object src/CMakeFiles/RS41ng.elf.dir/locator.c.o [ 47%] Building C object src/CMakeFiles/RS41ng.elf.dir/log.c.o [ 48%] Building C object src/CMakeFiles/RS41ng.elf.dir/main.c.o [ 49%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio.c.o [ 50%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_aprs_position.c.o [ 51%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_aprs_weather.c.o [ 52%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_cw.c.o [ 53%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_fsq.c.o [ 55%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_horus_v1.c.o [ 56%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_horus_v2.c.o [ 57%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_jtencode.c.o [ 58%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_wspr.c.o [ 59%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_si4032.c.o [ 60%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_si5351.c.o [ 61%] Building C object src/CMakeFiles/RS41ng.elf.dir/syscalls/semihosting.c.o [ 62%] Building C object src/CMakeFiles/RS41ng.elf.dir/syscalls/syscalls.c.o [ 64%] Building C object src/CMakeFiles/RS41ng.elf.dir/telemetry.c.o [ 65%] Building C object src/CMakeFiles/RS41ng.elf.dir/template.c.o [ 66%] Building C object src/CMakeFiles/RS41ng.elf.dir/utils.c.o [ 67%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/jtencode.cpp.o [ 68%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/JTEncode.cpp.o [ 69%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/encode_rs_int.cpp.o [ 70%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/init_rs_int.cpp.o /RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp: In member function 'void* JTEncode::init_rs_int(int, int, int, int, int, int)': /RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp:33:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] if(symsize < 0 || symsize > 8*sizeof(data_t)){ ~~~~~~~~^~~~~~~~~~~~~~~~~~ [ 71%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/drivers/radsens/radsens.cpp.o [ 73%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/drivers/si5351/si5351.cpp.o [ 74%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/drivers/si5351fast/si5351mcu.cpp.o [ 75%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/radsens_handler.cpp.o [ 76%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/si5351_handler.cpp.o [ 77%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/si5351_test.cpp.o [ 78%] Linking CXX executable RS41ng.elf Building /RS41ng/build/RS41ng.hex Building /RS41ng/build/RS41ng.bin text data bss dec hex filename 50607 1120 5184 56911 de4f RS41ng.elf [ 78%] Built target RS41ng.elf Scanning dependencies of target RS41ng_top [ 79%] Building C object tests/CMakeFiles/RS41ng_top.dir/bell_test.c.o [ 80%] Building C object tests/CMakeFiles/RS41ng_top.dir/morse_test.c.o [ 82%] Building C object tests/CMakeFiles/RS41ng_top.dir/template_test.c.o [ 83%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/aprs/aprs.c.o [ 84%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/aprs/aprs_position.c.o [ 85%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/aprs/aprs_weather.c.o [ 86%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/ax25/ax25.c.o [ 87%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/bell/bell.c.o [ 88%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/horus/horus_common.c.o [ 89%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/horus/horus_l2.c.o [ 91%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/horus/horus_packet_v1.c.o [ 92%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/horus/horus_packet_v2.c.o [ 93%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/jtencode/lib/crc14.c.o [ 94%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/mfsk/mfsk.c.o [ 95%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/morse/morse.c.o [ 96%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/config.c.o [ 97%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/template.c.o /RS41ng/src/template.c: In function ‘template_replace’: /RS41ng/src/template.c:16:5: warning: implicit declaration of function ‘strlcpy’; did you mean ‘strncpy’? [-Wimplicit-function-declaration] 16 | strlcpy(replacement, CALLSIGN, sizeof(replacement)); | ^~~~~~~ | strncpy [ 98%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/utils.c.o [100%] Linking C executable RS41ng_top /usr/bin/ld: CMakeFiles/RS41ng_top.dir/template_test.c.o: in function main':
template_test.c:(.text+0x62): undefined reference to strlcpy' /usr/bin/ld: CMakeFiles/RS41ng_top.dir/__/src/template.c.o: in function template_replace':
template.c:(.text+0x52): undefined reference to strlcpy' /usr/bin/ld: template.c:(.text+0x6e): undefined reference to strlcpy'
/usr/bin/ld: template.c:(.text+0xb1): undefined reference to strlcpy' /usr/bin/ld: template.c:(.text+0xcd): undefined reference to strlcpy'
/usr/bin/ld: CMakeFiles/RS41ng_top.dir/__/src/template.c.o:template.c:(.text+0x110): more undefined references to strlcpy' follow collect2: error: ld returned 1 exit status make[2]: *** [tests/CMakeFiles/RS41ng_top.dir/build.make:358: tests/RS41ng_top] Error 1 make[1]: *** [CMakeFiles/Makefile2:189: tests/CMakeFiles/RS41ng_top.dir/all] Error 2 make: *** [Makefile:103: all] Error 2

Any help?
73

Compile error: strlcpy not found

I get an error when trying to compile. I have installed libbsd-dev and that helped with a previous error that <bsd/string.h> could not be found. It was my understanding that <bsd/string.h> contained the function strlcpy but it isn't working in template.c

[ 97%] Building C object tests/CMakeFiles/Project.dir/__/src/template.c.o
/home/reid/RS41ng/src/template.c: In function ‘template_replace’:
/home/reid/RS41ng/src/template.c:16:5: warning: implicit declaration of function ‘strlcpy’; did you mean ‘strncpy’? [-Wimplicit-function-declaration]
     strlcpy(replacement, CALLSIGN, sizeof(replacement));
     ^~~~~~~
     strncpy
[ 98%] Building C object tests/CMakeFiles/Project.dir/__/src/utils.c.o
[100%] Linking C executable Project
CMakeFiles/Project.dir/template_test.c.o: In function `main':
template_test.c:(.text+0x74): undefined reference to `strlcpy'
CMakeFiles/Project.dir/__/src/template.c.o: In function `template_replace':
template.c:(.text+0x61): undefined reference to `strlcpy'
template.c:(.text+0x7d): undefined reference to `strlcpy'
template.c:(.text+0xc0): undefined reference to `strlcpy'
template.c:(.text+0xdc): undefined reference to `strlcpy'
CMakeFiles/Project.dir/__/src/template.c.o:template.c:(.text+0x11f): more undefined references to `strlcpy' follow
collect2: error: ld returned 1 exit status
tests/CMakeFiles/Project.dir/build.make:510: recipe for target 'tests/Project' failed
make[2]: *** [tests/Project] Error 1
CMakeFiles/Makefile2:173: recipe for target 'tests/CMakeFiles/Project.dir/all' failed
make[1]: *** [tests/CMakeFiles/Project.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2```

Callsign specified isn't transmitted with Horus V2

Hi!

First of all, I'd like to thank you for all the hard work! I've been playing around with your code, and we plan to use it with a ham weather balloon we're launching next month :)

I'm currently having issues with the Horus V2 mode: no matter what callsign I specify in config.h, my RS-41 always transmits 4FSKTEST-V2 as payload ID. I've looked everywhere in the source files, but I cant' seem to find where it should be specified...

Cheers,
Manoel

how to make a pull request

Hi Mikael, have some new code for you about this rotating HORUS_V2 2nd Frequency. I did a local commit. but i wonder how to make a pull request to this project? Do you have to add my user anywhere? I never made a pull-request before sorry.

got some errors not know how to interpret this

wolfgang@Wolf-Deb-Laptop:~/RS41ng$ git push
Username for 'https://github.com': whallmann
Password for 'https://[email protected]':
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/mikaelnousiainen/RS41ng.git/'

Building the firmware

Hi, I'm trying to modify my probe. I managed to edit the code with my frequencies and other parameters. I can't figure out how the program compiles to get the . HEX. I'm working from windows, what would the process be like? I downloaded Doker but I don't get it. Could you put together a tutorial or explain the steps to compile from Windows? Thanks a lot. Alejandro LW7EEA

out of ram and rom

Hi, even with reducing / removing the APRS comments I can not find a setting which allows 4fsk on the RS41 radiochip and wspr on the SI5351 radiochip.

Still running 156 rom short and 32 ram short.

Is there any way to reduce the memory used to get this combination working ?

Thanks,
Ben

BMP 280

Would you be so kind as to upload a .hex file so that I can test if my board works? the probe starts at 38 seconds and begins transmissions. but i am not getting the readings from the bmp280 sensor. he told me that pull up resistors are going. the bmp280 board has built-in 10k ones. but I can't get the data. I can't find the connection diagram of the RS41 with the BMP280. I assumed that it goes SDA / SDA, SCL / SCL, GND and + V (I don't know which pin of the probe)

APRS_Destination & APRS_Relays ??

With the arrival of my first RS-41, I finally have a test platform to start learning about your wonderful software! Thanks in advance for making this available.

Everything worked great on my first attempt to reflash the RS-41 and both the 4FSK (via the Horus-GUI) and APRS (via Direwolf) are decoding perfectly.

My questions are:

  1. is APRS_DESTINATION set to "APZ41N" for a particular reason? Would you prefer that we leave it set to that value?

  2. I thought that for high-altitude transmitters like balloons, using digi paths such as WIDE1-1,WIDE2-1 was highly discouraged. Would it be ok for me to change that line to:
    #define APRS_RELAYS ""

... or would that cause some problem?

Thanks VERY much for help on these questions when time permits.

-Scott, K4KDR

Run command create $(pwd) invalid characters in Docker Desktop for Windows

The READ.md file instruction Build command worked fine. But the run command generated this error. I tried different direct formats for pwd but could not seem to get it to work. Running Windows 10 with Docker Desktop for Windows. Any idea what syntax is creating this error?

O:\My Documents\Balloon\Sonde\RS41ng Reprogramming\RS41ng-main>docker run --rm -it -v $(pwd):/usr/local/src/RS41ng rs41ng_compiler
docker: Error response from daemon: create $(pwd): "$(pwd)" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path.
See 'docker run --help'.

ax25.c compile error

The last modification to the file src/codecs/ax25.c is broken.
Line 92 has a missing open parentheses (and a useless final semicolon):

header->destination_ssid = (uint8_t) destination_ssid >= 'A' ? destination_ssid - 7 : destination_ssid);;

and should be (probably) corrected to:

header->destination_ssid = (uint8_t)(destination_ssid >= 'A' ? destination_ssid - 7 : destination_ssid);

Error 2 when docker compiling

It looks like when make tries to create a .elf file it has some unknown problems

[ 98%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/si5351_test.cpp.o
/usr/local/src/RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp: In member function 'void* JTEncode::init_rs_int(int, int, int, int, int, int)':
/usr/local/src/RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp:33:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
   33 |   if(symsize < 0 || symsize > 8*sizeof(data_t)){
      |                     ~~~~~~~~^~~~~~~~~~~~~~~~~~
[100%] Linking CXX executable RS41ng.elf
/usr/lib/gcc/arm-none-eabi/11.1.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/RS41ng.elf.dir/main.c.o: in function `main':
/usr/local/src/RS41ng/src/main.c:74: multiple definition of `main'; CMakeFiles/RS41ng.elf.dir/build/CMakeFiles/3.21.5/CompilerIdC/CMakeCCompilerId.c.o:/usr/local/src/RS41ng/src/build/CMakeFiles/3.21.5/CompilerIdC/CMakeCCompilerId.c:767: first defined here
/usr/lib/gcc/arm-none-eabi/11.1.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/RS41ng.elf.dir/build/CMakeFiles/3.21.5/CompilerIdCXX/CMakeCXXCompilerId.cpp.o: in function `main':
/usr/local/src/RS41ng/src/build/CMakeFiles/3.21.5/CompilerIdCXX/CMakeCXXCompilerId.cpp:757: multiple definition of `main'; CMakeFiles/RS41ng.elf.dir/build/CMakeFiles/3.21.5/CompilerIdC/CMakeCCompilerId.c.o:/usr/local/src/RS41ng/src/build/CMakeFiles/3.21.5/CompilerIdC/CMakeCCompilerId.c:767: first defined here
/usr/lib/gcc/arm-none-eabi/11.1.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/RS41ng.elf.dir/build/CMakeFiles/3.21.5/CompilerIdCXX/CMakeCXXCompilerId.cpp.o:/usr/local/src/RS41ng/src/build/CMakeFiles/3.21.5/CompilerIdCXX/CMakeCXXCompilerId.cpp:738: multiple definition of `info_language_dialect_default'; CMakeFiles/RS41ng.elf.dir/build/CMakeFiles/3.21.5/CompilerIdC/CMakeCCompilerId.c.o:/usr/local/src/RS41ng/src/build/CMakeFiles/3.21.5/CompilerIdC/CMakeCCompilerId.c:754: first defined here
/usr/lib/gcc/arm-none-eabi/11.1.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/RS41ng.elf.dir/build/CMakeFiles/3.21.5/CompilerIdCXX/CMakeCXXCompilerId.cpp.o:/usr/local/src/RS41ng/src/build/CMakeFiles/3.21.5/CompilerIdCXX/CMakeCXXCompilerId.cpp:718: multiple definition of `info_arch'; CMakeFiles/RS41ng.elf.dir/build/CMakeFiles/3.21.5/CompilerIdC/CMakeCCompilerId.c.o:/usr/local/src/RS41ng/src/build/CMakeFiles/3.21.5/CompilerIdC/CMakeCCompilerId.c:733: first defined here
/usr/lib/gcc/arm-none-eabi/11.1.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/RS41ng.elf.dir/build/CMakeFiles/3.21.5/CompilerIdCXX/CMakeCXXCompilerId.cpp.o:/usr/local/src/RS41ng/src/build/CMakeFiles/3.21.5/CompilerIdCXX/CMakeCXXCompilerId.cpp:717: multiple definition of `info_platform'; CMakeFiles/RS41ng.elf.dir/build/CMakeFiles/3.21.5/CompilerIdC/CMakeCCompilerId.c.o:/usr/local/src/RS41ng/src/build/CMakeFiles/3.21.5/CompilerIdC/CMakeCCompilerId.c:732: first defined here
/usr/lib/gcc/arm-none-eabi/11.1.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/RS41ng.elf.dir/build/CMakeFiles/3.21.5/CompilerIdCXX/CMakeCXXCompilerId.cpp.o:/usr/local/src/RS41ng/src/build/CMakeFiles/3.21.5/CompilerIdCXX/CMakeCXXCompilerId.cpp:388: multiple definition of `info_compiler'; CMakeFiles/RS41ng.elf.dir/build/CMakeFiles/3.21.5/CompilerIdC/CMakeCCompilerId.c.o:/usr/local/src/RS41ng/src/build/CMakeFiles/3.21.5/CompilerIdC/CMakeCCompilerId.c:403: first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/RS41ng.elf.dir/build.make:1153: src/RS41ng.elf] Error 1
make[1]: *** [CMakeFiles/Makefile2:117: src/CMakeFiles/RS41ng.elf.dir/all] Error 2
make: *** [Makefile:91: all] Error 2```

make fails , ubuntu 18.04

Hi, today I wanted to try the SI5351 as addon. Did apt update and upgrade on the Ubuntu 18.04 system. Removed the RS41ng directory and pulled a fresh one. Edited the config.h

cmake gives no errors. Make however starts showin something I completely don't understand.

Up to 72 percent no problems, then a warning, then a lot of "problems" are reported, at least I guess they are problems, and make failed with error 2

Any idea what's going on here ? Thanks!

[ 72%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/init_rs_int.cpp.o /home/pe2bz/RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp: In member function 'void* JTEncode::init_rs_int(int, int, int, int, int, int)': /home/pe2bz/RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp:33:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(symsize < 0 || symsize > 8*sizeof(data_t)){ ~~~~~~~~^~~~~~~~~~~ [ 73%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/drivers/si5351/si5351.cpp.o [ 75%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/drivers/si5351fast/si5351mcu.cpp.o [ 76%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/si5351_handler.cpp.o [ 77%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/si5351_test.cpp.o [ 78%] Linking CXX executable RS41ng.elf /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(eh_arm.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(eh_globals.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(del_op.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(new_op.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(eh_personality.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(new_handler.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(eh_exception.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(eh_terminate.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(eh_unex_handler.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(class_type_info.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(eh_call.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(eh_term_handler.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(del_ops.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(pure.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(tinfo.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(eh_catch.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/thumb/v7-m/libstdc++_nano.a(si_class_type_info.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: RS41ng.elf section .text' will not fit in region rom' /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: RS41ng.elf section .co_stack' will not fit in region ram' /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: region ram overflowed with stack /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: region rom' overflowed by 5300 bytes
/usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: region ram' overflowed by 32 bytes collect2: error: ld returned 1 exit status src/CMakeFiles/RS41ng.elf.dir/build.make:1758: recipe for target 'src/RS41ng.elf' failed make[2]: *** [src/RS41ng.elf] Error 1 CMakeFiles/Makefile2:86: recipe for target 'src/CMakeFiles/RS41ng.elf.dir/all' failed make[1]: *** [src/CMakeFiles/RS41ng.elf.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.