lunedì 14 ottobre 2013

Sostituzione vetro touch screen su Huawey Y300


Nel capitolo "Fatelo da soli",come dicono i giornali, ricevo e volentieri pubblico il contributo di un collega geologo/informatico che mostra la sostituzione di un vetro di un Huawey Y300

Il vetro si e' fratturato a seguito di una caduta ed il pezzo di ricambio e' stato acquistato su un e-commerce cinese per pochi euro

Gli attrezzi da usare sono:

  • cacciavite torx
  • cacciavite a taglio
  • plettro
  • nastro biadesivo 
  • trincetto
  • phon
  • una miscela tra forza bruta e delicatezza


La prima fase prevede la rimozione di batteria e SIM

Si svitando poi le viti torx e si disaccoppia il guscio del cellulare dal display facendo leva il cacciavite a taglio


Si rimuovono quindi le due flat indicate dalle frecce in rosso


Alla fine il telefono e' sostanzialmente disassemblato


Si inizia la sostituzione del vetro: con un phon si separa il vetro dall'intelaiatura forzando leggermente con un plettro da chitarra

Una volta rimosso il vetro danneggiato si riposiziona il nastro biadesivo sul telaietto


Si posiziona il pezzo di ricambio del vetro(notare i due cavi flat che sporgono)

Si rimonta il display ricollegando le flat

e si ripetono all'incontrario i passi per lo smontaggio


Ed alla fine si riaccende

Ben fatto

sabato 12 ottobre 2013

IBM ThinkPad X20 (2662)

Mi e' stato prestato per una prova un vecchio IBM X20, una macchina del 2002 che monta un PIII 600 MHZ con 192 Mb di Ram (128 Mb in origine non rimuovibile come per l'X40) ed un disco fisso da 20 Gb. Ha uno schermo da 12.1 pollici con una risoluzione di 1024x768 e due USB . Non sono presenti connettivita' wifi, bluetooth, la batteria principale e quella della CMOS sono decisamente defunte. Da aggiungere che il tasto Freccia Su di questa splendida tastiera, una delle piu' veloci che abbia mai provato, risulta malfunzionante.

Per il resto e' una macchina, considerando la data di uscita, che ha ancora un suo fascino anche se non e' usabile come il suo fratello maggiore X40 che ancora uso normalmente




Un aspetto curioso e' la presenza di un alloggiamento per schede CF (credo che sia l'unico portatile con tale caratteristica, gia' dall'X40 il lettore e' di SD Card)


La sostituzione della batteria e' piuttosto semplice in quanto e' alloggiata insieme alla Ram.Da notare che lo slot della Ram porta l'indicazione FoxConn (all'epoca ancora sostanzialmente sconosciuta)


Un'altra caratteristica particolare e' la presenza della Ultraport posizionata sul lato corto superiore dello schermo. Si tratta di un porta proprietaria IBM che ha avuto poca fortuna e che si fatto e' una USB con connettore differente (vedi qui)



Ultraport

Il computer, a meno di aggiornamenti del firmware, non permette il boot da USB per cui per montare il disco fisso e' necessario utilizzare l'Ultrabase 08N1180 per aggiungere le funzionalita' del CDRom, di floppy disk, di due casse stereo, di una porta seriale ed una parallela oltre ad un ingresso PS2. La caratteristica principale e' che il CDRom puo' essere disconnesso dalla base per inserire altri accessori

Ultrabase con CdRom estratto


venerdì 11 ottobre 2013

Calcolatori analogici

Pensare ad una cosa piu' obsoleto di un regolo calcolatore ai giorni d'oggi e' quasi impossibile... per quanto riguarda lo scalimetro devo ammettere che lo uso ancora con una certa regolarita' per lavoro

Nelle foto sottostanti sono mostrati (con le loro scatole originali)
1) Scalimetro Mars 561 98 STAEDTLER (scale 1:20, 1:25, 1:50, 1:75, 1:100, 1:125)
2) Regolo calcolatore tascabile DARMSTAD 33 ( scale L,K,A,B,C,D,P,S,T , sul retro LL1, LL2, LL3)
3) Regolo calcolatore da tavolo ARISTO Scholar 0903 (scale L,K,A,B,Bl,Cl,C,D,S,ST,T)



