GUIDA root tablet Android – Flytouch 8 / SuperPad VIII

Salve

Questa è la mia guida al volo per fare il rooting sul tablet Flytouch 8 (BC1003).

Cattura

Prima di cominciare bisogna dire che il rooting che ho effettuato è avvenuto con successo su Windows 7 32bit (sul 64bit non funziona causa driver mancanti).

Guida:

  1. Impostare la modalità “debug USB” dal menu “opzioni sviluppatore”
  2. Collegare il cavo alla USB superiore (vicino al jack audio) al proprio pc e aspettare l’installazione dei driver.
  3. Scaricare questo SOC, decomprimerlo e per comodità piazzarlo in C:
  4. Aprire un prompt dei comandi con start>cerca>cmd
  5. Digitare i seguenti comandi per entrare nella directory ADB:
cd C:\
cd SOC
cd ADB

Ora inizia il root vero e proprio:

Se il servizio ADB è già in esecuzione, killarlo dalla taskmanager.

ADB root
ADB shell mount -o remount,rw /system
ADB push su-3.0.3.2-efghi-signed /system/xbin/su
ADB shell chown 0.0 /system/xbin/su
ADB shell chmod 04755 /system/xbin/su
ADB shell mount -o remount,ro /system
ADB install -r Superuser-3.0.7-efghi-signed.apk
ADB shell mount -o remount,rw /system
ADB push su-3.0.3.2-efghi-signed /system/bin/su
ADB shell chown 0.0 /system/bin/su
ADB shell chmod 04755 /system/bin/su

Fatto!

Piccole aggiunte opzionali:

  1. aggiornate subito Superuser 
  2. modificate il build.prop in questo modo per sbloccare tutte le app dal playstore:
ro.product.model=GT-I9300
ro.product.name=GT-I9300
ro.product.device=GT-I9300
ro.build.product=GT-I9300

Seminario programmazione embedded #2

 

Il giorno 01/03/2013 si è tenuto, presso l’Università degli studi di Napoli “Parthenope”, il secondo seminario sulla programmazione embedded.

In particolare si è parlato di Arduino e di un paio di progetti fatti al volo.

Durante l’hangout ha partecipato il prof. Raffaele Montella da Chicago.

Allego codici sorgente utilizzati durante il seminario.

E ricordo, che il codice da utilizzare per cosm.com è possibile trovarlo registrandosi al sito.

Sensore temperatura LM35

void setup()
{
  //seriale aperta a 9600 baud
  Serial.begin(9600);
}

void loop()
{ 
  int analogPin=0; //pin analogico 0
  float sensor =0;  

  //leggiamo e convertiamo la temperatura dal pin 0 di arduino
  sensor = analogRead(analogPin);
  sensor = (5.0 * sensor * 100.0)/1024.0;
  //teoria: http://learn.adafruit.com/tmp36-temperature-sensor

  //stampa sulla seriale
  Serial.print("Temperatura: ");
  Serial.println(sensor);

  delay(1000);
}

LM35 + LCD

/*
 Demonstration sketch for Adafruit i2c/SPI LCD backpack
 using MCP23008 I2C expander
 ( http://www.ladyada.net/products/i2cspilcdbackpack/index.html )

 This sketch prints "Hello World!" to the LCD
 and shows the time.
 
  The circuit:
 * 5V to Arduino 5V pin
 * GND to Arduino GND pin
 * CLK to Analog #5
 * DAT to Analog #4
*/

// include the library code: http://learn.adafruit.com/i2c-spi-lcd-backpack/downloads
#include "Wire.h"
#include "LiquidCrystal.h"

// Connect via i2c, default address #0 (A0-A2 not jumpered)
LiquidCrystal lcd(0);

void setup() {
  // set up the LCD's number of rows and columns: 
  lcd.begin(16, 2);
  //seriale aperta a 9600 baud
  Serial.begin(9600);
}

void loop() {
  int analogPin=0; //pin analogico 0
  float sensor =0;  

  //leggiamo e convertiamo la temperatura dal pin 0 di arduino
  sensor = analogRead(analogPin);
  sensor = (5.0 * sensor * 100.0)/1024.0;
  //teoria: http://learn.adafruit.com/tmp36-temperature-sensor

  //stampa sulla seriale
  Serial.print("Temperatura: ");
  Serial.println(sensor);

  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  lcd.print(sensor);

  delay(1000);
}

Installazione interruttore su multimetro a pinza

Questo è un mio piccolo tutorial su come installare uno switch smd al mio nuovo multimetro.

Qualche settimana fa ho acquistato questo piccolo multimetro indicato per componenti smd.

Molto utile e poco ingombrante, funziona con due batterie bottone.

L’unica pecca è che una volta acceso si spegne da solo dopo 10 minuti.
Un pò troppo per la durata delle batterie, così ho deciso di installare un piccolo switch.

Il miglior posto per installarlo era sul lato, così ho praticato un piccolo foro con il mio dremel.
Fatto questo ho tagliato con una lama per bisturi, una delle due trace che portavano l’alimentazione dalle batterie verso la circuiteria.

