RE: DABPI Plugins [beta] - schnibli - 18.01.2016
Ich habe zwar ein Polin Display aber wo kann ich da den Sound abgreifen?
Ich glaube es handelt sich um dieses Display:
http://www.pollin.de/shop/dt/NzUwOTc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/7_17_78_cm_Display_Set_LS_7_HDMI_DVI_VGA_CVBS.html
RE: DABPI Plugins [beta] - E-B - 18.01.2016
@Tauri: Neue Version vom carpc-controller online. Kannst du den mal bzgl. des TDA testen? am besten per SSH o.ä. und die Konsolenausgaben posten.
RE: DABPI Plugins [beta] - Tauri - 20.01.2016
Hi E-B,
super jetzt funktioniert die Initialisierung!
Die einzelnen Lautsprecherausgänge (Balance / Fader) stehen wohl beim Initialisieren auf 0, da der Ton sehr leise ist.
Ich initialisiere dann die Ausgänge mit " sudo i2cset -y 1 0x44 0x80, 0xa0, 0xe0 und 0xc0" dann ist der Ton da.
Der Eingang Input2 funktioniert beim start, schaltet auf Input2 (DABPI), nun habe ich 2 Drehencoder, auf die button eben input1 und input2 gelegt, das funktioniert leider nicht.
Hier die Ausgabe des carpc-controller:
Code: pi@raspberrypi ~ $ Starting Events Module
init ok 5
TDA: Initialization at: 68
TDA: No previous settings found
TDA: Volume: 20
TDA: Input: 1
DABPI: Should be there -> initializing SPI
INIT DAB
SI4688: si4688_init_mode_dab()
/opt/carpc/firmware/rom00_patch.016.bin
/opt/carpc/firmware/dab_radio_3_2_7.bif
get_sys_state answer: 0x808000c002ff
Current mode:
DAB is active
get_part_info answer: 0x808000c0000000005012000000005012000000000100
si4688_set_property(0xB501,0x00)
0x808000c0
si4688_set_property(0xB505,0x00)
0x808000c0
si4688_set_property(0xB400,0x00)
0x808000c0
si4688_set_property(0x8100,0x01)
0x808000c0
si4688_set_property(0x1712,0x01)
0x808000c0
si4688_set_property(0x1710,0x1710)
0x808000c0
si4688_set_property(0x1711,0x1711)
0x808000c0
si4688_set_property(0x800,0x03)
0x808000c0
si4688_set_property(0x300,0x3F)
0x808000c0
SET FREQ LIST
SI4688: si46xx_dab_set_freq_list(): 0x808000c0
SCAN FREQ LIST
SI4688: si4688_dab_tune_freq(0): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 0: ACQ: 1 RSSI: 47 SNR: -10 Name: DR Deutschland
SI4688: si4688_dab_tune_freq(1): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 1: ACQ: 0 RSSI: 28 SNR: -10
SI4688: si4688_dab_tune_freq(2): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 2: ACQ: 0 RSSI: 27 SNR: -10
SI4688: si4688_dab_tune_freq(3): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 3: ACQ: 0 RSSI: 27 SNR: 0
SI4688: si4688_dab_tune_freq(4): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 4: ACQ: 1 RSSI: 46 SNR: -10 Name: hr Radio
SI4688: si4688_dab_tune_freq(5): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 5: ACQ: 0 RSSI: 25 SNR: -10
SI4688: si4688_dab_tune_freq(6): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 6: ACQ: 0 RSSI: 25 SNR: 0
SI4688: si4688_dab_tune_freq(7): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 7: ACQ: 0 RSSI: 25 SNR: 0
SI4688: si4688_dab_tune_freq(8): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 8: ACQ: 0 RSSI: 23 SNR: 0
SI4688: si4688_dab_tune_freq(9): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 9: ACQ: 0 RSSI: 23 SNR: 0
SI4688: si4688_dab_tune_freq(10): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 10: ACQ: 1 RSSI: 33 SNR: -10 Name: SWR BW N
SI4688: si4688_dab_tune_freq(11): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 11: ACQ: 0 RSSI: 27 SNR: 0
SI4688: si4688_dab_tune_freq(12): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 12: ACQ: 0 RSSI: 27 SNR: 0
SI4688: si4688_dab_tune_freq(13): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 13: ACQ: 1 RSSI: 49 SNR: -10 Name: SWR RP
SI4688: si4688_dab_tune_freq(14): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 14: ACQ: 1 RSSI: 37 SNR: -10 Name: DRS BW
SI4688: si4688_dab_tune_freq(15): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 15: ACQ: 1 RSSI: 38 SNR: -10 Name: DR HESSEN
SI4688: si4688_dab_tune_freq(16): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 16: ACQ: 0 RSSI: 29 SNR: -10
SI4688: si4688_dab_tune_freq(17): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 17: ACQ: 0 RSSI: 38 SNR: -10
SI4688: si4688_dab_tune_freq(18): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 18: ACQ: 0 RSSI: 31 SNR: 0
SI4688: si4688_dab_tune_freq(19): 0x818000c0
SI4688: si4688_dab_digrad_status():
Channel 19: ACQ: 0 RSSI: 29 SNR: 0
TestEnsemble Name: DR Deutschland
TestEnsemble ID: 0
PUSH ENSEMBLES
RADIO: Push Ensembles
RADIO: Number of Ensembles: SetProperty(DAB.Ensembles,6,10000)
RADIO: Ensemble Name: SetProperty(DAB.Ensemble_0,DR Deutschland ,10000)
RADIO: Ensemble RSSI: SetProperty(DAB.RSSI_0,47,10000)
RADIO: Ensemble Name: SetProperty(DAB.Ensemble_1,hr Radio ,10000)
RADIO: Ensemble RSSI: SetProperty(DAB.RSSI_1,46,10000)
RADIO: Ensemble Name: SetProperty(DAB.Ensemble_2,SWR BW N ,10000)
RADIO: Ensemble RSSI: SetProperty(DAB.RSSI_2,33,10000)
RADIO: Ensemble Name: SetProperty(DAB.Ensemble_3,SWR RP ,10000)
RADIO: Ensemble RSSI: SetProperty(DAB.RSSI_3,49,10000)
RADIO: Ensemble Name: SetProperty(DAB.Ensemble_4,DRS BW ,10000)
RADIO: Ensemble RSSI: SetProperty(DAB.RSSI_4,37,10000)
RADIO: Ensemble Name: SetProperty(DAB.Ensemble_5,DR HESSEN ,10000)
RADIO: Ensemble RSSI: SetProperty(DAB.RSSI_5,38,10000)
RADIO: ScanReady: SetProperty(DAB.ScanReady,1,10000)
TUNE FREQ
SI4688: si4688_dab_tune_freq(0): 0x818000c0
GET & PRINT SERVICE LIST
SI4688: si4688_dab_get_digital_service_list()
List size: 513
List version: 279
Services: 18
Num: 0 Service ID: 10c3 Service Name: SCHLAGERPARADIES Component ID: 20
Num: 1 Service ID: 15dc Service Name: sunshine live Component ID: 21
Num: 2 Service ID: 15dd Service Name: RADIO BOB! Component ID: 22
Num: 3 Service ID: 17fa Service Name: Absolut relax Component ID: 3
Num: 4 Service ID: 1a45 Service Name: ENERGY Component ID: 4
Num: 5 Service ID: 1a64 Service Name: ERF Plus Component ID: 2
Num: 6 Service ID: d01c Service Name: Radio Horeb Component ID: 5
Num: 7 Service ID: d210 Service Name: Deutschlandfunk Component ID: 10
Num: 8 Service ID: d220 Service Name: Component ID: 11
Num: 9 Service ID: d230 Service Name: DWissen Component ID: 12
Num: 10 Service ID: d240 Service Name: DRadio DokDeb Component ID: 13
Num: 11 Service ID: d75b Service Name: KLASSIK RADIO Component ID: 6
Num: 12 Service ID: e0d00250 Service Name: DRadio Daten Component ID: 49153
Num: 13 Service ID: e0d010bc Service Name: TPE Component ID: 36864
Num: 14 Service ID: e0d110bc Service Name: EPG Deutschland Component ID: 49188
Num: 15 Service ID: e0d210bc Service Name: MB Datacast Component ID: 49186
Num: 16 Service ID: e0d310bc Service Name: TPEG_MM Component ID: 49185
Num: 17 Service ID: e0d410bc Service Name: ECODyNIS Test Component ID: 49184
PUSH SERVICE LIST
RADIO: Push Servicelist
RADIO: Number of Services: SetProperty(DAB.Services,18,10000)
RADIO: Service: SetProperty(DAB.Service_0,SCHLAGERPARADIES,10000)
RADIO: Service: SetProperty(DAB.Service_1,sunshine live ,10000)
RADIO: Service: SetProperty(DAB.Service_2,RADIO BOB! ,10000)
RADIO: Service: SetProperty(DAB.Service_3,Absolut relax ,10000)
RADIO: Service: SetProperty(DAB.Service_4,ENERGY ,10000)
RADIO: Service: SetProperty(DAB.Service_5,ERF Plus ,10000)
RADIO: Service: SetProperty(DAB.Service_6,Radio Horeb ,10000)
RADIO: Service: SetProperty(DAB.Service_7,Deutschlandfunk ,10000)
RADIO: Service: SetProperty(DAB.Service_8,,10000)
RADIO: Service: SetProperty(DAB.Service_9,DWissen ,10000)
RADIO: Service: SetProperty(DAB.Service_10,DRadio DokDeb ,10000)
RADIO: Service: SetProperty(DAB.Service_11,KLASSIK RADIO ,10000)
RADIO: Service: SetProperty(DAB.Service_12,DRadio Daten ,10000)
RADIO: Service: SetProperty(DAB.Service_13,TPE,10000)
RADIO: Service: SetProperty(DAB.Service_14,EPG Deutschland ,10000)
RADIO: Service: SetProperty(DAB.Service_15,MB Datacast ,10000)
RADIO: Service: SetProperty(DAB.Service_16,TPEG_MM ,10000)
RADIO: Service: SetProperty(DAB.Service_17,ECODyNIS Test ,10000)
START SERVICE 1
SID: 5596 ; CID: 21
SERVICE LINKING INFO
SI4688: si4688_dab_get_service_linking_info()
COMPONENT INFO
SI4688: si4688_dab_get_component_info()
SET SYSTEM TIME
Date: 20.1.2016 ; Time: 6:46:34
Epoch time stamp is: 1455947194
Setting system time...
Done
TDA: Input: 2
Lautstärke 20
TESTING FINISHED
Beim iCarus project habe ich was nettes gesehen, zur voreinstellung des Klang´s usw.
Hier noch die gpio_description:
Code: # Raspberry PI GPIO XBMC Controller configuration file
# Ip address of the XBMC machine
[ip]:localhost
#tda address: 0 = not connected. 68
tda:68
# Radio volume and XBMC volume are unified
unified_volume:1
#dabpi connected = 1, else: 0
dabpi:1
# Debouncing settings
click_skip:1
click_hold:500000
encoder_hold:200000
# DO NOT USE:
# PIN GPIO FUNCTION
# 12 18 PCM_CLK
# 16 23 SI4688 Reset
# 19 10 SPI MOSI
# 21 9 SPI MISO
# 22 25 INT
# 23 11 SPICLK
# 24 8 SPI CE0_N
# 27 ID_SD
# 28 ID_SC
# 35 19 PCM_FS
# 38 20 PCM_DIN
# Left Control
button:4:tda_input_1
#button:4:xbmcbuiltin_PlayerControl(Play)
encoder:sl:2:sr:2:clk:17:dt:27:tda_volume_down:tda_volume_up
#encoder:sl:2:sr:2:clk:27:dt:17:tda_balance_left:tda_balance_right
# Right Control
button:16:tda_input_2
encoder:sl:2:sr:2:clk:12:dt:26:radio_seek_down:radio_seek_up
#button:22:radio_seek_down
#button:27:radio_seek_up
################################################################################
######################### CLARIFICATION ON SETTINGS ##########################
################################################################################
# 1. Debouncing Common Settings
# click_skip - How many button press events will be ignored until the user takes the finger out of the button
# click_hold - Ho many microseconds to hold after a button was pressed
# encoder_hold - How many microseconds to hold after an encoder has been turn
# 2. Encoder settings
# sl: How many times to skip an action for the left turn of the encoder
# sr: How many times to skip an action for the right turn of the encoder
# clk: The GPIO number where the CLK pin of the encoder is hooked up
# dt: The GPIO number where the DT pin of the encoder is hooked up
# 3. Radio Commands
# A radio module is needed and a radio UDP server runing.
# A Radio command should start with fm_
# fm_init -> initialize fm radio with last channel
# fm_seek_up -> seek for the next channel //NOT WORKING
# fm_seek_down -> seek for the previous channel //NOT WORKING
# fm_tune_up -> tune up 100kHz //NOT WORKING
# fm_tune_down -> tune down 100kHz //NOT WORKING
# fm_tune:x -> set radio frequency to x kHz
# fm_rds_update -> updates rds to kodi
# 4. TDA Commands
# Commands start with tda_ and and finish with one of the following commands:
# volume_up/down -> volume up or down
# bass_up/down -> bass up/down
# treble_up/down -> treble up/down
# fade_front/rear -> fade front/rear
# input_1/2/3/4 -> choose between input 1-4 (1: RPi, 2: SI4688, 3: AUX, 4: not used)
# 5. XBMX/Kodi
# xbmcbuiltin_ -> finishes with one of the built-in functions
# KB_ -> send keyboard press
# 5. DAB Radio
# commands start with dab_
# dab_init -> initialize dab
# dab_scan -> Scans the national frequency blocks of germany
# dab_scan_int -> Scans all frequency blocks
# dab_ensemble:x -> tunes to one of the reachable ensembles/frequency
# dab_start_service:x -> starts a service
#
#
Gruß Tauri
RE: DABPI Plugins [beta] - E-B - 20.01.2016
@Tauri: Das Problem mit dem Umschalten der Inputs sollte behoben sein. Ich hatte in der gpio_description "tda_input_x" als Befehl angegeben, aber der Controller kannte nur "tda_inputx". Jetzt läuft beides über die Version mit Unterstrich.
Das mit dem Initialisieren von Balance und Fade muss ich wohl nochmal genauer testen, kann ich allerdings erst, wenn mein Basteltisch fertig ist. Ich habe da jetzt eine Initialisierung programmiert, aber weiß nicht ob die läuft.
Soweit ich das sehe, müsste ja dann bei dir auch ein DAB-Sender laufen wenn alles durch ist?
Zum Design: An sowas hatte ich von Anfang an gedacht, allerdings erfordert das ein wenig mehr Aufwand an der Plugin-Programmierung. Ich wollte zuerst nur die simpelsten Funktionen umsetzen. Problematisch werden auch die Schieberegler, ich weiß nicht ob und wie das in Kodi funktioniert.
RE: DABPI Plugins [beta] - Tauri - 21.01.2016
Hi E-B,
die Inputs laufen jetzt, aber nur mit: tda_input1, habe bedes getestet, mit Unterstrich (tda_input_1) läuft nicht.
Das mit Balance und Fade ist in der Testphase erst mal kein Problem, stelle es von Hand ein. Habe im moment nicht gerade viel Zeit (wegen Hauskauf). Mach dir keinen Stress bau erst mal deinen Basteltisch um.
Ja, wenn der carpc-controller durch ist, läuft ein DAB-Sender.
Ein Design für das Plugin mit Schiebereglern wäre super, man kann das ICarus image ja mittlerweile downloaden, da es auf Kodi basieren soll, könnte man sich das dort mal anschauen oder?
Gruß Tauri
RE: DABPI Plugins [beta] - schnibli - 23.01.2016
Was ich nicht ganz versteh, mit dem gewöhnlichen Radio Plugin (standart)
Funktioniert die Soundausgabe (Wechsel von Radio zu Video oder Musik), wird dies
in diesem Plugin anders Initialisiert das es nicht mehr Funktioniert oder habe ich was
falsch gemacht?
RE: DABPI Plugins [beta] - robin - 26.01.2016
Hallo E-B
bei mir tut der addon nicht:
Hier ein Auszug aus kodi-log
Zuerst wechsel zum Plugin:
Code: 20:20:46 T:1961480192 DEBUG: CGUIMediaWindow::GetDirectory (plugin://plugin.program.radioDAB/)
20:20:46 T:1961480192 DEBUG: ParentPath = [addons://sources/executable/]
20:20:46 T:1751118864 DEBUG: StartScript - calling plugin DAB Radio plugin('plugin://plugin.program.radioDAB/','1','')
20:20:46 T:1751118864 DEBUG: WaitOnScriptResult - waiting on the DAB Radio plugin (id=8) plugin...
20:20:46 T:1734341648 NOTICE: Thread LanguageInvoker start, auto delete: false
20:20:46 T:1734341648 INFO: initializing python engine.
20:20:46 T:1734341648 DEBUG: CPythonInvoker(8, /home/pi/.kodi/addons/plugin.program.radioDAB/addon.py): start processing
20:20:46 T:1734341648 NOTICE: -->Python Interpreter Initialized<--
20:20:46 T:1734341648 DEBUG: CPythonInvoker(8, /home/pi/.kodi/addons/plugin.program.radioDAB/addon.py): the source file to load is "/home/pi/.kodi/addons/plugin.program.radioDAB/addon.py"
20:20:46 T:1734341648 DEBUG: CPythonInvoker(8, /home/pi/.kodi/addons/plugin.program.radioDAB/addon.py): setting the Python path to /home/pi/.kodi/addons/plugin.program.radioDAB:/usr/lib/python2.7:/usr/lib/python2.7/plat-linux2:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload:/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages/PIL:/usr/lib/python2.7/dist-packages/gtk-2.0:/usr/lib/pymodules/python2.7
20:20:46 T:1734341648 DEBUG: CPythonInvoker(8, /home/pi/.kodi/addons/plugin.program.radioDAB/addon.py): entering source directory /home/pi/.kodi/addons/plugin.program.radioDAB
20:20:46 T:1734341648 DEBUG: CPythonInvoker(8, /home/pi/.kodi/addons/plugin.program.radioDAB/addon.py): instantiating addon using automatically obtained id of "plugin.program.radioDAB" dependent on version 2.1.0 of the xbmc.python api
20:20:46 T:1734341648 NOTICE: DAB: Setting: 'DAB.ScanReady', '0'
Dann ein Scan-Versuch:
Code: 20:22:41 T:1734341648 NOTICE: DAB: 0
20:22:42 T:1734341648 NOTICE: DAB: 1
20:22:43 T:1734341648 NOTICE: DAB: 2
20:22:44 T:1734341648 NOTICE: DAB: 3
20:22:45 T:1734341648 NOTICE: DAB: 4
20:22:45 T:1961480192 DEBUG: ------ Window Deinit (Pointer.xml) ------
20:22:46 T:1734341648 NOTICE: DAB: 5
20:22:47 T:1734341648 NOTICE: DAB: 6
20:22:48 T:1734341648 NOTICE: DAB: 7
20:22:49 T:1734341648 NOTICE: DAB: 8
20:22:50 T:1734341648 NOTICE: DAB: 9
20:22:51 T:1734341648 NOTICE: DAB: 10
20:22:52 T:1734341648 NOTICE: DAB: 11
20:22:53 T:1734341648 NOTICE: DAB: 12
20:22:54 T:1734341648 NOTICE: DAB: 13
20:22:55 T:1734341648 NOTICE: DAB: 14
20:22:56 T:1734341648 NOTICE: DAB: 15
20:22:57 T:1734341648 NOTICE: DAB: 16
20:22:58 T:1734341648 NOTICE: DAB: 17
20:22:59 T:1734341648 NOTICE: DAB: 18
20:23:00 T:1734341648 NOTICE: DAB: 19
20:23:01 T:1734341648 NOTICE: DAB: 20
20:23:02 T:1734341648 NOTICE: DAB: 21
20:23:03 T:1734341648 NOTICE: DAB: 22
20:23:04 T:1734341648 NOTICE: DAB: 23
20:23:05 T:1734341648 NOTICE: DAB: 24
20:23:06 T:1734341648 NOTICE: DAB: 25
20:23:07 T:1734341648 NOTICE: DAB: 26
20:23:08 T:1734341648 NOTICE: DAB: 27
20:23:09 T:1734341648 NOTICE: DAB: 28
20:23:10 T:1734341648 NOTICE: DAB: 29
20:23:11 T:1734341648 NOTICE: DAB: 30
20:23:12 T:1734341648 NOTICE: DAB: break
20:23:12 T:1734341648 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.ValueError'>
Error Contents: invalid literal for int() with base 10: ''
Traceback (most recent call last):
File "/home/pi/.kodi/addons/plugin.program.radioDAB/addon.py", line 299, in onControl
num_ens = int(xbmcgui.Window(10000).getProperty('DAB.Ensembles'))
ValueError: invalid literal for int() with base 10: ''
-->End of Python script error report<--
Hast Du eine Idee?
Gruß
Robin
RE: DABPI Plugins [beta] - schnibli - 29.02.2016
So Nun Sound habe ich jetzt auch von DAB geschaft
Nun alles läuft sofern man das ständige Init Ignoriert oder das Manuelle umschalten der Inputs
Hast du den Controller absichtlich so angepasst das er beim Starten die DAB sender sucht?
RE: DABPI Plugins [beta] - E-B - 15.03.2016
Hi alle zusammen,
ich bin noch bis Ende Mai mit meiner BA beschäftigt, wollte trotzdem einen kurzen Zwischenstand geben, was ich so nebenbei noch geschafft habe (nicht viel, aber immerhin etwas). Kurz gesagt: Addons liegen erstmal auf Eis weil der controller neu geschrieben werden sollte.
Da die Änderungen am carpc-controller immer größer und unübersichtlicher wurden habe ich angefangen ihn neu zu programmieren. Das wäre dann die v3 und die ist zu 95% in C++ geschrieben und soll möglichst leicht zu erweitern sein. Geplant ist, dass jedes Hardwaremodul auch standalone läuft, sodass sich jeder sein Wunschsystem zusammenstellen kann. Das Grundgerüst steht soweit und die ersten Klassen sind vollständig implementiert.
Ein weiteres (größeres) Schlamassel sind die Kodi Addons: Die waren schnell zusammengeschrieben und was die Kommunikation mit dem Controller angeht eher suboptimal gelöst. Geplant ist jetzt, alles an Daten im Controller in C++ zu verarbeiten und die Python Addons nur als Anzeige zu nutzen.
Falls jemand Erfahrung mit IPC hat oder eine Idee, wie ich möglichst schnell und elegant Structs/Vektoren (vielleicht sogar Objekte?) zwischen C++ und Python austauschen kann wäre ich für jeden Tipp dankbar.
RE: DABPI Plugins [beta] - schnibli - 31.05.2016
Hallo E-B, gibt es zu diesem Projekt schon Fortschritte oder wurde das Projekt abgebrochen?
Gruss Schnibli
|