Jump to content

Search the Community

Showing results for tags 'nrf24l01+'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • News
    • Announcements
    • Suggestions
    • New users say Hi!
  • Spotlight!
    • Sponsor Spotlight
    • Sponsor Giveaways
  • Energia
    • Energia - MSP
    • Energia - TivaC/CC3XXX
    • Energia - C2000
    • Energia Libraries
  • MSP Technical Forums
    • General
    • Compilers and IDEs
    • Development Kits
    • Programmers and Debuggers
    • Code vault
    • Projects
    • Booster Packs
    • Energia
  • Tiva-C, Hercules, CCXXXX ARM Technical Forums
    • General
    • SensorTag
    • Tiva-C, Hercules, CC3XXX Launchpad Booster Packs
    • Code Vault
    • Projects
    • Compilers and IDEs
    • Development Kits and Custom Boards
  • Beagle ARM Cortex A8 Technical Forums
    • General
    • Code Snippets and Scripts
    • Cases, Capes and Plugin Boards
    • Projects
  • General Electronics Forum
    • General Electronics
    • Other Microcontrollers
  • Connect
    • Embedded Systems/Test Equipment Deals
    • Buy, Trade and Sell
    • The 43oh Store
    • Community Projects
    • Fireside Chat
  • C2000 Technical Forums
    • General
    • Development Kits
    • Code Vault
    • Projects
    • BoosterPacks


There are no results to display.

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



Website URL





