Recent Posts

Pages: [1] 2 3 ... 10
1
RF - Range - Antennas - RFM69 library / Re: RFM69HW radio.init() FAIL
« Last post by LukeTriton on April 19, 2024, 06:39:14 PM »
Yes sorry for not specifying it but I use the GT1167 level shifter.
I have these wiring for my two cards :

I thought I read somewhere that an antenna wasn't necessary for the RFM69HW, but maybe I should try adding one?

Our project is supposed to use Arduino boards but if there is no solution what do you advise me to use ? And what modification would be necessary to make ?




2
RF - Range - Antennas - RFM69 library / Re: RFM69HW radio.init() FAIL
« Last post by Felix on April 19, 2024, 03:01:44 PM »
How do you connect RFM69 to the UNOs?
Did you do proper level translation?
I would highly recommend not using UNOS, these generate a lot of "why this fails" questions.
3
RF - Range - Antennas - RFM69 library / RFM69HW radio.init() FAIL
« Last post by LukeTriton on April 19, 2024, 01:18:12 PM »
Hello ! For a university project, I would like to establish a connection between 2 RFM69HW modules to be able to read the RSSI and know if they are more or less far away.I use arduino uno boards.

for this I started from the TxPowerTest_Transmitter and Receiver examples (the most suitable I think for what I want to do?) but I have a problem, I receive in both monitor serie :

" radio.init() FAIL

Transmitting/Receiving at 240 Mhz...
Use:
+,- to adjust power in _powerLevel steps
<,> to adjust power in dBm "

I guess the error comes from the line:
if (!radio.initialize(FREQUENCY,NODEID,NETWORKID))

What can I do to resolve it please ?

There is the code I use :

Code: [Select]
#include <RFM69.h>      //get it here: https://www.github.com/lowpowerlab/rfm69
#include <RFM69_ATC.h>

#define NODEID        123   //must be unique for each node on same network (range up to 254, 255 is used for broadcast)
#define NETWORKID     100  //the same on all nodes that talk to each other (range up to 255)
#define TONODEID      1    //
//Match frequency to the hardware version of the radio on your Moteino (uncomment one):
//#define FREQUENCY     RF69_433MHZ
#define FREQUENCY     RF69_868MHZ
#define FREQUENCY_EXACT 915500000
#define IS_RFM69HW_HCW   //uncomment only for RFM69HCW! Leave out if you have RFM69CW!
//#define ENABLE_ATC    //comment out this line to disable AUTO TRANSMISSION CONTROL
#define ATC_RSSI -90

#define SERIAL_BAUD   500000
#define DEBUG(input)   Serial.print(input)
#define DEBUGln(input) Serial.println(input)
#define DEBUGHEX(input, param) Serial.print(input, param)

#ifdef ENABLE_ATC
  RFM69_ATC radio/*(10,11) FOR M0 radio add-on board*/;  //#if defined (__AVR_ATmega32U4__) RFM69_ATC radio(8,7);
#else
  RFM69 radio;  //#if defined (__AVR_ATmega32U4__) RFM69 radio(8,7);
#endif

int MODE;

void setup() {
  Serial.begin(SERIAL_BAUD);
  pinMode(LED_BUILTIN, OUTPUT);
 
  pinMode(0, OUTPUT); digitalWrite(0, LOW);
  pinMode(A0, INPUT_PULLUP);

  DEBUGln("START RFM69_NODE_TX_TEST!");

  if (!radio.initialize(FREQUENCY,NODEID,NETWORKID))
    DEBUGln("radio.init() FAIL");
  else
    DEBUGln("radio.init() SUCCESS");

#ifdef IS_RFM69HW_HCW
  radio.setHighPower(); //only for RFM69HW/HCW!
#endif

#ifdef FREQUENCY_EXACT
  radio.setFrequency(FREQUENCY_EXACT); //set frequency to some custom frequency
#endif

#ifdef ENABLE_ATC
  radio.enableAutoPower(ATC_RSSI);
#endif

  char buff[50];
  sprintf(buff, "\nTransmitting at %lu Mhz...", radio.getFrequency()/1000000L);
  DEBUGln(buff);

  DEBUGln("Use:\n+,- to adjust power in _powerLevel steps");
  DEBUGln("<,> to adjust power in dBm");

#ifdef ENABLE_ATC
  DEBUGln("RFM69_ATC Enabled (Auto Transmission Control)\n");
#endif

  MODE = RF69_MODE_SLEEP;
  radio.setMode(MODE);
}

int8_t dBm=-18; //start at minimum possible value for W/CW, gets bumped by library to -2 for HW/HCW
void loop() {
  if (Serial.available() > 0) {
    char input = Serial.read();

    if (input == 'r') //d=dump register values
      radio.readAllRegsCompact();

    if (input == 'R') //d=dump register values
      radio.readAllRegs();

    if (input=='+') {
      radio.setPowerLevel(radio.getPowerLevel()+1);
      DEBUG("_powerLevel=");DEBUGln(radio.getPowerLevel());
    }
    if (input=='-') {
      if (radio.getPowerLevel()>0) {
        radio.setPowerLevel(radio.getPowerLevel()-1);
      }
      DEBUG("_powerLevel=");DEBUGln(radio.getPowerLevel());
    }
    if (input=='<') {
      dBm = radio.setPowerDBm(dBm-1);
      DEBUG("POWER=");DEBUG(dBm);DEBUG(" (dBm); _powerLevel=");DEBUGln(radio.getPowerLevel());
    }
    if (input=='>') {
      dBm = radio.setPowerDBm(dBm+1);
      DEBUG("POWER=");DEBUG(dBm);DEBUG(" (dBm); _powerLevel=");DEBUGln(radio.getPowerLevel());
    }

    //transmit mode toggle (enables unmodulated carrier at current power level)
    if (input=='t') {
      if (MODE == RF69_MODE_TX) {
        MODE = RF69_MODE_SLEEP;
        DEBUG("RADIO_MODE = 0/SLEEP; _powerLevel=");DEBUGln(radio.getPowerLevel());
      }
      else {
        MODE = RF69_MODE_TX;
        DEBUG("RADIO_MODE = 4/TX;    _powerLevel=");DEBUGln(radio.getPowerLevel());
      }
    }
  }
  delay(200);
  if (MODE == RF69_MODE_TX) radio.setMode(MODE);
  else if (digitalRead(A0)==LOW) radio.setMode(RF69_MODE_TX);
  else radio.setMode(RF69_MODE_SLEEP);
}
4
ATXRaspi / Re: Kernel update breaks RPi.GPIO
« Last post by CaptainSandwich on March 18, 2024, 10:27:50 PM »
Did you consider upgrading the distribution entirely, rather than doing an in place kernel update?

No, I don't expect the outcome would be any different. According to https://github.com/raspberrypi/linux/issues/6037#issuecomment-1995164607, this was a deliberate change knowing that it would break existing libraries until they're updated.
5
ATXRaspi / Re: Kernel update breaks RPi.GPIO
« Last post by Felix on March 18, 2024, 10:17:35 AM »
Did you consider upgrading the distribution entirely, rather than doing an in place kernel update?
6
ATXRaspi / Kernel update breaks RPi.GPIO
« Last post by CaptainSandwich on March 18, 2024, 01:03:26 AM »
After performing an update of my pi, my ATXRaspi no longer provided a 'BootOK' indication or responded to shutdown button presses. Shutdownirq.py was not running, and after modifying the file to show exceptions, the edge detection pause was the culprit.

Per https://github.com/raspberrypi/linux/issues/6037, a kernel update has broken edge detection in RPi.GPIO. No official solution yet, but gpiozero/rpi-lgpio may be an option? https://waldorf.waveform.org.uk/2022/the-one-where-dave-breaks-stuff.html
7
Moteino M0 / Re: Getting stuck or failing imuBegin() for LSM9DS1 breakout
« Last post by Felix on March 15, 2024, 08:32:16 AM »
It's my pleasure.
Once I free up from my current monster project I will plan to get back and develop more LPL storefront projects and products, it's been a while. And a nice well rounded IMU is in order to have in my lineup. Suggestions are welcome.
8
Uh-oh, I better scrap my plans to source more of these breakouts from you then.  I see what you mean, Digi-key's unit price for qty 10 of the IMU chip is $22.24.  Maybe it's time for me to stop trying to make this work.  I should probably reconsider an analog 2 or 3 channel accelerometer and wire in my own analog LP filters.

Thank you again for your help, Felix.  -JD
9
Moteino M0 / Re: Getting stuck or failing imuBegin() for LSM9DS1 breakout
« Last post by Felix on March 11, 2024, 02:43:07 PM »
Perhaps my compiled code that lives on that M0 tester is from many years ago and lib changes since then have done something to it. I'm out of stock with these so I have no way to test new code. Not planning to make more at this time, the eye watering prices makes this sensor dead to me.
10
Moteino M0 / Re: Getting stuck or failing imuBegin() for LSM9DS1 breakout
« Last post by jdheinzmann on March 11, 2024, 10:26:53 AM »
The LSM9DS1 does look like it will be a pain to interface but I want to try it because of the anti-alias filter options it has, and it interfaces directly with the M0 so I can use it with the PCB I made.  I hope I will be able to figure out how to enable the filters at the frequency I need without too much pain.

At this point, having a LIS3DH breakout that can be soldered directly to the M0 doesn't really matter to me because my PCB is laid out to interface with the SparkFun LIS3DH breakout.  But it was a simple board to work with and may be useful to others. Of course it is only a 3-axis accelerometer chip vs the 9D LSM9DS1 so it will not satisfy some applications.

Plus, the LIS3DH breakout can be accessed via SPI whereas your LSM9DS1 breakout is wired for I2C only (as far as I can tell).  I wish it could be used via SPI.  I hope the I2C interface will be fast enough for my purposes.

Back to the original issue, interestingly, I got the LSM9DS1 working using the SparkFun example code that I found on Github (not the code you posted on the LPL forum.)  Just to make sure it wasn't something I had done to the LPL code, I copied and pasted your code again without making any mods to the code.  It does not work for me.  Are you sure it still works for you, Felix?  I am using Sparkfun's version 2.0.0 of their library.

The approach in their example is a little different so I will proceed with theirs.

-JD 
Pages: [1] 2 3 ... 10