Ho grattato via lo smalto tirando fuori il rame e ho saldato il tutto allo switch.

Et voilà!

2013-02-21 15.13.47 2013-02-21 15.13.56 2013-02-21 15.14.02 2013-02-21 15.14.09 2013-02-21 15.29.53 2013-02-21 15.33.01 2013-02-21 15.42.16 2013-02-21 15.42.23 2013-02-21 16.45.49 2013-02-21 16.49.28 2013-02-21 16.50.32 2013-02-21 16.50.41 2013-02-21 16.50.50

Dissipatore su router d-link 2740b

Con questo post vorrei farvi vedere come fare una piccolissima mod al vostro router 2740b.

Non è una mod necessaria, il router non soffre di surriscaldamenti, ma avendo il materiale per farla… l’ho fatta!

Avevo un vecchio dissipatore per schede madri e della pasta termica collante…

La colla termica è questa:

-10pcs-lot-Heatsink-Plaster-Viscous-Thermal-Conductive-Compounds-font-b-Grease-b-font-Glue-Sticy

Costa davvero poco su eBay.

Il risultato è questo:

2012-12-30 15.14.22

 

Ovviamente, il tutto, invalida la garanzia.

Flashing SPI scheda madre asus p5b-vm

Salve

Può capitare che negli anni la vostra scheda madre possa perdere qualche colpo o che voi caricate un bios errato.

Mi è capitato, recentemente, che la mia p5b-vm aveva un serio problema di avvio: monitor nero, ventole a go-go e si spegneva inesorabilmente dopo pochi secondi.

Non l’avevo mai toccata, non ho mai messo nè mano nè saldatore… può succedere, che negli anni, che le memorie si deteriorino.

Un problema simile lo avevo sulla mitica matrox g400, una volta al mese dovevo flashare il firmware interno!

Sulle schede madri, spesso e volentieri, il bios risiede in memorie della serie 25x e che al loro fianco vi sia un connettore… il connettore spi!

Esempio:

2012-12-29 11.45.53

Come potete vedere vi è una memoria MX25 e un connettore SPI

La pedinatura del connettore è questa:

SPI header

CS# (chip select) va messo a VCC.

Fatti i debiti collegamenti col vostro programmatore siete ora in grado di: pulire la memoria, programmare un nuovo bios e verificare la scrittura.

2012-12-29 12.57.562012-12-29 12.14.382012-12-29 12.12.53

 

Usate il programmatore che volete, volendo potete usare anche la porta parallela (se esiste ancora!!!) e ricordate che questo sistema può essere utilizzato su parecchie altre schede madri

Open AirQuality System

Open AirQuality System è un sistema di monitoraggio per la qualità dell’aria che sfrutta tecnologie open hardware.

Tale progetto è stato ideato da Andrea Esposito e realizzato con l’aiuto di Fabio Giansante.

Presentato durante lo scorso Hackaton (in occasione del DevFest Campania tenutosi nella nostra università 08-07/12/2012), ha guadagnato il secondo posto.

Questo articolo, scritto a due mani, spiegherà brevemente come si compone il sistema nelle sue parti essenziali.

>>Intervista<<

 

Andrea Esposito:


Supponendo di avere alcuni tipi di sensori di gas commerciali (ad esempio: http://www.futurlec.com/Gas_Sensors.shtml), abbiamo emulato una centralina fissa che rivelava parametri chimici del tipo: co, co2, o3, NH3, NOx, CNG, h2 etc etc

Il sistema si basa sulla scheda open hardware Arduino che, configurata come data collector, raccoglie le variazioni chimiche, percepite dai sensori, trasformandole in valori numerici.

Con semplici chiamate HTTP, il modulo ethernet presente sull’arduino, riesce ad inoltrare tutti i dati ogni x secondi.

Il webservice, facendo il parsing della query string, ha il compito di raccogliere le richieste e memorizzarle su un proprio database.

Grazie a delle API scritte ad hoc, è possibile rendere fruibile all’esterno qualsiasi informazione presente nel database.

Nel nostro caso, l’app Android era in grado di selezionare un area geografica (quartiere/città) ed ottenere informazioni, in tempo reale, relativi a quell’area.

Esempio: selezionando dall’app la città di Frittole (quasi 1500) posso ottenere tutte le informazioni della qualità dell’aria relativa alla centralina installata a Frittole.

Inoltre, se il sistema fosse migliorato, ipotizzando di avere molti campioni su una popolazione di centinai di centraline sparse un pò ovunque, l’apparato potrebbe saper indicare se sul sito X c’è un anomalia in termini ambientali.

Esempio: Se a Piovarolo, nell’ultimo periodo, ho ottenuto una crescita di gas metano, probabilmente ci potrebbe esser qualche discarica abusiva di rifiuti nelle vicinanze.

Tale “popolazione di centraline” potrebbe essere installata su automobili o mezzi pubbici e, legando opportunamente le informazioni raccolte a coordinate GPS, si potrebbe estendere il monitoraggio su aree geografiche più ampie.
Legando alcuni progetti pubblicati su Sebeto (“Tutorial: data logging con Arduino”+”Tuco: Targhetta elettronica a porta con Arduino”) ho potuto prototipare un codice che mi ha permesso di emulare dati fittizzi (in modo random) e inviarli tramite comandi GET.

Nel nostro caso ho usato un oggetto String che mi ha portato via parecchia RAM (portandomi in alcuni casi ad un miserabile overflow) ma che mi ha semplificato la scrittura del codice:

String buffer="";
buffer="GET /getvalueair.json?Quartiere=Arzano&CAQ1="+(char)tempc1;
buffer+="&S02="+(char)sensore2;
buffer+="&O3="+(char)sensore3;
buffer+="&PM10="+(char)sensore4;
buffer+="&NO2="+(char)sensore5;
buffer+="&CO="+(char)sensore6;
buffer+=" HTTP/1.1";   
Serial.println(buffer); //stampa su seriale
client.println(buffer); //invio comando GET

Tale codice può essere alleggerito preferendo di gran lunga questo (da debuggare):

//    client.print("GET /getvalueair.json?Quartiere=Arzano&CAQ1=");
//    client.print(tempc1);
//    client.print("&SO2=");
//    client.print(sensore2);
//    client.print("&O3=");
//    client.print(sensore3);       //Nota: questa era l'idea originale PRIMA dell'utilizzo dell'oggetto String ma...
//    client.print("&PM10=");       //...bug 3: controllare le NewLine!!!
//    client.print(sensore4);
//    client.print("&NO2=");
//    client.print(sensore5);
//    client.print("&CO=");
//    client.print(sensore6);
//    client.println(" HTTP/1.1");

Andrea Esposito

blackstufflabs.com

 

 

 

Fabio Giansante:


FRAPI è un RESTful API Framework che permette agli sviluppatori di creare in modo semplice e rapido RESTful APIs facili da consultare e altamente performanti. FRAPI si divide in due parti specifiche: l’interfaccia di amministrazione e l’API pubblica.

admin-frapi-4

Questo particolare framework permette, con le apposite funzioni dei vari linguaggi di programmazione di cui si fa utilizzo, di leggere ed elaborare dati presenti su un server.

L’interrogazione tramite metodo GET o POST può restituire vari formati di file, uno dei più utilizzati è il file JSON.
1

Come si può notare, in questo caso, l’interrogazione restituisce una serie di dati in un unico record, ma, ovviamente, c’è anche la possibilità di avere una serie di record, ovvero un’array.

Il processo di comunicazione quindi parte dal “richiedente” (app,software, ecc..); il server, che nella maggior parte dei casi preleverà i dati da un database, restituisce una risposta.

Nel caso della nostra applicazione, possiamo evidenziare due passaggi fondamentali :

1) La centralina acquista i vari dati della qualità dell’aria e li invia al server in rete, che provvederà a memorizzarli in una database.

2) L’app ”interroga” l’apposita API che restituirà i dati tramite un file json da leggere ed elaborare.

Uno dei principali vantaggi di una tale infrastruttura è che non c’è tantissimo codice da scrivere.

Tralasciando la parte relativa alla grafica (layout, immagini, bottoni ecc), per elaborare il file JSON, bastano davvero poche righe di codice :

2

La parte fondamentale è nelle prime tre righe, dove :

– la variabile “url” è l’indirizzo tramite il quale si ricava il file JSON

– la funzione “readJSON” prende in input l’url e esegue una sorta di “scansione” del file JSON

– “JSONObject jso” istanzia un oggetto di tipo JSON da poter elaborare

– per effettuare l’elaborazione, bisogna conoscere i vari nomi dei campi che compongono il record, in questo caso vediamo che con la funzione “jso.getString(“Quartiere”)” si estrapola un campo di tipo string identificato col nome “Quartiere”.

L’applicazione android Open AirQuality System potenzialmente potrebbe diventare un utilissimo servizio pubblico a disposizione dei cittadini. La prospettiva di funzionamento è molto semplice e la descriviamo tramite un esempio :

Il sign. Mario Rossi vive nei pressi del Centro Direzionale; ha deciso che è giunto il momento di fare un po’ di footing, ma il suo medico curante gli ha vivamente consigliato di praticarlo quando il livello di CO2 (anidride carbonica) nell’aria è davvero minimo. Bene, il sign. Rossi allora attiva l’app. che localizza la sua posizione tramite gps e mostra in tempo reale i vari parametri della qualità dell’aria nella zona localizzata, in modo tale da poter decidere se è opportuno o meno scendere.

1

C’è inoltre la possibilità di poter scegliere, mediante una select, tra i vari quartieri “sotto-analisi”, in modo tale che se a Capodimonte o altrove i valori sono ottimali, il sign. Rossi può decidere dove è più opportuno svolgere la sua attività fisica.

Fabio Giansante

0124/0028

fabio.giansante@studenti.uniparthenope.it