Il regolo tascabile lo avevo comprato oltre 20 anni fa per affiancare il calcolatore digitale ma non ho mai trovato nessuno che me ne potesse spiegare bene l'uso. Oggi e' possibile consultare Wikipedia (http://en.wikipedia.org/wiki/Slide_rule) per le indicazioni necessarie. Considerando che questi regoli erano imbarcati nei voli verso la Luna delle Missioni Apollo e che erano utilizzati anche a Los Alamos per i calcoli sulla bomba atomica, e' piuttosto impressionante cio' che si puo' tirare fuori da uno strumento che ha una precisione alla prima cifra decimale (alla seconda tra 1 e 2) e che puo' fare quasi solo moltiplicazioni e divisioni (per i calcoli piu' precisi erano necessarie le tavole logaritmiche tabulate nei libri)


martedì 8 ottobre 2013

Arduino Due ed Ethernet Shield

In questo post viene mostrato come connettere una Arduino Due ad uno Shield Ethernet
Nonostante il differente fattore di forma rispetto ad una Arduino Uno, Arduino Due accoglie anche Ethernet Shield con l'unica accortezza di posizionarlo in modo corretto.
In pratica si devono far coincidere i nomi dei pin sullo shield con quelli della scheda; la posizione risulta quindi praticamente allineata con il bordo dell'alimentazione ed alcuni pin non risultano collegati


Nell'acquisto di uno Shield Ethernet per Arduino Due si deve fare attenzione che questo sia compatibile la rev.3. Nell'immagine sottostante sono mostrati due Shield: quello superiore funziona correttamente mentre quello inferiore non risulta compatibile con Arduino Due


lunedì 7 ottobre 2013

Semplice Video Editing con Kino

Per montare un po' di video dalla fotocamera avevo bisogno di un programma di video-editing ed ho provato Kino. Nonostante fosse descritto come complicato la sua filosofia di utilizzo ricalca quella di MovieMaker sotto Windows ed e' abbastanza intuitivo

Per prima cosa si deve effettuare l'importazione dei file. Il formato .mov della fotocamera e' stato correttamente letto e convertito in automatico in formato .dv per la fase di editing


Il programma in modo automatico cerca (ma non ci riesce) di dividere il video nelle sue varie scene
Usando i pulsanti sottostanti e la timeline al di sotto del video si possono dividere od accorpare sezioni di video

Altrimenti si puo' inserire in testa od in coda altri spezzoni di video con le seguenti icone


Cliccando sulla barra di sinistra si possono quindi tagliare o copiare intere scene


Al termine del lavoro si deve esportare il filmato. In modalita' AVI non si ha praticamente compressione video ed e' piu' comodo scegliere la modalita' MPEG che risulta supportata per l'upload su YouTube


Il programma non e' particolarmente esoso di risorse (se non di disco fisso) e gira bene su Dual Core del 2008 con 2 Giga di Ram

Led Green+Blue in Arduino


Smontando un circuito elettrico rotto ho recuperato un diodo verde-rosso. Si tratta di un componente che non e' altro che l'unione in un unico oggetto di due led distinti. Sono presenti tre piedini: quello centrale e' l'anodo comune che deve essere collegato all'alimentazione a 5V mentre gli altri due piedini accendono rispettivamente il colore rosso e quello verde




In Fritzing e' disponibile solo il componente led RGB ma, ad esclusione di un pin in piu', le connessioni sono analoghe a quello a due colori



Ed infine lo sketch (connessione ai pin 9 e 10)
-------------------------------
int led1 = 9;
int led2 = 10;

void setup() {                

  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);

}

void loop() {
  digitalWrite(led1, HIGH);   
  digitalWrite(led2, LOW);
  delay(1000);          
  digitalWrite(led1, LOW);
  digitalWrite(led2, HIGH);    
  delay(1000); 
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  delay(1000);
  digitalWrite(led1, LOW);   
  digitalWrite(led2, LOW);
  delay(1000);          
  
}

Raspberry PI + Rear View Camera


