spb16ch: modulo I2C relè 16 canali DC 24V con RTC e EEPROM

Spb16ch è una scheda elettronica progettata da Massimo Poletti, completamente Open Source, interfacciabile con BUS I2C al Raspberry.

La scheda ha le seguenti caratteristiche:

  • 16 RELE’ di potenza NA-CM-NC
  • 1 RTC (Orologio)
  • 1 EEPROM (Per salvataggio dati di configurazione,ecc …)
  • BUS DI ESPANSIONE I2C
  • Alimentazione a 24Vdc

Può essere utilizzata in diversi campi di applicazione tra cui: domotica e illuminazione, impianti irrigazione, industriale PLC, smart home, ecc..

Continue reading “spb16ch: modulo I2C relè 16 canali DC 24V con RTC e EEPROM”

rfidDaemon: demone per la gestione di un rfid reader

Logo Rfid

Alcune settimane fa girovagando su Amazon mi sono ritrovato ad ordinare per sbaglio un piccolo lettore di tag rfid. Dato il basso costo e dato che non avevo mai avuto esperienze nell’utilizzo di un oggetto del genere ho pensato di non annullare l’ordine in modo da poterci fare un po’ di esperimenti, magari usandolo con uno dei miei Raspberry Pi.

Continue reading “rfidDaemon: demone per la gestione di un rfid reader”

Sostituzione Hard Disk guasto su Debian Squeeze e ripristino sistema (e tre!!!)

Di seguito alcuni appunti ulteriori riguardo la sostituzione di un’Hard Disk guasto sul mio mini sistema Debian Squeeze trattato qui Sostituzione Hard Disk guasto su Debian Squeeze e ripristino sistema (secondo turno).

Può capitare che l’UUID della partizione di root e di swap sul nuovo disco siano diversi rispetto a quello vecchio e per questo una volta ripristinato grub il sistema non riesca a partire.

Per risolvere il problema bisogna, una volta che grub propone il profilo con cui avviare, premere il tasto e per entrare in edit mode e qui sostituire l’UUID del disco di root con il nome del device (es: /dev/sda2), fatto questo si avvia premendo ctrl-x.

Il sistema parte e una volta avviato andrà modificato il file /etc/fstab in modo da sostituire i vecchi UUID delle partizione di root e di swap.

E’ possibile recuperare il nuovo uuid per la partizione di root (nel mio caso /dev/sda2) con il seguente comando

tune2fs -l /dev/sda2 | grep UUID

Mentre per la partizione di swap viene visualizzato in seguito alla sua inizializzazione (nel mio caso /dev/sda1), attenzione il comando è distruttivo non sbagliate partizione:

mkfswap /dev/sda1

Adesso non ci resta che rigenerare la configurazione di grub con il seguente comando:

update-grub2

Adesso dovrebbe essere possibile riavviare il sistema in modo corretto.

 

Sostituzione Hard Disk guasto su Debian Squeeze e ripristino sistema (secondo turno)

Recentemente mi sono trovato ancora una volta ad avere problemi di hard disk sul mio mini server casalingo.

Quindi dopo avere recuperato un hard disk con cui potere sostituire quello guasto, ho ritirato fuori gli appunti che avevo annotato mesi addietro (Sostituzione Hard Disk guasto su Debian Lenny e ripristino sistema) per eseguire il ripristino del sistema sul nuovo disco.

Tutto è andato bene fino a che non sono arrivato a dovere ripristinare grub. Infatti adesso mi ritrovo grub2 installato sul sistema in seguito all’aggiornamento a Debian Squeeze, che per il quale non sono più valide le vecchie istruzioni.

Allora ho fatto un giro in rete e ho trovato la soluzione.

Ho ripristinato grub2 collegando il nuovo disco con il sistema già trasferito, sul mio notebook con Ubuntu 11.04, grazie ad un’adattatore ata-usb. Il disco viene riconosciuto come device /dev/sdb e la partizione con il sistema ripristinato è la /dev/sdb2. Ho impartito i seguenti comandi:

sudo mount /dev/sdb2 /mnt
sudo mount --bind /dev /mnt/dev
sudo chroot /mnt
grub-install /dev/sdb
sudo umount /mnt/dev
sudo umount /mnt

Adesso scollegato l’hd dal notebook e ricollegato sul mini-server questo è ripartito senza problemi 🙂

Android: abilitare a2sd+ da adb

E’ mia abitudine aggiornare la MIUI del mio Desire ogni settimana con l’uscita della nuova versione unstable.

In seguito all’aggiornamento ogni volta devo ripetere la procedura di riattivazione di a2sd+ come descrivevo qui HTC Desire: abilitare A2SD+ su MIUI.

Purtroppo però ultimamente dopo avere eseguito l’aggiornamento della MIUI mi era impossibile eseguire la procedura di riattivazione di a2sd+ perché si verificavano continui crash delle apps, compreso Android Terminal Emulator che usavo per impartire i comandi necessari. I crash continui presumo dipendano dal poco spazio rimasto nella partizione /data.

