Hi all,
I wanted to move away from the Semtech forwarder and the logical choice was to use the CS equivalent, I need to stay on PiOS though. I struggled with concentratord for a while, but almost have it working.
I’ve compiled the executable from the repo without an issue - however I have noticed in the current version release, that the sx1302-arm64 official build, as well as mine crashes both without any inputs, as well as trying to generate configfile - I downloaded the sx1301 variant and it had no such issue. I’m by no means familiar enough with coding to know where the actual issue lies, I would fix if I could.
I was able to use the configs in the src, as well as the output from configfile using the sx1301 version and have gotten to the point of it running and seeing frames - the issue is that it doesn’t see the onboard gps. I’ve set the device to u-blox as per a previous post here, gpsd is running as a service and is accessible to gpsmon and cgps at least as both /dev/ttyS0 and gpsd://localhost:2947.
I am using the follow in my .toml file:
# Gateway vendor / model.
#
# This configures various vendor and model specific settings like the min / max
# frequency, TX gain table.
model="waveshare_sx1302_lorawan_gateway_hat"
# Gateway vendor / model flags.
model_flags=["GNSS"]
and have tried these both on/off:
# gnss_dev_path="gpsd://localhost:2947"
# gnss_dev_path="/dev/ttyS0"
The result is the same:
2025-01-08T22:43:52.314Z DEBUG [chirpstack_concentratord_sx1302::wrapper] Could not get GPS epoch, uplink_id: 3138471555, error: gps_ref_valid = false
2025-01-08T22:43:52.315Z DEBUG [chirpstack_concentratord_sx1302::wrapper] Could not get GPS time, uplink_id: 3138471555, error: gps_ref_valid = false
I did notice this in: chirpstack-concentratord/chirpstack-concentratord-sx1302/src/config/vendor/waveshare at master · chirpstack/chirpstack-concentratord · GitHub
sx1302_lorawan_gateway_hat.rs
gps: gnss::Device::None,
com_type: ComType::Spi,
com_path: conf.gateway.get_com_dev_path("/dev/spidev0.0"),
i2c_path: Some(conf.gateway.get_i2c_dev_path("/dev/i2c-1")),
i2c_temp_sensor_addr: Some(0x39),
sx1302_reset_pin: conf.gateway.get_sx1302_reset_pin("/dev/gpiochip0", 23),
sx1302_power_en_pin: conf.gateway.get_sx1302_power_en_pin("/dev/gpiochip0", 18),
..Default::default()
Could that gnss device none be the culprit?
would it just take this? (taken from the semtech sx1302 .rs file)
gps: match gps {
true => conf
.gateway
.get_gnss_dev_path(&gnss::Device::new("/dev/ttyAMA0")),
false => gnss::Device::None,
},
com_type: ComType::Spi,
com_path: conf.gateway.get_com_dev_path("/dev/spidev0.0"),
i2c_path: Some(conf.gateway.get_i2c_dev_path("/dev/i2c-1")),
i2c_temp_sensor_addr: Some(0x3b),
sx1302_reset_pin: conf.gateway.get_sx1302_reset_pin("/dev/gpiochip0", 23),
sx1302_power_en_pin: conf.gateway.get_sx1302_power_en_pin("/dev/gpiochip0", 18),
..Default::default()
Of course now I’ve done this, of course I’m going to try so if it works I’ll report back and maybe it can be merged into the code for the waveshare?
<:3)~