Dato che il televisore di casa (l'unico con entrata HDMI) e' perennemente su Peppa Pig stavo cercando una soluzione a basso costo per usare la Raspberry. Mi sono quindi comprato per meno di dieci euro su  un e-commerce cinese un monitor da 4.3 pollici normalmente impiegato nelle automobili per visualizzare la telecamera della retromarcia

La Raspberry e' sotto al monitor !!!

Il monitor in formato 16:9 ha una risoluzione di 480x272 pixel e come sempre per le forniture cinesi e' arrivato praticamente senza istruzioni. Ho collegato quindi il cavo rosso al positivo di un alimentatore AC/DC da 12V/2A ed il cavo nero al negativo


Pensavo di dover smanettare su X per modificare le impostazioni dello schermo ma tutto ha funzionato alla prima.

venerdì 4 ottobre 2013

Effettuare Like in automatico su Facebook mediante Temboo

Non sono ancora riuscito ad effettuare un like su un post od una pagina Facebook in modo automatico mediante il PHP SDK ma esiste un modo piu' semplice (a costi sostenibili) per effettuare la stessa operazione mediante Temboo

Per prima cosa si deve creare una applicazione Facebook che abbia la sola autenticazione via Web a Facebook. Si copiano come al solito la App  Key e la Secret Key dell'applicazione Facebook e si deve impostare la URL di accesso con il seguente indirizzo

https://www.temboo.com/oauth_helpers/confirm_facebook/



Fatto questo si va su Temboo si clicca sul pulsante blu Oauht Wizard per ottenere l'Access Token introducendo la App Key e la Secret Key di Facebook ( in questa fase viene chiesta la username e la password dell'utente Facebook con cui si intende effettuare il Like)
Se tutto va bene viene popolato il campo dell'Access Token

A questo punto si deve ottenere l'ObjectID del post o della pagina su cui si intende effettuare il Like come spiegato in questo precedente post



La procedura puo' essere automatizzata con lo script Php che usa le Api di Temboo riportato nel sample code

giovedì 3 ottobre 2013

Burn Baby Burn

Update
------------------------------------
Da un controllo effettuato dall'elettricista e' stato scoperto che non si tratta di un problema dei computers ma dell'impianto. Il salvavita era rotto e sembra che sulle prese fosse presente il 380V (su quest'ultima affermazione mi riservo qualche dubbio)
------------------------------------
Dopo 25 anni a pigiare tasti su un calcolatore pensavo di averle viste piu' o meno tutte ma e' evidente che mi sbagliavo. L'altro giorno mentre io ed un amico eravamo in sala server, entrambi con un portatile, abbiamo sentito che la tensione andava e veniva agli alimentatori ma  non ci siamo preoccupati troppo dato che l'impianto elettrico della sala server e' conosciuto per non essere ottimale

Nemmeno un minuto dopo una sottile filo di fumo si alzato dal mio alimentatore IBM/Lenovo (T61) ed e' partita la corsa a staccare tutto

Il risultato e' stato
1 alimentatore IBM letteralmente bruciato (con fuoriuscita di liquido probabilmente da un condensatore)
1 alimentatore Apple MagSafe non piu' funzionante (forte odore di bruciato)
1 alimentatore di un Access Point Apple non piu' funzionante (forte odore di bruciato)

Interno dell'alimentatore IBM

La cosa strana (o meglio preoccupante) e' che non saltata nessuna delle protezione (salvavita e simili) elettriche. Fortunatamente le unita' a disco dei server ed i server stessi non sono stati conivolti dal corto

martedì 1 ottobre 2013

MTP in Nexus 7 e Windows XP

Riprendendo questo post ho provato a vedere se era piu' facile utilizzare MTP su Windows XP
Questa procedura e' stata ripresa da questo link

per prima cosa si deve editare il file C:\WINDOWS\inf\wpdmtp.inf aggiungendo una linea come da esempio seguente 

------------------------------
[Generic.NTx86]
 %GenericMTP.DeviceDesc%=MTP, USB\MS_COMP_MTP 
%GenericMTP.DeviceDesc%=MTP, USB\VID_18D1&PID_4E42&MI_00
-------------------------------