Per risolvere il problema ho provato a riabilitare a2sd+ da adb. Di seguito riporto i passi necessari:

  1. Riavviare in recovery mode con Clockworkmod
  2. dalla voce di menu mounts and storage montare le seguenti partizioni:
    • /system
    • /data
    • /cache (dovrebbe essere già montata)
    • /sdcard
    • /sd-ext
  3. Entrare in modalita shell da adb lanciando il seguente comando da terminale (è necessario l’Android SDK):
    • adb shell
  4. Ridefinire il path in questo modo:
    • PATH=’/sbin:/system/bin’
  5. Impartire i seguenti comandi per riattivare a2sd+:
    • system/bin/a2sd check
    • system/bin/a2sd reinstall (il telefono viene riavviato)
  6. Ripetere i passi 1, 2, 3, 4 e continuare con il seguente comando per terminare la riattivazione di a2sd+:
    • system/bin/a2sd cachesd (il telefono viene riavviato)

A questo punto, dopo il riavvio, a2sd+ dovrebbe essere attivo.

Io per precauzione, dopo avere riattivato a2sd+ da adb o ripetuto l’operazione in modo classico come spiegato qui HTC Desire: abilitare A2SD+ su MIUI.

Naturalmente nel caso decidiate di provare ad eseguire la procedura sopra indicata e il vostro amato telefono diventasse un costosissimo fermacarte, non mi assumo nessuna responsabilità 🙂

Android: riprogrammare sulla Miui il pulsante Ricerca per avviare Google Search

Sulla Miui viene assegnato al pulsante fisico di ricerca la propria applicazione. A me piace di più quella originale di Google e uso la seguente procedura per ripristinarla:
  • Riavviare in recorvery mode (clockworkmod)
  • Fare il mount /system
  • Con adb copiare il file GoogleQuickSearchBox.apk in /system/app (adb push GoogleQuickSearchBox.apk /system/app)
  • Fare l’unmount /system
  • Riavviare
Il file GoogleQuickSearchBox.apk è possibile scaricarlo da qui. Il file va decompresso prima di eseguire il push con adb

Android: installare suonerie, allarmi e notifiche della Sense dell’HTC Desire

Alcuni giorni fa ho scardinato il mio HTC Desire con Unrevoked3 e successivamente vi ho installato l’ultima MIUI unstable 1.8.5 (aggiornato poi alla 1.8.12).

Quello che subito mi è mancato sono state le suonerie e le notifiche che avevo sulla Sense della rom originale. Ho così cercato informazioni per creare un pacchetto update.zip che le contenesse per flasharle direttamente sulla rom Miui.

Il risultato è stato questo:

update_audio_sense_htc_desire.zip

Questo file l’ho flashato sul mio HTC Desire con Miui 1.8.12 partendo da recovery ClockworkMod ed è andato tutto bene.

Chi vuole può scaricarlo ed usarlo assumendosi tutti i rischi e pericoli. Quindi rendete inutilizzabile il vostro bel telefono non mi venite a chiamare 🙂

 

 

Android: creare un file update.zip

Mi appunto qui di seguito i passi per creare un file update.zip da utilizzare per flashare un aggiornamento/modifiche su una rom Android:

  • Creare una directory di lavoro e posizionarcisi dentro
  • Creare la struttura di directory/files da copiare/applicare alla rom
  • Creare la direcrotry META-INF/com/google/android e copiarci dentro il file update-binary
  • Sempre in META-INF/com/google/android creare il file updater-script contenente le istruzioni per applicare le modifiche alla rom
  • Creare un file zip con il nome update.zip inserendovi tutto il contenuto della directory di lavoro creata
  • Eseguire il sign del file update.zip nel seguente modo:
    • Scaricare il seguente il file Auto-Sign v0.65 e decomprimerlo
    • Copiare il file update.zip nella cartella di Auto-Sign
    • Eseguire il seguente comando (si suppone che sia installato Java sul proprio sistema):
      • java -jar signapk.jar testkey.x509.pem testkey.pk8 update.zip update_signed.zip
A questo punto abbiamo ottenuto il file update_signed.zip che dovrà essere rinominato in update.zip, copiato sulla sdcard e flashato da recovery clockworkMod.
Queste note sono state scritte prendendo spunto da qui.

Android: sintassi e comandi per il file updater-script di un file update.zip

Di seguito riporto la sintassi dei comandi da inserire nel file updater-script di un file update.zip utilizzato per flashare gli aggiornamenti su una rom Andorid. Il tutto è stato ripreso da XDA, da qui e qui.

Mounting Partition

