Go Down

Topic: Dongle USB NRF2.4G e modulo NRF2.4 funzionano (Read 223 times) previous topic - next topic

nid69ita

Dec 28, 2014, 06:12 pm Last Edit: Dec 28, 2014, 06:20 pm by nid69ita
Un pò di tempo fa un utente chiese se questo dongle USB NRF funzionasse.

Ne ho comprati due (cinesi della AI-Think, mi pare coinvolta anche con i ESP8266)
http://www.ebay.it/itm/331349375666?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649
e mi funzionano con un modulo NRF24L01
http://www.ebay.it/itm/1PCS-NEW-NRF24L01-2-4GHz-Antenna-Wireless-Transceiver-Module-GOOD-QUALITY-M19-/291137250279?pt=LH_DefaultDomain_0&hash=item43c921e3e7

In ebay Francia trovato questo:
http://www.ebay.it/itm/281515555455?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649
che ha un codice Arduino funzionante (il canale usato risulta il 28)

Questo il codice per Arduino (nel mio caso Mini Pro a 3,3V) con alcune mie modifiche:
Code: [Select]
#include <SPI.h>
#include <RF24.h>
#include "nRF24L01.h"

#define BAUDE_RATE 57600
#define LEDPIN 13

byte ledState = LOW;
unsigned long previousMillis = 0;
RF24 radio(9,10); // CE pin and CSN pin
unsigned char ch;

void setup(void)
{ delay(1000);
  Serial.begin(BAUDE_RATE);
  //the usb dongle works by default at 1Mbit, so this can be any speed
  radio.begin();
  //wi-fi channel (frequency) and the address and the speed those are the default values, can be modified by user
  // To modify them send the following text to the terminal on which the usb dongle is: AT+SET=xxyyabcdefghij
  // xx is the channel
  // yy is the RF_SETUP REGISTER on nRF24l01 (on dongle there is BK2423, but works almost the same)
  // It sets the dB power level and the speed (default value 0x07 = 1Mhz, 0dB (maximum value));
  // ijghefcdab is the port (note that is in the reverse byte order)
  // all values are in hexadecimal
  // Example: to change to the default values use: AT+SET=28073443101001
  radio.setChannel(0x28);
  radio.openReadingPipe(1,0x0110104334LL); //default value when the usb wifi dongle is plugged (can be changed by user)
  radio.openWritingPipe(0x0110104334LL);   //default value when the usb wifi dongle is plugged (can be changed by user)
  radio.setDataRate(RF24_1MBPS);
  //setPayload,enabledynamic,setcrc. These are hardcoded the same on usb wifi dongle. Cannot be changed by the user
  radio.setPayloadSize(32);
  radio.enableDynamicPayloads();
  radio.setCRCLength(RF24_CRC_16);
  radio.startListening();
  radio.printDetails(); //print the configuration
  pinMode(LEDPIN,OUTPUT);
}

void loop(void)
{ unsigned long currentMillis = millis();
  if(currentMillis - previousMillis >= 1000) {
    previousMillis = currentMillis;  
    ledState = (ledState==LOW ? HIGH : LOW);
    digitalWrite(LEDPIN, ledState);
  }  
  if ( radio.available() )
  { radio.read( &ch, 1 );    // const void* buf, uint8_t len
    Serial.print((char)ch);
    radio.stopListening();
    //delay(5);
    radio.write(&ch,1);      // const void* buf, uint8_t len
    radio.startListening();  //flush the rx buffer
  }
}


Ho anche provato 2 dongle tra 2 PC. Con due dongle su due PC diversi, e con un terminal seriale si comunica subito tra i due PC.
my name is IGOR, not AIGOR


nid69ita

#2
Dec 28, 2014, 09:43 pm Last Edit: Dec 28, 2014, 09:44 pm by nid69ita
Dimenticavo: tra Arduino e PC ho provato solo usando cavo USB da 6 mt verso il Mini Pro (collegato allo stesso PC), quindi la distanza era "minima", 6 metri e dietro ad un muro (intramezzo) e non ho provato distanze lunghe.
my name is IGOR, not AIGOR

flz47655

#3
Dec 29, 2014, 11:14 am Last Edit: Dec 29, 2014, 11:24 am by flz47655
E' però possibile impostare parametri come il baudrate, il canale radio, etc.. della chiavetta?

Se si è bloccati a 1 MBPS è un pò un peccato..