A questo punto si puo' connettere il Nexus 7

In caso si necessita' indicare a Windows di effettuare l'installazione automatica


Alla fine compare la nuova unita' disco del Nexus 7.
Mi dispiace dirlo ma MTP e' molto piu' stabile sotto Windows che sotto Linux

Ipod Mini 3G

Mi e' stato prestato, ovviamente rotto (vedi foto) , un Ipod Mini 3G ritrovato per strada dopo esser stato ampiamente calpestato. La forma piuttosto solida del dispositivo mi faceva sperare


ma guardando in controluce l'LCD si vede chiaramente che i cristalli liquidi si sono rotti


Speravo almeno in una motherboard funzionante ma una volta connesso il cavo USB non ci sono stati segni di vita. A questo punto via con lo smontaggio.
La batteria ed il display sono incollati insieme e delle dimensioni
Dal lato posteriore della minuscola scheda madre e' visibile solo il componente hynix hy27uw08cgfm che non e' nient altro che la memoria da 8 Gb (http://pdf1.alldatasheet.com/datasheet-pdf/view/115189/HYNIX/HY27UF081G2M-TPCB.html)


Riposa in pace nel paradiso delle attrezzature informatiche obsolete e non funzionanti

Mondiali di Ciclismo 2013 - Scivolate in curva

Era abbastanza facile prevedere che la curva di via XXV Settembre a Pian del Mugnone sarebbe stata quella piu' difficile del mondiale e che ci sarebbe stata qualche caduta, tanto che qualcuno aveva gia' messo uno striscione sulla "Trattoria Al Curvone" di fantozziana memoria


La pioggia ha reso il tutto ancora piu' complicato con 5 cadute, senza conseguenze se non un paio di ritiri.



e per finire l'originale 



venerdì 27 settembre 2013

Sqlite in Php per uso Web



Per poter effettuare delle operazioni di Insert/Update/Delete su database Sqlite gestito da interfaccia Web e' necessario che il file di database abbia i permessi corretti

Non e' sufficiente settare a 777 i permessi del file .db ma deve essere anche impostato come proprietario del file l'utente apache (che su Debian e' www-data) con il seguente comando (attenzione ai punti)
----------------------
chown www-data. . 
----------------------

in caso contrario degli script sintatticamente corretti non funzioneranno

giovedì 26 settembre 2013

Nexus 7 ed Rfid

Un piccolo problemino con Nexus 7: nonostante tutti i Nexus condividano il medesimo chip ed antenna per l'NFC/RFID su Nexus 7 non sempre viene riconosciuto il tag


la soluzione e' semplice: l'antenna non e' grande quanto la dimensione del dispositivo ed e' ubicata poco sopra la E della scritta Nexus. Per leggere i tag e' quindi necessario strusciarli  nella posizione esatta dell'antenna

MTP in Nexus 7 e Debian Testing

Con il Nexus 7 e Android 4.3 e' cambiato il sistema per accedere alla memoria di Android
Se prima per abilitare la memoria si doveva esplicitamente cliccare attualmente inserendo il cavo USB viene riconosciuta subito una unita' esterna

Il protocollo di trasmissione dati e' MTP e, come si vede dall'immagine sottostante, Debian testing monta automaticamente il dispositivo



Cercando di copiare dati si generano in modo abbastanza casuale errori di questo tipo


Ho notato che modificando il nome del file permette di compiere senza errori l'operazione ed in altri casi e' la dimensione del file che genera l'errore

Ho provato ad aggiornare libmtp all'ultima versione compilando dai sorgenti ma senza sensibili miglioramenti. Ho quindi compilato dai sorgenti il programma Mtpfs (link) con poco successo (il dispositivo e' stato montato ma era molto lento nel fare la lista dei file presenti)

Ho provato anche questo sistema ma senza significativi miglioramenti

In buon sostanza la cosa migliore al momento rimane Airdroid

Postare su GMail con Temboo in Php


Insieme ad Arduino Yun viene fornito anche il supporto per Temboo, un metodo semplice per utilizzare le API di diversi servizi Web come per esempio Google o Facebook

Per utilizzare questo metodo, dopo essersi registrati, si deve individuare quali sono le Application Keys. Per l'account Free e' possibile definire una sola applicazione con un limite di 1000 transazioni/mese 



Si puo' quindi scaricare l'SDK preferito (in questo caso Php) e creare il seguente semplice script
Di fatto devono essere inserite le credenziali di Temboo (username=c1p81, Appname = myFirstApp e Secret Key) e poi le variabili per spedire la mail con le credenziali (in chiaro....scelta un po' opinabile) di Google
----------------------------------------------------------
<?
require './php-sdk/src/temboo.php';
$session = new Temboo_Session('c1p81', 'myFirstApp', '09d467e6-xxxxxxxxxx');
$sendEmail = new Google_Gmail_SendEmail($session);
$sendEmailInputs = $sendEmail->newInputs();
$sendEmailInputs->setMessageBody("Da Giglio")->setSubject("Giglio automatico")->setUsername("lucainnoc")->setPassword("xxxxxx")->setFromAddress("lucainnoc@gmail.com")->setToAddress("l.innocenti@xxxxxxx.it");
$sendEmailResults = $sendEmail->execute($sendEmailInputs)->getResults();
?>

Ancora su Arduino Yun


Un po' di aggiornamenti sulla Yun

1) Al contrario di Arduino Uno, gli sketch di Yun non si resettano quando si collega il terminale sulla seriale virtuale. Per effettuare il reset si deve premere il pulsante fisico di reset oppure collegarsi alla serial con una velocita' di 1200

2) Nelle configurazioni avanzate e' presente un menu avanzato per visualizzare lo stato della rete denominato Luci