MTD
mount("MTD", "system", "/system");
mount("MTD", "userdata", "/data");
mount("MTD", "cache", "/cache");
mount("MTD", "sdcard", "/sdcard");
EMMC
mount("ext4", "EMMC", "/dev/block/mountpoint", "/system");
mount("ext4", "EMMC", "/dev/block/mountpoint", "/data");
mount("ext4", "EMMC", "/dev/block/mountpoint", "/cache");
 
mount("ext3", "EMMC", "/dev/block/mountpoint", "/system");
mount("ext3", "EMMC", "/dev/block/mountpoint", "/data");
mount("ext3", "EMMC", "/dev/block/mountpoint", "/cache");
 
mount("ext4", "EMMC", "/dev/block/mmcblk0p23", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p24", "/data");
mount("ext4", "EMMC", "/dev/block/mmcblk0p25", "/cache");

Unmounting Partitions

unmount("/system");
unmount("/data"); OR unmount("/userdata");
unmount("/cache");
unmount("/sdcard");

Format Partitions

format("MTD", "system");
format("MTD", "cache");
format("MTD", "data");
format("MTD", "boot");
 
format("ext4", "EMMC", "/dev/block/mountpoint");
 
format("ext3", "EMMC", "/dev/block/mountpoint");
 
format("ext4", "EMMC", "/dev/block/mmcblk0p23");
format("ext4", "EMMC", "/dev/block/mmcblk0p24");
format("ext4", "EMMC", "/dev/block/mmcblk0p25");
format("ext4", "EMMC", "/dev/block/mmcblk0p22", "/boot");

Copy files from .zip file to phone partition or sd card:

package_extract_dir("Source", "Destination");

Example:

package_extract_dir("system", "/system");
package_extract_dir("data", "/data");
package_extract_dir("sdcard", "/sdcard");

Output a line of text:

ui_print("Text Here");

Delete a file:

delete_recursive("file/path");
delete("/path/to/file");

Run Program

run_program("command", "parameter_1", "parameter_2" [, "parameter_2"[, ... ] ] );

Example:

run_program("/sbin/busybox", "umount", "/sd-ext");

Symbolic Link

symlink("source", "destination")

Example:

symlink("/data/etc/hosts", "/system/etc/hosts")

HTC Desire: abilitare A2SD+ su MIUI

Di seguito riporto i passi che utilizzato per abilitare A2SD+ sulla Miui unstable 1.8.5 installata sul mio HTC Desire.

A2SD+ risolve il problema della poca capienza di memoria del Desire destinata alle applicazioni andando ad installare quest’ultime sulla scheda SD in una partizione ext3 appositamente dedicata.Quindi mi sono munito di una nuova scheda SD da 8GB calsse 4 l’ho partizionata utilizzando il seguente metodo:

  1. Disinstallare tutte le applicazioni escluso quelle per noi più importanti
  2. Assicurarsi che le applicazioni rimaste non siano installate sulla SD, eventualmente spostarle sul telefono
  3. Inserire nel telefono la nuova scheda SD vuota da partizionare (se non è vuota tutti i dati andranno persi)
  4. Installare Rom Manager
  5. Da Rom Manager partizionare la scheda SD in modo da creare la partizione ext3 per A2SD+ scegliendo la dimensione desiderata (io ho scelto 512MB). Il telefono verrà riavviato e verranno create le partizioni, al termine del partizionamento verrà ancora una volta riavviato. Se tutto è andato bene andando nel menu Impostazioni/Sistema/Scheda SD e memoria dovreste trovare una videata simile alla seguente che indica lo spazio totale e disponibile per A2SD+

Abilitare A2SD+ (tratto da Nexus-Lab):

  1. Installare Android Terminal Emulator dal web market
  2. Avviare Android Terminal Emulator
  3. Digitare su (verranno chiesti i permessi di root)
  4. Digitare system/bin/a2sd check
  5. Digitare system/bin/a2sd reinstall (attendere la fase di installazione e il successivo riavvio automatico)
  6. Riavviare Android Terminal Emulator
  7. Digitare su verranno chiesti i permessi di root
  8. Digitare system/bin/a2sd cachesd (attendere la creazione della cartella su SD e il successivo riavvio automatico)

Le applicazioni presenti sul telefono sono state spostate sulla partizione ext3 della scheda SD liberando la memoria interna del telefono. Da ora in poi andranno a finire dentro la partizione ext3 anche tutte le nuove applicazioni che verranno installate.

E’ da tenere presente che i passi sopra indicati per abilitare A2SD+ vanno rieseguiti ogni volta che viene installata una nuova versione della rom Miui da full wipe o da wipe cache e davilcache.

Le operazioni sopra indicate sono state eseguite su un HTC Desire scardinato con Unrevokerd3 (come descritto qui) e con una Rom Miui unstable 1.8.5. Site consapevoli che quanto descritto sopra non è a prova di brick e quindi se incasinate il vostro prezioso smart phone sono cavoli vostri 🙂

Come ultima cosa ho utilizzato il pc per copiare tutti i dati della vecchia scheda SD su quella nuova.