MODBUSDevManager

Modbus1Pacchetto composto da una libreria di comunicazione e dalla relativa GUI per la gestione dei profili di una serie di dispositivi di misura e conteggio multicanale, entrambi scritti in C#.

Il programma prevede la possibilità di caricare, salvare e clonare da un dispositivo ad un altro i profili di configurazione dei contatori una volta che questi sono stati personalizzati per gli utilizzatori su cui sono stati montati (di solito barche).

Come valore aggiunto, l’editor permette la modifica e il controllo di coerenza di ciascuno dei parametri presenti nel profilo, e la lettura in tempo reale dei valori misurati.

SMaSher

Questo è un aggeggino molto simpatico destinato a sostituire gnokii come software di pilotaggio dei modem GSM sui nostri sistemi di invio di SMS di allarme e segnalazione.

Scritto in java, gira sotto linux, se ne sta buono buono in background, legge da una tabella MySQL i messaggi da inviare, e provvede ad inserire in una seconda tabella gli eventuali messaggi ricevuti dal/dai modem (di suo ne gestirebbe un gran numero, ma il numero di porte seriali era limitato all’epoca… USB non era ancora molto diffuso, e quindi si doveva andare di porte COM legacy).

Niente screenshot, dato che SMaSher non aveva nessun tipo di interfaccia utente.

E a proposito di modem GSM… Il maledetto formato PDU!

PSXScope

psxinterfaceQuando ho messo per la prima volta le mani sulla PlayStation, il suo controller mi è piaciuto parecchio, tanto che avevo pensato di utilizzarlo anche altrove. Mi sono messo a cercare informazioni sul protocollo utilizzato per la comunicazione con la console, ma non ho trovato un bel niente!

Mi sono quindi fatto prestare un oscilloscopio (lo Zeroplus LAP-C è arrivato molti molti molti anni dopo), e ho cominciato a sbrogliare il protocollo a mano.

Il programma in questione (che poi ho usato anche per altro, dato che di fatto non era altro che un analizzatore logico) mi ha aiutato psxinterfacehwmolto nel reverse engineering, dato che i due canali dell’oscilloscopio non erano sufficienti. Il programma, assieme ad una interfaccia hardware (rigorosamente cablata su millefori, come quasi tutti i miei prototipi… adoro l’effetto gomitolo di lana dopo che è stato aggredito da un branco di felini :) ) connessa alla porta parallela del PC, alla playstation e al joypad, può generare un’arbitraria sequenza di dati su ogni piedino di uscita, catturando nel contempo lo stato di tutti i segnali presenti sul controller.

PG308Reset

Schermata di PG308reset Lo scopo di questo programmino era quello di resettare il contatore copie delle stampanti laser Laserjet III compatibili e derivate, come ad esempio la Olivetti PG308, che possedevo.

Queste stampanti hanno una piccola cartuccia su cui viene scritto il contatore delle copie stampate. Quando il contatore raggiunge le 10000 copie, la stampante smette di funzionare fino a quando non si installa un nuovo drum (e una nuova cartuccia).

Questa chiaramente è una pessima idea, e il fatto che io abbia dismesso la mia stampante in condizioni perfette con il drum a quota oltre 72000 copie lo dimostra chiaramente :)

Bastava connettere la cartuccia alla porta parallela del PC con un cavo fatto apposta, cliccare su PROGRAM e il contatore ritornava a zero.

Ovviamente sulla nuova stampante (samsung CLX-3175fn… la peggior stampante che io abbia mai avuto!) c’era un sistema analogo ma molto più infido, con chip sulle singole cartucce, sul drum, e a bordo della scheda madre, che impediva non solo di inserire cartucce compatibili, ma anche di ricaricare quelle originali. Ma altrettanto ovviamente non mi faccio certo rubare così i soldi da samsung e quindi praticamente all’istante, alla faccia della garanzia, dopo due sacrosante legnate per togliere la fiancata, ho aggiunto un interruttore che tiene in write protect la eeprom interna, impedendo al firmware di scrivere i contatori. Problema risolto. Se volete info su quest’ultimo intervento (fattibile abbastanza semplicemente su un gran numero di stampanti che usano eeprom standard per salvare le informazioni) fatemi un fischio.

AxeKey e AxeKey Programmer

Primo prototipo della chiave hardware

La AxeKey è una chiave hardware su porta parallela per la protezione di software.

La chiave mi è stata richiesta dalla Geo&Soft di Torino ed è stata realizzata con l’oramai dimenticato PIC16C54 e con uno dei primi sistemi di sviluppo di Microchip arrivati in Italia.

La chiave è dotata di 64 bytes di payload salvati in eeprom interna, e di un certo numero di funzioni (sia challenge-response che di calcolo) a bordo. Ho sviluppato anche le necessarie librerie per permettere al software da proteggere di chiamare le funzioni a bordo della chiave.

Dialog del programmatore per la chiave

Il committente non ha fatto poi uso della eeprom interna, quindi il software di programmazione l’ho scritto in un secondo tempo, per un utilizzo personale della AxeKey.