Digilite-Raspberry Pi 2x2

Uit Projectgroep .540
Ga naar: navigatie, zoeken

[Hardware] Hierbij de beschrijving van mijn experimenten met RaspBerry PI model B+ en Raspberry Model 2 (v1.1) om IQ signalen door te geven aan bepaald gedeelte van de Digilite hardware, met name de Quadrature modulator AD8346. Na het beschikbaar komen van UglyDATV werden daar vrij snel goede resultaten mee behaald. De I en Q signalen van de Raspberry Pi model B+ (v1.2) worden aangeboden op de digilite PCB achter de 74ACT574, en vlak voor het Nyquest filter.Daarbij heb ik weerstanden R6/R8/R9/R10 verwijderd zodat de verbinding naar de 74ACT574 los kwamen te zitten, de PIC processor en de USB waren er al uit, dus uiteindelijk wordt alleen de Quadrature modulator gebruikt. Al vrij snel na het uitkomen van het snellere model Raspberry PI 2 werden testen gedaan met het creeeren van de benodigde transport streams zodat het idee werd geboren om gebruik te maken van 2 Raspberry PI's. De eerste zorgt voor de DVB-S encoding dmv UglyDATV en de tweede RPI zorgt voor de transport stream. Op deze manier ontstaat een standalone DVB-S zender. De onderlinge communicatie wordt uitgevoerd door een crosslink netwerk kabel. De Raspberry Web camera is aangesloten op de snelste Raspberry PI 2 die dus de stream verzorgt. Note : testen met andere Nyquest filter waardes (dan 4 Ms/s) lieten zien dat RPI I en Q uitgang onvoldoende gebufferd waren en derhalve geen goede resultaten gaven.

[Software] voor meer uitleg of vragen mail naar Joop Koopman, Haarlem, JO22HI, E-mail address pe2jko@pg540.org

In de eerste Raspberry PI ( model b+ ) draait een image van UglyDTV, daarbij maak ik gebruik van MNC ( ik denk een multicast netwerk receiver, was ook bijgeleverd in het UglyDATV image ) en de eigenlijk DVB-S encoder met de juiste pararmeters. 3 regels code :

mkfifo /tmp/netfifo
sudo /home/pi/UglyDATV/UglyDATV /tmp/netfifo 2083 1 0 0 &
/home/pi/UglyDATV/mnc -l -i eth0 -p 1234  239.0.0.1 >  /tmp/netfifo &

