hack cadre photo usb [topic unique] - Hardware - Linux et OS Alternatifs
Marsh Posté le 11-06-2012 à 18:19:33
Drapal sur le sujet, si tu as des infos pour le modèle Samsung (quel modèle ? pas de hack pour Linux ? Plus intéressant que le rare u70 ?)
Marsh Posté le 11-06-2012 à 21:12:37
bardiel a écrit : Drapal sur le sujet, si tu as des infos pour le modèle Samsung (quel modèle ? pas de hack pour Linux ? Plus intéressant que le rare u70 ?) |
dans la doc lcd4linux il y a ça:
http://ssl.bulix.org/projects/lcd4 [...] SamsungSPF
perso j'ai un spf-87hg, donc pas supporter mais j’essaierais d'en faire quelque chose quand j'aurais le temps
edit: sous windows la majorité des cadres samsung peuvent fonctionnement comme un second écran via l'installation du logiciel frame manager
Marsh Posté le 04-09-2012 à 00:55:50
j'ai enfin pris le temps de finir la première partie de ce topic (hack + usage avec lcd4linux)
Marsh Posté le 07-12-2012 à 12:53:27
bien tout ca.
a suivre.
Marsh Posté le 07-12-2012 à 15:02:10
tient le genre de truc qui m'interesse bizarrement
Marsh Posté le 09-12-2012 à 22:31:24
faut que je mette à jour le topic car les sources de dpf-ax ont encore changé
Marsh Posté le 01-06-2013 à 00:12:00
Maj du topic, les sources ont pas mal changé, au final c'est plus simple à mettre en place, et un peut moins de dépendance à installé
Marsh Posté le 10-06-2012 à 18:06:12
Bonjour,
j'ouvre ce topic sur le hack cadre photo, pour les transformer en écran usb,
les hacks fonctionne principalement sur des environnements GNU/Linux
exemple de résultat final :
plusieurs modèles de cadres sont modifiable:
- ceux basé sur une puce AX206 (celui que j'utilise)
- basé sur une puce ST2205
- cadre photo samsung (sous Windows ça fonctionne de base)
- parrot df3120
pour les modèle à base de AX206 :
la première chose est d'en trouver un qui soit modifiable et qu'il est un écran de bonne qualité,
la liste des modèles ce trouve ici
modèle 1,5 pouce:
j'ai commandé le modèle delight-digi censé être supporté, au final il est supporté mais avec le modèle dx27893,
ce qui implique que les firmwares sont très variable, bon point pour l'écran qui est de bonne qualité (couleur / angle de vision)
le modèle dx27893 est dispo pour un peut plus cher sur dealxtreme avec la confirmation dans les avis que l’écran est de bonne qualité
modèle 2.4 pouce:
celui ou je suis sur de la qualité est le pearl mais il faut avoir quelqu'un en Allemagne pour le commander
le modèle link-delighta des angles de vision très moyen
partie logiciel :
la compilation fonctionne parfaitement sur une Debian squeeze,
sur les autre distributions il est possible que la partie génération des firmwares modifié ne fonctionne pas car les mise à jours de sdcc sont à priori incompatible avec ceux ci
Installation des dépendances :
télécharger les sources de dpf-ax et lancer la compilation
pour les firmwares, il y a 2 possibilité:
-télécharger les firmware pré compilé(méthode facile)
-ou compiler ceux ci (méthode longue):
pour commencer il faut installer quelque dépendance
installation de sdcc :
sous debian squeeze :
ou pour debian wheezy et ubuntu (tester sous wheezy), cc1111 est un fork de sdcc
intelhex est aussi nécessaire :
pour terminer on lance la génération des firmwares
le hack
sauvegarde du firmware (penser à le conserver, pour le reflasher à son état d'origine en cas de problème)
il faut passer le cadre en connexion USB (en principe il faut appuyer 3 fois sur le bouton menu)
et on verifie si le hack peut fonctionner (le nom du fichier contient la date, à modifier si besoin)
exemple quand le cadre est connue pour être modifiable
Looking for firmware.............: Found (buildwin, 128x128 px).
Looking for Openwin..............: Found.
Looking for LcdIniTbl............: Found.
Looking for backlight & contrast.: Found, Found.
Looking for known signatures.....: Found.
Your dpf is compatible with model ['dx27893_2'].
l'élément important à noter est : dx27893_2
ensuite il faut démarrer le cadre photo en mode recovery
appuyer dessus le bouton menu et reset (avec un trombone),
tous en restant appuyer brancher le câble usb (avec une troisième main c'est plus facile)
l’écran ne doit pas s'allumer et avec la commande dmesg on devrait avoir quelque chose qui ressemble à ça
hiddev0,hidraw0: USB HID v2.01 Device
installer le nouveau firmware :
<<ref_cadre>> est à remplacer par le nom du modèle donner au moment de l'identification
si l'opération ce passe bien l'écran devrais afficher des yeux
exemple
exploitation
du cadrede l'écran USBlcd4linux (linux) :
- installation des dépendances (sous debian sqeeze)
- installation des dépendances (sous debian wheezy)
si vous utiliser plusieurs type d’écran avec lcd4linux :
éditer le fichier build-dpf-lcd4linux.sh
vers la ligne 49, changer ceci :
./configure --with-drivers=DPF
par
./configure --with-drivers=all
ensuite on lance la compilation de lcd4linux
lors de la compilation on a un récapitulatif des drivers et plugin dispo
included drivers:
drv_dpf.o drv_generic_graphic.o widget_image.o
-----------------------------------------
included plugins:
plugin_apm.o plugin_button_exec.o plugin_asterisk.o plugin_cpuinfo.o plugin_dbus.o plugin_diskstats.o plugin_dvb.o plugin_exec.o plugin_event.o plugin_file.o plugin_fifo.o plugin_hddtemp.o plugin_huawei.o plugin_i2c_sensors.o plugin_imon.o plugin_isdn.o plugin_kvv.o plugin_loadavg.o plugin_meminfo.o plugin_mpd.o plugin_mpris_dbus.o plugin_netdev.o plugin_netinfo.o plugin_pop3.o plugin_ppp.o plugin_proc_stat.o plugin_sample.o plugin_seti.o plugin_statfs.o plugin_uname.o plugin_uptime.o plugin_w1retap.o plugin_wireless.o plugin_xmms.o
et parmi les plugins non dispo (car dépendance non installé) on a:
configure: WARNING: nmeap.h header not found: gps plugin disabled
configure: WARNING: iconv not found: iconv plugin disabled
configure: WARNING: mysql/mysql.h header not found: mysql plugin disabled
configure: WARNING: sqlite3.h header not found: qnaplog plugin disabled
à vous d'installer les packets si vous en avez besoin.
ensuite on copie le binaire lcd4linux dans /usr/local/bin
(à noter que le binaire peut être utiliser sur un autre système tous pendant que la base matériel est la même et que les dépendances sont installé)
et on créer et remplis un fichier de conf (exemple en 128x128 qui permet d'avoir comme ce qu'il y a dessus la photo en tête de topic)
Layout 'dpf128'
Display 'DPF'
Plugin MPD {
enabled 1
server 'localhost'
port 6600
# password 'secret'
minUpdateTime 500
}
Variables {
# Ticks:
second 1000
minute 60 * second
# Standard Dimensions:
linesize 21 # max line length, for status lines etc.
width100 19 # full width after padding (border)
width050 10 # 1/2 of full width
width033 7 # 1/3 of full width
width025 5 # 1/4 of full width
width010 2 # 1/10 of full width
# Colors:
# ToDo: Alphakanal ausnutzen
black '000000'
white 'ffffff'
red 'ff0000'
darkblue '000066'
lightgray 'b2b2b2'
darkgray '191919'
barcolor0 '5f5fff'
barcolor1 'ff5f5c'
t_onesec 1000
t_500m 500
tack 500
tick 100
tacku 100
scroller 300
}
Display dpf {
Driver 'DPF'
Port 'usb0'
Font '6x8'
Foreground lightgray
Background black
Basecolor black
}
Widget System {
class 'Text'
expression uname('nodename') . ' '. netinfo::ipaddr('wlan0')
width linesize
align 'C'
Background lightgray
Foreground darkgray
}
Widget Time {
class 'Text'
expression strftime('%d.%m.%Y %H:%M:%S', time())
width linesize
align 'C'
update 1 * second
Background lightgray
Foreground darkgray
}
Widget Uptime {
class 'Text'
expression 'Up: ' . uptime('%d days %H:%M')
width linesize
align 'C'
update 1 * second
Background lightgray
Foreground darkgray
}
# display artist and album, scrolling
Widget mpd-combo {
class 'Text'
expression mpd::artist() . '/' . mpd::title()
width linesize
align 'A'
speed scroller
update tack
}
Widget mpd-state {
class 'Icon'
speed tack
update tack
bitmap {
row1 '......|.*....|.......|......'
row2 '......|.**...|.......|......'
row3 '......|.***..|.**..**|.*****'
row4 '......|.****.|.**..**|.*****'
row5 '......|.***..|.**..**|.*****'
row6 '......|.**...|.**..**|.*****'
row7 '......|.*....|.**..**|.*****'
row8 '......|......|.......|......'
}
frame (mpd::getStateInt())
visible (1)
}
# small playbar and track time
Widget smallMP3Bar_part1 {
class 'Bar'
expression mpd::elapsedTimeSec()
length 14
min 0
max mpd::totalTimeSec()
direction 'E'
style 'H'
update tack
}
Widget smallMP3Bar_part2 {
class 'Text'
expression mpd::formatTimeMMSS( mpd::elapsedTimeSec() ).'/'.mpd::formatTimeMMSS( mpd::totalTimeSec() )
width 13
update tack
align 'L'
}
# display mpd repeat icon
Widget mpd-repeat {
class 'Icon'
speed tack
update tack
bitmap {
row1 '......|......'
row2 '......|******'
row3 '......|*....*'
row4 '******|*..***'
row5 '******|*...**'
row6 '......|*....*'
row7 '......|*.....'
row8 '......|******'
}
frame (mpd::getRepeatInt())
visible (1)
}
# display mpd random icon
Widget mpd-random {
class 'Icon'
speed tack
update tack
bitmap {
row1 '......|......'
row2 '......|******'
row3 '......|.....*'
row4 '******|*..***'
row5 '******|**..**'
row6 '......|***..*'
row7 '......|*.....'
row8 '......|******'
}
frame (mpd::getRandomInt())
visible (1)
}
# display current song id and number of total song
Widget mpd-playlist-pos {
class 'Text'
expression 'P: '.mpd::getMpdPlaylistGetCurrentId().'/' .mpd::getMpdPlaylistLength()
width 12
align 'L'
update tack
}
# display volume
Widget mpd-vol {
class 'Text'
expression 'V:'.mpd::getVolume()
width 7
align 'R'
update tack
}
Widget mpd-bitrate {
class 'Text'
expression mpd::bitRate().'k'
width 15
update tack
align 'L'
}
Widget Load {
class 'Text'
expression loadavg(1)
prefix 'Load'
postfix loadavg(1) > 1.0 ? '!' : ''
width linesize
precision 1
align 'R'
update 1 * second
}
Widget Eth {
class 'Text'
expression (netdev('wlan0', 'Rx_bytes', 1 * second) + netdev('wlan0', 'Tx_bytes', 1 * second)) / 1024
prefix 'wlan0'
postfix ' KB/s'
width linesize
precision 1
align 'R'
update 4 * second
}
Widget EthTraffic {
class 'Text'
expression (netdev('wlan0', 'Rx_bytes', 0)+netdev('wlan0', 'Tx_bytes', 0))/1024/1024/1024
prefix 'Traffic'
postfix ' GB'
width linesize
precision 3
align 'R'
update 10 * second
}
Widget FSSpace {
class 'Text'
expression statfs('/home', 'bavail') * statfs('/home', 'bsize') / 1024 / 1024 / 1024
prefix '/home'
postfix ' GB'
width linesize
precision 2
align 'R'
update 10 * second
}
Widget MemoryFree {
class 'Text'
expression (meminfo('MemFree') + meminfo('Cached')) / 1024
prefix 'Memory Free '
postfix ' MB'
width linesize
precision 0
align 'R'
update 5 * second
}
Layout dpf128 {
Row01.Col01 'System'
Row02.Col01 'Time'
Row03.Col01 'Uptime'
Row5.Col01 'mpd-combo'
Row6 {
Col02 'mpd-state'
Col04 'mpd-repeat'
Col06 'mpd-random'
Col08 'smallMP3Bar_part1'
}
Row8 {
Col01 'smallMP3Bar_part2'
Col14 'mpd-bitrate'
}
Row9 {
Col01 'mpd-playlist-pos'
Col14 'mpd-vol'
}
Row11.Col01 'Load'
Row12.Col01 'Eth'
Row13.Col01 'EthTraffic'
Row14.Col01 'FSSpace'
Row15.Col01 'MemoryFree'
}
le fichier de conf doit être visible que par root sinon il ne ce lance pas
et lancer lcd4linux
sources:
http://forum.doozan.com/read.php?9,2435 (surtout vers les dernière page)
http://geekparadise.de/2011/04/dig [...] -dockstar/
http://www.mikrocontroller.net/topic/246772
http://tech.section5.ch/news/
http://openschemes.com/2011/08/29/ [...] mware-sdk/
http://sourceforge.net/projects/pydpf/
to be continued ...
Message édité par ktalog le 01-06-2013 à 17:37:52