EDIT: Dal sito francese il Soc usato è un BK2433 e non un SoC della Nordic, è quindi compatibile nel senso di clone con gli nrf24... :(

PS: Sulla chiavetta c'è davvero scritto Wifi N?

nid69ita

#4
Dec 29, 2014, 12:10 pm Last Edit: Dec 29, 2014, 12:18 pm by nid69ita
Io ho preso quella cinese con scritto sopra AI.
Dai cinesi scrivono solo questo (quindi poche info):
Code: [Select]
One AT order
e.g: AT+SET=40270102030405
40 is stand for 0X40, which means physical frequency
---- You can set 126 0X40MHZ on the basis of 2400MHZ
27 is stand for SETUP register,
which is use for setting transmit frequency and transmit-receive Baud rate.
01 02 03 04 05 is stand for 5 software physical address. 

Da qui, ad esempio: http://www.ebay.it/itm/331349375666?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649

Quindi ha registri settabili, ma manca un datasheet, purtroppo.

In origine quell'utente che dicevo al primo post, linkò questo, da ebay germania:
http://www.ebay.it/itm/USB-wireless-serial-port-NRF24L01P-Communication-Compatible-CP06019-/281460518680?pt=Wissenschaftliche_Ger%C3%A4te&hash=item41885aaf18
Ma nella descrizione dice ancora meno e il link alla fine è zip del cinese con info in cinese.
my name is IGOR, not AIGOR

nid69ita

I driver windows forniti nello zip cinese, hanno versione 32 e 64 bit.
In file RFCOM.inf a 32 bit, almeno su XP, ho dovuto modificare:
Code: [Select]
COMPANY="ÉîÛÚÊа²ÐſɿƼ¼"
MFGNAME="2.4GÎÞÏßÊý¾Ý¿Ú"


Togliendo quei caratteri penso unicode al cinese, ho messo

Code: [Select]
COMPANY=AITHINKER
MFGNAME="2.4GNRF"

E così funziona
my name is IGOR, not AIGOR

flz47655

Il registro SETUP sarà RF_SETUP? Se si però perché ha il valore 0x27 visto che il primo bit è riservato e deve essere zero? Perchè dice che si può impostare la frequenza mentre è il registro RF_CH e non RF_SETUP negli nrf24?

Non è documentato, motivo per non comprarlo mi sa

nid69ita

In teoria il costruttore è AI-THINKER, se ne parla nel thread di ESP8266, ma io il sito cinese di www.AI-THINKER.com non riesco a visualizzarlo, qualcuno invece riesce "spacciandosi" per olandese.
Magari li si trovano info.  :smiley-sad-blue:
my name is IGOR, not AIGOR

flz47655

#8
Dec 29, 2014, 12:26 pm Last Edit: Dec 29, 2014, 12:27 pm by flz47655
Nel codice c'è scritto qualcosa di utile:

Code: [Select]
/wi-fi channel (frequency) and the address and the speed
  // those are the default values, can be modified by user
  //
  // To modify them send the following text to the terminal on which the
usb dongle is: AT+SET=xxyyabcdefghij
  // xx is the channel
  // yy is the RF_SETUP REGISTER on nRF24l01 (on dongle there is BK2423,
but works almost the same)
  //        It sets the dB power level and the speed (default value 0x07
= 1Mhz, 0dB (maximum value));
  // ijghefcdab - the port (note that is in the reverse byte order)
  // all values are in hexadecimal
  // Example: to change to the default values use: AT+SET=28073443101001
  //


E qui altre info http://www.mikrocontroller.net/topic/335784

Però.. non mi  ispira molto usare un clone.. meglio un device basato su un altro ic nordic.

Qualità costruttiva è pari a zero, guarda le immagini nel forum tedesco che ho linkato!

nid69ita

Qualità costruttiva è pari a zero, guarda le immagini nel forum tedesco che ho linkato!
Dici meglio qualcosa del genere ? sembra ben fatto
http://www.ebay.it/itm/191385827763?ssPageName=STRK:MESINDXX:IT&_trksid=p3984.m1436.l2649
my name is IGOR, not AIGOR

flz47655

Il Crazyradio è sicuro più serio, l'unica grande pecca però è un case e la difficoltà di programmazione visto che usa un Soc. Mi sa che rimango con la mia soluzione (micro usb + nrf24l01+) visto che gli ho fatto pure un case, peccato che è venuto un pò più grosso di quello dei cinesi :)

nid69ita

my name is IGOR, not AIGOR

flz47655

#12
Dec 29, 2014, 03:19 pm Last Edit: Dec 29, 2014, 03:24 pm by flz47655
Cit. anche le ostrichette erano curiose..

OT: Hai PM

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy