-
new github for TX RX shields
08/01/2016 at 14:52 • 0 comments -
RSSI true diversity working
08/01/2016 at 08:24 • 0 commentsI fixed the RSSI problem with
// instance of the radio driver now called rf24
RH_RF24 rf24module1(10, 2, 9); // pin 10 cs, pin 2 inturrupt IRQ pin on module, Nsel ( power ) pin 9
RH_RF24 rf24module2(11, 3, 8); // pin 11 cs, pin 3 inturrupt IRQ pin on module, Nsel ( power ) pin 8basically the NSEL ( or power ) pin on the modules needed there individual pin in the RadioHead library. so I used digital pin 8 & 9 on the arduino.
I took of the transmitter antenna and the recieve antennas and moved the transmitter near one reciever connecter to the other and both RSSI values were updated in real time.
One confusiing aspect here is the RSSI value is returned after recieving a packet.
So at the momnent I am recieving both packets and then determining there RSSI value and only copying the one that has the higher value into the circular buffer ( the cue for wating to be decoded back to 16 bit samples from 4 bit )
The LMA_ADPCM encoder encodes 16bits into 4bit samples so I am putting 2 LMA_ADPCM samples in each byte. 24 bytes are being sent in each packet.
OK, next I have to impliment the LAM_ADPCM decoder and rebuilt the 16bit samples so I can shove them back out to I2S. The I2S Library cliaims it just left justifys the samples in a 32bit per channel slot. we will see.
more news when I get the decoding written for the reciever. it should be the reverse of the encoder but I'm scepticle I got that correct the forst time !
-
I2S IO on arduino Due
07/26/2016 at 03:52 • 0 commentsSo I have the Codecs working on both Arduino Due with this I2S library.
https://github.com/delsauce/ArduinoDueHiFi
I get get cliches in the audio pass through as soon as I try do anything especially send the radio packets with the RH_RF24 uhf radio driver.
I made a circular buffer to see if that would help but I think the issue has more to do with timing.
I am looking at the ArduinoDueHiHi I2S library trying to understand how the SSC timer is working.
Does anyone know if the M3 Cortex has any multitasking capability and if I can run two processes at a time ? I moved up from the arduino UNO to Due ( already had a couple ) thinking I would get some more horse power.. but I'm pretty sure it more a case of user error now and I need to learn a little more about timing and M3 ISR's before this will work.
At least for now I have packets being fired off very quickly!
I am bit shifting the 32bit 48khz samples input to 8bit and sending 8bit packets.
eventually i would like to time stamp the packets.
The RSSI receiver is also not behaving entirely,.. I think since I am sharing the SPI bus there is something again with timing. Although I did think CS was supposed to wake and put to sleep the relevent chip on the bus.
I could have made a hardware error so I will check that through , but it seams like both modules are initialized and yet i am only getting RSSI read back from one module. ( module2)
Anyway , Its fun playing around with the RF modules and its been a challenge to get the modues working with RadioHead library , mainly since my modules have a 26mhz oscilator rather than the more standard 30mhz.. so I had to build new gfsk configs for the library !
I built a 200khz 4GFSK profile that will be hopfuly enough data rate for the eventual audio !
Then again 8bit x 48khz = 384,000 ( 384 kb/sec ) ? mmmm might have to try and know it down to 4 bits until I get some better DSP compression working :)
-
Started uhf digital radio mics, true diversity recievers
07/17/2016 at 06:46 • 0 commentsabout 100MHz tunable bandwidth. The hard part will be finding a compression codec that can squeeze reasonable quality audio into 200kHz channel mask for the cortex M3 cpu's, maybe it does'nt exist, maybe aptx but that's a commercial codec. Tried compiling celt codec in the arduino due ide but it has a ton of includes and not sure it will work.. Might have to look into cortex m4, read m4 has some dsp built in. Would be interested if anyone knows of an open source realtime compression codex that would work on cortex m3?? Not opus since its a collection of codecs and more for rtp top udp etc.. I'm making packets and timestamp at a lower level..