Found 6 results

  1. Hi, I recently bought a MSP-EXP430FR2355 launch pad to build a Weather station with NRF24L01+ so i have used a specific library Enrf24.h for ENERGIA. The code for below already works with my MSP-EXP430FR2433 but not with my new MSP-EXP430FR2355. I can't use the MSP430FR2433 beacause it doesn't have enough memory for me to add my temperature sensor BME280 with all code required by the sensor... On the other side i can receive the information ON and OFF with a Raspberry Pi send by the FR2433 but not with my FR2355. #include <SPI.h> #include <Enrf24.h> #include <nRF24L01.h> #include <string.h> Enrf24 radio(P1_3, P1_4, P2_2); //WIRING MSP430FR2355 P1_3=CE, P1_4=CSN, P2_2=IRQ -> MOSI P1.6, MISO P1.7, SCK P1.5 const uint8_t txaddr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0x01 }; const char *str_on = "ON65"; const char *str_off = "OFF65"; void setup() { Serial.begin(9600); Serial.println("RED10"); SPI.begin(); SPI.setDataMode(SPI_MODE0); SPI.setBitOrder(1); // MSB-first radio.begin( 1000000, 76 ); radio.setCRC( 1, 1 ); //radio.begin(); // Defaults 1Mbps, channel 0, max TX power radio.setSpeed(250000); radio.setTXaddress((void*)txaddr); // Serial.println("RED10"); Serial.print("STATE: "); Serial.println(radio.radioState()); Serial.print("SPEED: "); Serial.println(radio.getSpeed()); } void loop() { Serial.println("ON_1"); radio.print(str_on); radio.flush(); // Force transmit (don't wait for any more data) delay(1000); Serial.println("OFF_1"); radio.print(str_off); radio.flush(); // delay(1000); } With the MSP430FR2433 STATE: 1 and SPEED: 250000 which is ok With the MSP430FR2355 STATE: 0 and SPEED: 1000000 The code stops when we entrer the loop without communication i thinks it's the SPI but it can be the library itself Thanks for your help !
  2. Hi guys, does someone know of a way to implement "lost signal" on the reciever side with Spirilis's ENRF24 library? I tried using rfSignalDetected() it seems to always evaluate to true. Because the while(!radio.available()) always just sits waiting until the data is ready I can't seem to think of a way to check if I stopped recieving data. Something like: void loop () { unsigned long lastRecvTime = 0; while(!radio.available()) ; if(radio.read(&data, sizeof(MyData))){ lastRecvTime = milis(); } unsigned long now = millis(); if( now - lastRecvTime > 1000) { //signal lost } } doesn't really work, because I jsut wait in the while loop and that means I dont do anything until data is ready. Thanks
  3. I want to use nRF24l01 RF wireless modules with MSP 430f247 processor. There is a project done on MSP430G2553 with the same wireless module; https://github.com/spirilis/msprf24/wiki#library-usage I want to use USCIB_0 part for communication interface. I replaced output pins in the program. When I debug the program step by step I have seen no signal at SPI line. Do you have any suggestion?
  4. emdarcher


    Here is my current project and entry for the Hackaday Prize: http://hackaday.io/project/2375-Garden_automation_and_sensor_network The main purpose originally was to have temperature monitoring of a small outdoor greenhouse, but then I decided to expand it from there. For more info look into the project page via the link above. Description originally from my hackaday projects page: This is a project to create a small network of sensors in the garden, and possibly some automation. The sensor data will be logged on an embedded Linux server (probably a Raspberry Pi or BeagleBone) and displayed on a web page. One such application for use is within a greenhouse, which may need to monitored in case it gets too hot for the plants, then venting of air could be automated, or the web page could alert the gardener. The nodes will consist of various sensors (temp, Humidity, soil moisture, etc.) attached to MSP430 microcontrollers which communicate using nRF24L01+ 2.4GHz tranceivers. Some will have Solar panels and rechargable batteries and others may have just a 3V button cell, but will last long by using the low power capabilies of the MSP430 and nRF24L01+. Final code github repository (for code when done): https://github.com/emdarcher/Garden_automation_and_sensor_network Prototyping code location on github: https://github.com/emdarcher/msp430-nrf24l01-testing/tree/master/sensor_comm YouTube video explaining the system (required for Hackaday Prize entry): Here is a pic of a prototype node, using internal temperature sensor and calibration data, as well as a HS1101 relative humidity sensor circuit with 555 timer. Prototype node and receiving launchpad to the left: Simplified diagram of Greenhouse node: Here is the system diagram:
  5. geodave

    nrf24L01+ wake-up after powerdown

    I am trying to do exactly what spirilis describes in the hypothetical remote sensing application on his wiki for the nrf24L01+ library: "A typical application of the nRF24L01+ which takes full advantage of the MSP430's touted low-power modes is remote sensing with periodic wakeup involving an MSP430 circuit attached to sensors in a remote location. An MSP430 using either the VLO or LFXT1 driving ACLK to wake up the device periodically will switch on the nRF24, take sensor measurements and once the nRF24 is ready (5ms Standby-I wakeup time has elapsed), transmit those to a base station, followed by deep powerdown of the nRF24 chip and any sensors involved. LPM3 is an appropriate sleep mode for this application." This is how far I have gotten: #include <msp430.h> #include "msprf24.h" #include "nrf_userconfig.h" #include "stdint.h" volatile unsigned int user; unsigned int delay; unsigned int delay = 0; void main(){ char addr[5]; char buf[32]; WDTCTL = WDTHOLD | WDTPW; DCOCTL = CALDCO_1MHZ; BCSCTL1 = CALBC1_1MHZ; BCSCTL2 = DIVS_2; // SMCLK = DCOCLK/2 // SPI (USCI) uses SMCLK, prefer SMCLK < 10MHz (SPI speed limit for nRF24 = 10MHz) BCSCTL3 |= LFXT1S_2; TACCR0 = 50000; TACTL = TASSEL_1 + ID1 + MC_1; // ACLCK, 1/8 DIVIDER, upmode to TCCR0 value TACCTL0 = CCIE; TACCR1 = 0; //setup pins P1DIR |= BIT0;// Red used for status user = 0xFE; /* Initial values for nRF24L01+ library config variables */ rf_crc = RF24_EN_CRC | RF24_CRCO; // CRC enabled, 16-bit rf_addr_width = 5; rf_speed_power = RF24_SPEED_1MBPS | RF24_POWER_MAX; rf_channel = 120; msprf24_init(); // All RX pipes closed by default msprf24_set_pipe_packetsize(0, 32); msprf24_open_pipe(0, 1); // Open pipe#0 with Enhanced ShockBurst enabled for receiving Auto-ACKs msprf24_set_retransmit_count(15); // Transmit to 'rad01' (0x72 0x61 0x64 0x30 0x31) F0F0F0F0E4 msprf24_standby(); user = msprf24_current_state(); addr[0] = 0xDE; addr[1] = 0xAD; addr[2] = 0xBE; addr[3] = 0xEF; addr[4] = 0x00; w_tx_addr(addr); w_rx_addr(0, addr); // Pipe 0 receives auto-ack's, autoacks are sent back to the TX addr so the PTX node // needs to listen to the TX addr on pipe#0 to receive them. while(1){ if(delay == 2){ msprf24_standby(); _delay_cycles(5000); P1OUT |= BIT0; // Red LED on flush_tx(); buf[0] = '1'; w_tx_payload(32, buf); msprf24_activate_tx(); delay=0; //msprf24_powerdown(); LPM3; } if (rf_irq & RF24_IRQ_FLAGGED) { msprf24_get_irq_reason(); if (rf_irq & RF24_IRQ_TX){ flush_tx(); buf[0] = '0'; w_tx_payload(32, buf); msprf24_activate_tx(); P1OUT &= ~BIT0; //Red LED off } } msprf24_irq_clear(rf_irq); user = msprf24_get_last_retransmits(); } } // Timer A0 interrupt service routine #pragma vector=TIMER0_A0_VECTOR __interrupt void Timer_A (void) { delay++; } As you can see I send an initial TX then enter LPM3 mode. I use timera to wake up the MSP430 every 25 seconds or so, increment the delay variable, check to see if the delay variable is equal to the predefined value and if so it send another TX and go back into LPM3. The goal is achieve the lowest power consumption possible so I would also like to powerdown the nrf24 as spirilis suggests. The problem is when I try to use the msprf24_powerdown function I can't seem to wake the nrf24 back up. I thought from reading the documentation that I only needed to issue the msprf24_standby function then wait 5ms. I have tried a number of different things including calling the standby function and checking the transceiver states. Can't seem to get it to work. Thoughts?
  6. I couldn't find an example of someone using the Raspberry Pi as a receiving hub for sensor nodes that use the spirilis nRF24L01+ library and a MSP430G2553. I thought I would give it a shot since I think this would be beneficial to the community. I found a C library for the Raspberry Pi and nRF24L01+: https://github.com/stanleyseow/RF24. Class reference is here: http://maniacbug.github.io/RF24/classRF24.html There is also a newer python library but I haven