De tweede Raspberry PI ( model 2 ) verzorgt de transport stream. De transport stream wordt dmv "tsudpsend" naar het multicast address gestuurd. (makkelijk als je bv dit wilt terug kijken via "mplayer udp://239.0.0.1:1234") Er worden diverse streams gemaakt allemaal voor specifieke doeleinden. Deze streams worden opgestart / geselecteerd dmv een Wifi (dmv een Wifi dongle in de 2e Raspberry PI ( model 2 ). Een mobiele telefoon als router (Wifi hotspot) zorgt voor de SSH verbinding naar beide Raspberry PI's

Voorbeeld H.264 stream voor SR 2083, met Webcam en audio via USB audio dongle :

mkfifo /tmp/audio2.es
mkfifo /tmp/audio2.pes
mkfifo /tmp/video.es
mkfifo /tmp/video2.ts
mkfifo /tmp/audio2.ts
mkfifo /tmp/mux2.ts
mkfifo /tmp/buffer2.ts
mkfifo /tmp/testbeeld2.es
mkfifo /tmp/testbeeld2.pes
mkfifo /tmp/testbeeld2.ts
sudo nice -n -30 raspivid -s -n -w 720 -h 572 -b 1630000 -t 0 -pf high -fps 25 -g 12 -ih -o /tmp/video.es &
sudo nice -n -30 ffmpeg -analyzeduration 0 -probesize 2048 -r 25 -fpsprobesize 0 -max_delay 40000 -i /tmp/video.es -f h264 -r 25 -minrate 1630k -maxrate 1630k -bufsize 20K -vcodec copy -bufsize 20K -f mpegts  -mpegts_original_network_id 1 -mpegts_transport_stream_id 1 -mpegts_service_id 101 -streamid 0:101 -muxrate 1630000 -y /tmp/testbeeld2.es &
sudo nice -n -30 avconv -loglevel quiet -f alsa -i plughw:1 -vn -acodec mp2 -ab 128k -ar 48000 -f mp2 -y /tmp/audio2.es &
/usr/local/bin/esaudio2pes /tmp/audio2.es 1152 48000 384 -1 3600 > /tmp/audio2.pes &
/usr/local/bin/pesaudio2ts 102 1152 48000 384 0 /tmp/audio2.pes > /tmp/audio2.ts &
/usr/local/bin/tscbrmuxer b:188000 /tmp/audio2.ts b:1630000 /tmp/testbeeld2.es b:3008 /home/pi/tables/d_101_102/pat.ts b:1500 /home/pi/tables/d_101_102/pmt.ts b:1500 /home/pi/tables/d_101_102/sdt.ts b:1400 /home/pi/tables/d_101_102/nit.ts o:1919628 /home/pi/null.ts > /tmp/mux2.ts &
/usr/local/bin/tspcrstamp /tmp/mux2.ts 1919628 > /tmp/buffer2.ts &
/usr/local/bin/tsudpsend /tmp/buffer2.ts 239.0.0.1 1234 1919628 &

Voorbeeld MPEG2 stream voor SR 2083, met Webcam still images elke 800 ms en audio via USB audio dongle :

mkfifo /tmp/audio2.es
mkfifo /tmp/audio2.pes
mkfifo /tmp/video.es
mkfifo /tmp/video2.ts
mkfifo /tmp/audio2.ts
mkfifo /tmp/mux2.ts
mkfifo /tmp/buffer2.ts
mkfifo /tmp/testbeeld2.es
mkfifo /tmp/testbeeld2.pes
mkfifo /tmp/testbeeld2.ts
raspistill --nopreview -w 720 -h 576 -q 5 -o /tmp/pic.jpg -tl 800 -t 9999999 -th 0:0:0 &
sudo nice -n -30 avconv -loglevel quiet -loop 1 -f image2 -r 1 -i /tmp/pic.jpg -r 25 -an -s 720x576 -aspect 4:3 -vf drawtext=fontsize=44:fontcolor=Yellow:fontfile=/usr/share/fonts/truetype/freefont/FreeSans.ttf:text='PE2JKO D-ATV':x=80:y=60:box=1:boxcolor=0x00000256@0 -b 1300k -vcodec mpeg2video -f mpeg2video -y /tmp/testbeeld2.es &
sudo nice -n -30 avconv -loglevel quiet -f alsa -i plughw:1 -vn -acodec mp2 -ab 128k -ar 48000 -f mp2 -y /tmp/audio2.es &
/usr/local/bin/esvideompeg2pes /tmp/testbeeld2.es > /tmp/testbeeld2.pes &
/usr/local/bin/esaudio2pes /tmp/audio2.es 1152 48000 384 -1 3600 > /tmp/audio2.pes &
/usr/local/bin/pesvideo2ts 101 25 112 1630000 0 /tmp/testbeeld2.pes > /tmp/testbeeld2.ts &
/usr/local/bin/pesaudio2ts 102 1152 48000 384 0 /tmp/audio2.pes > /tmp/audio2.ts &
/usr/local/bin/tscbrmuxer b:188000 /tmp/audio2.ts b:1630000 /tmp/testbeeld2.ts b:3008 /home/pi/tables/v101_a102/pat.ts b:1500 /home/pi/tables/v101_a102/pmt.ts b:1500 /home/pi/tables/v101_a102/sdt.ts b:1400 /home/pi/tables/v101_a102/nit.ts o:1919628 /home/pi/null.ts > /tmp/mux2.ts &
/usr/local/bin/tspcrstamp /tmp/mux2.ts 1919628 > /tmp/buffer2.ts &
/usr/local/bin/tsudpsend /tmp/buffer2.ts 239.0.0.1 1234 1919628 &



PE2JKO uitvoering, op de foto wordt de Hauppage MPEG2 encoder niet gebruikt (grote printplaat met tuner blikje). RPI-DVB.jpg