Closed ghost closed 1 year ago
@aledorrego Can you post your new config.h file contents here so we can check what is enabled/disabled? I can try to test the same config locally.
//does not send sensor data neither in cw nor aprs. it pretends not to recognize the sensor. will the change have something to do with using nmea gps output?
// Enable semihosting to receive debug logs during development // NOTE: Semihosting has to be disabled when the RS41 radiosonde is not connected to the STM32 programmer dongle, otherwise the firmware will not run. //#define SEMIHOSTING_ENABLE //#define LOGGING_ENABLE
/**
// Set the tracker amateur radio call sign here
// Disabling LEDs will save power // Red LED: Lit during initialization and transmit. // Green LED: Blinking fast when there is no GPS fix. Blinking slowly when the GPS has a fix.
// Allow powering off the sonde by pressing the button for over a second (when the sonde is not transmitting)
// Enable use of an externally connected I²C BMP280 atmospheric sensor
// Enable use of an externally connected I²C Si5351 clock generator chip for HF radio transmissions
// Number of character pairs to include in locator
// Delay after transmission for modes that do not use time synchronization. Zero delay allows continuous transmit mode for Horus V1 and V2.
// Threshold for time-synchronized modes regarding how far from scheduled transmission time the transmission is still allowed
// Enable NMEA output from GPS via external serial port. This disables use of I²C bus (Si5351 and sensors) because the pins are shared.
/**
// Si4032 transmit power: 0..7 // 0 = -1dBm, 1 = 2dBm, 2 = 5dBm, 3 = 8dBm, 4 = 11dBm, 5 = 14dBm, 6 = 17dBm, 7 = 20dBm
// Which modes to transmit using the built-in Si4032 transmitter chip
// Continuous transmit mode can be enabled for either Horus V1 or V2, but not both. This disables all other transmission modes. // The continuous mode transmits Horus 4FSK preamble between transmissions // to allow Horus receivers to keep frequency synchronization at all times, which improves reception.
// Transmit frequencies for the Si4032 transmitter modes
// Use a frequency offset to place FSK tones slightly above the defined frequency for SSB reception
/**
// Si5351 transmit power: 0..3 // Si5351 drive strength: 0 = 2mA, 1 = 4mA, 2 = 6mA, 3 = 8mA
// Which modes to transmit using an externally connected Si5351 chip in the I²C bus
// Transmit frequencies for the Si5351 transmitter modes
/**
// See APRS symbol table documentation in: http://www.aprs.org/symbols/symbolsX.txt
// Generate an APRS weather report instead of a position report. This will override the APRS symbol with the weather station symbol.
// Schedule transmission every N seconds, counting from beginning of an hour (based on GPS time). Set to zero to disable time sync.
// Delay transmission for an N second offset after the scheduled time.
/**
/**
// Use Horus payload ID 0 for Horus V1 tests (4FSKTEST)
// Schedule transmission every N seconds, counting from beginning of an hour (based on GPS time). Set to zero to disable time sync.
// Delay transmission for an N second offset after the scheduled time.
/**
// Use Horus payload ID 256 for Horus V2 tests (4FSKTEST-V2)
// Schedule transmission every N seconds, counting from beginning of an hour (based on GPS time). Set to zero to disable time sync.
// Delay transmission for an N second offset after the scheduled time.
/**
// CW speed in WPM, range 5 - 40
// Schedule transmission every N seconds, counting from beginning of an hour (based on GPS time). Set to zero to disable time sync.
// Delay transmission for an N second offset after the scheduled time.
/**
/**
/**
// Schedule transmission every 15 seconds, counting from beginning of an hour (based on GPS time). Set to zero to disable time sync.
// Delay transmission for 1 second after the scheduled time.
Config looks good. I can do some more testing locally with a BMP280. The code did work for me before I committed it to GitHub :crossed_fingers:
hello. I've been testing builds prior to the weather station update and the sensor is working fine. in fact at this moment I appear in aprs.fi . but with wx firmware it no longer read sensor data. greetings LW7EEA
Hi, friend. could you find if there was any problem in the code? or will I have a local problem with my program? Cheers!!
@aledorrego I tested the current code with your config file and it seems to work for me just fine:
LW7EEA-13 audio level = 16(1/1) [NONE] ____|____
[0.4] LW7EEA-13>APZ41N,WIDE1-1,WIDE2-1:/000408z0000.00S/00000.00W_.../...g...t073h28b09766 JJ00AA00AA00 - RS41 sonda 16/11/21
Weather Report, WEATHER Station (blue), Experimental
N 00 -0.0000, E 000 -0.0000
, temperature 73, humidity 28, barometer 28.84, " JJ00AA00AA00 - RS41 sonda 16/11/21"
Are you sure that you don't have any other changes in your code, except for the config.h file?
around here we continue testing. The last thing we did was just modify the config.h and compile in Fedora, before we used Ubuntu. The following message appears. Still not getting sensor data
[root@fedora build]# 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 11.2.1
-- The CXX compiler identification is GNU 11.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: /root/RS41ng/build
[root@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
[ 7%] 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
[ 13%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/crc14.c.o
[ 14%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/mfsk/mfsk.c.o
[ 15%] 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
[ 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
[ 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
[ 30%] 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_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
[ 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
[ 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
[ 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
[ 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
[ 53%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_cw.c.o
[ 54%] 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
[ 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
[ 61%] 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
[ 69%] 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
/root/RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp: In member function 'void JTEncode::init_rs_int(int, int, int, int, int, int)':
/root/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 > 8sizeof(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
Building /root/RS41ng/build/RS41ng.hex
Building /root/RS41ng/build/RS41ng.bin
text data bss dec hex filename
49564 1464 5152 56180 db74 RS41ng.elf
[ 78%] Built target RS41ng.elf
[ 79%] Building C object tests/CMakeFiles/Project.dir/bell_test.c.o
[ 80%] Building C object tests/CMakeFiles/Project.dir/morse_test.c.o
[ 82%] Building C object tests/CMakeFiles/Project.dir/template_test.c.o
[ 83%] Building C object tests/CMakeFiles/Project.dir//src/codecs/aprs/aprs.c.o
[ 84%] Building C object tests/CMakeFiles/Project.dir//src/codecs/aprs/aprs_position.c.o
[ 85%] Building C object tests/CMakeFiles/Project.dir//src/codecs/aprs/aprs_weather.c.o
[ 86%] Building C object tests/CMakeFiles/Project.dir//src/codecs/ax25/ax25.c.o
[ 88%] Building C object tests/CMakeFiles/Project.dir//src/codecs/bell/bell.c.o
[ 89%] Building C object tests/CMakeFiles/Project.dir/__/src/codecs/horus/horus_common.c.o
[ 90%] Building C object tests/CMakeFiles/Project.dir//src/codecs/horus/horus_l2.c.o
[ 91%] Building C object tests/CMakeFiles/Project.dir//src/codecs/horus/horus_packet_v1.c.o
[ 92%] Building C object tests/CMakeFiles/Project.dir//src/codecs/horus/horus_packet_v2.c.o
[ 94%] Building C object tests/CMakeFiles/Project.dir//src/codecs/jtencode/lib/crc14.c.o
[ 95%] Building C object tests/CMakeFiles/Project.dir//src/codecs/mfsk/mfsk.c.o
[ 96%] Building C object tests/CMakeFiles/Project.dir//src/codecs/morse/morse.c.o
[ 97%] Building C object tests/CMakeFiles/Project.dir//src/template.c.o
/root/RS41ng/src/template.c: In function ‘template_replace’:
/root/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/Project.dir/__/src/utils.c.o
[100%] Linking C executable Project
[100%] Built target Project
Sorry to hear about the sensor trouble. I'm not able to replicate the issue here -- at least for now.
The latest change with the APRS weather station code does not include any changes to reading the sensor or I²C in general...
Have you verified that you have got the pull-up resistors required by the I²C bus applied to both SCL (clock) and SDA (data) lines? Many BMP280 break-out boards have them, but it's worth checking.
The warning you get during compile is expected and it comes from some test code I have in the repository, not from the actual firmware compilation.
You can try to enable debug logs by following the "Developing / debugging the firmware" instructions in the README file.
That will allow you to get detailed text output about what the firmware does and sends out -- you will need to run the firmware with the (ST-LINK) programmer connected to your computer.
Please let the sonde transmit a couple of APRS packets and paste the full text output here.
Well, I'm going to leave it as I have it working now, with the tower symbol it sends the data well. I tried to install a virtual machine to access with fedora, but my cpu does not support virtual machine. I appreciate all your effort to help me this time, but I have certain technological limitations here. A hug
Same problem here..
Closing issue with no activity. We have several people that have confirmed BMP280 and BME280 working with the firmware.
Some sensors seem to be picky about the I²C bus speed, so you might want to reduce I²C bus speed to 10000 (= 10 kHz) using the I2C_BUS_CLOCK_SPEED
setting in config.h
:
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