3) Se la Yun non e' in modalita' Access Point e' possibile collegarsi in SSH. L'utente e' root e la password e' quella che e' stata impostata dall'utente


4) Dopo un riavvio da modalita' Access Point a modalita' normale la Yun non puo' essere pingata ma solo chiamata con il nome impostato (per esempio c1p81.local).

5) Direttamente dal forum di Arduino Yun il pinout
6) Per poter osservare i messaggi che prima si potevano inviare sulla seriale virtuale quando vi e' la sola connessione WiFI od Ethernet si deve usare la libreria Console.h al posto di Serial.h. I messaggi si osservano come al solito sul monitor serial della IDE
Per esempio
------------------------------
#include <Console.h>

void setup() {
  Bridge.begin();
  Console.begin(); 

  while (!Console){
    ; // wait for Console port to connect.
  }
  Console.println("You're connected to the Console!!!!");
 }

void loop() {
 }

Httpclient con Arduino Yun

Un primo esempio dell'HttpClient di Yun

-----------------------------------------
#include <Bridge.h>
#include <HttpClient.h>
#include <Console.h>


void setup() {
  Bridge.begin();
  Console.begin(); 
  while (!Console) {
  }
  Console.println("Inizio"); 
}

void loop() {
  HttpClient client;
  client.get("http://mxxxxxxxx/luca/examples/like3.php");

  while (client.available()) {
    char c = client.read();
    Console.print(c);
  }

  Console.flush();

  delay(5000);
}
-----------------------------------------

Questa e' la risposta del server

m.msn.unifi.it:80 151.44.64.150 - - [19/Sep/2013:16:17:02 +0200] "GET /luca/examples/like3.php HTTP/1.1" 200 394 "-" "curl/7.29.0"

Budenza Demo 1994


Frugando su Internet ho trovato questa demo scritta nel 1994 da un paio di miei amici (tanto per dare l'idea era scritta per DOS e sviluppata su 386 e 486 per le VGA)
L'aspetto ancora piu' curioso e' che all'epoca Internet era (in Italia) ancora sostanzialmente sconosciuta ed infatti sono riportati gli indirizzi mail in formato FIDO-Net (BBS Telin)

All'epoca ne seguii di riflesso lo sviluppo (conoscendo anche alcuni trucchi che sono stati utilizzati per gli effetti grafici) e non mi sarei mai aspettato di metterla in esecuzione 19 anni dopo in una Debian Box








Elettronica in un telefono

Per tentare di recuperare un po' di elettronica ho smontato un telefono da tavolo
Con mia grande sorpresa la scheda si presentava come nella foto sottostanti

In pratica di elettronica discreta sono presenti solo

n.1 A7275AL-A52533
n.2 switch
n.4 diodi
n.10 resistenze
n.1 buzzer

in buona sostanza tutte le funzionalita' (tastiera + telefonia) sono racchiuse in un solo chip con pochissimi altri componenti


a




Libsoup crash in Eclipse 64 Bit

Se si utilizza Eclipse 64 bit per Android c'e' un fastidioso bug nella gestione della libreria libsoup

Per correggere il problema si deve correggere il file eclipse.ini aggiungendo la seguente riga
-Dorg.eclipse.swt.browser.DefaultType=mozilla
informazione ripresa da https://bugs.eclipse.org/bugs/show_bug.cgi?id=405786

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f1c73b60ab1, pid=5477, tid=139761754089216
#
# JRE version: Java(TM) SE Runtime Environment (7.0_40-b43) (build 1.7.0_40-b43)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.0-b56 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libsoup-2.4.so.1+0x6fab1]  soup_session_feature_detach+0x11
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/luca/android/eclipse/hs_err_pid5477.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.

mercoledì 25 settembre 2013

Display 7Led con controller MAX72XX in Arduino


In questo post viene mostrato un esempio per utilizzare i display a 7 Led abbinati al controller MAX72XX con Arduino (in questo caso una Yun)

Sono necessari 5 connessioni
VCC
GND
DIN (al pin 7 nello sketch sottostante)
CLK (al pin D6 nello sketch sottostante)
LOAD o CS (al pin D5 nello sketch sottostante)

la libreria di riferimento e' LedControl che deve aggiunta all'ambiente di sviluppo per poter compilare correttamente lo sketch sotto riportato


Lo sketch effettua un conteggio alla rovescia e poi mostra una stringa


Curiosamente utilizzando un diverso display (con i numeri piu' grandi) le posizioni dei caratteri sono invertite usando il medesimo sketch




---------------------------------
#include "LedControl.h" 

// Arduino 
//D7 to DIN, 
//D6 to Clk, 
//D5 to LOAD, su alcuni Led il pin e' denominatoCS
//1 = numero del dispositivo, in questo caso e' uno solo

LedControl lc=LedControl(7,6,5,1); 
void setup() 
{
// Initialize the MAX7219 device 
lc.shutdown(0,false); // Enable display 
lc.setIntensity(0,10); // Set brightness level (0 is min, 15 is max) 


void loop() 

{
lc.clearDisplay(0); // Clear display register

 //setDigit
//il primo numero indica il display
//il secondo la posizione partendo da sinistra con valore 0
//il numero da mostrare
for (int s=5;s>=0;s--)
   {
  for (int t=9;t>=0;t--)
      {
      lc.setDigit(0,3,s,false);
      lc.setDigit(0,4,t,false);
      delay(1000);
      }
   }

lc.clearDisplay(0); // Clear display register

//usando setChar si puo' invece mostrare alcuni caratteri
lc.setChar(0,2,'L',false);
lc.setRow(0,3,0x1c);
lc.setChar(0,4,'c',false);
lc.setChar(0,5,'a',false);
  
delay(4000); 
}

lunedì 23 settembre 2013

Abilitare la funzionalita' di sviluppatore in Android 4.3

Nel menu' di Android 4.3 sono (a prima vista) scomparse le opzioni per mettere in modalita' sviluppatore il device Android..cio' vuol dire che si cerca il device con adb la lista risulta vuota

In realta' esiste un trucco piuttosto subdolo. Per prima cosa si deve andare in Informazioni sul tablet e cliccare ripetutamente sul Numero Build...compare un contatore (in una toast)


Alla fine appare la scritta "Sei diventato uno sviluppatore"

Adesso si puo' tornare indietro di un menu e compare Opzioni sviluppatore


E da qui si puo' abilitare l'opzione di debug

Ripreso da qui

LLama3 Anita

A seguito di questo post ho provato a vedere ho provato a vedere cosa accadeva ad utilizzare un modello specifico per la lingua italiana in...