giovedì 31 gennaio 2019

IBM Netfinity 3000 alias Flip

La mia collezione si e' arricchita di un IBM Netfinity 3000, tecnicamente una workstation anche se e' stata usata nel tempo anche come server

Ho un legame particolare con questo computer perche' e' stato il mio primo computer di lavoro "serio" come amministratore di rete (il nome di rete della mia macchina era Flip, i nomi di rete derivavano tutti dalla Banda di Topolino)




Si tratta di PIII a 700 MHZ. La cosa pregevole (ed attualmente rara da ritrovare) e' la presenza di un disco di sistema SCSI)


Non ricordavo che le schede ISA fossero montate su una riser board ma ricordavo perfettamente quanto pesa il computer


Attualmente e' montato Windows NT 4.0 SP6 ma non so se montero' qualcosa di piu' recente


mercoledì 30 gennaio 2019

SMS + DeepSleep + Interrupt in Particle Electron

Prendendo spunto dal post precedente in questo caso l'SMS e' inviato da una Particle Electron generato da un interrupt su pin D2 (in questo caso pero' mandando il pin a GND) partendo pero' da una condizione di Deep Sleep

===============================================================
#include "application.h"
#include "cellular_hal.h"
STARTUP(cellular_credentials_set("TM", "", "", NULL));

const char* phNum = "+39347107xxxx";
const char* msg = "Interrupt fired";
int  ret;


void setup()
{
 pinMode(D7, OUTPUT);
 pinMode(D2, INPUT_PULLDOWN);    // sets pin as input
}

void loop()
    {
    digitalWrite(D7, HIGH);

    System.sleep(D2,FALLING);
    Cellular.on();
    Cellular.connect();
    delay(20000);
    if (Cellular.ready() == true)
    {
      ret = Cellular.command("AT+CMGF=1\r\n");
      ret = Cellular.command("AT+CMGS=\"%s%s\",129\r\n",(phNum[0] != '+') ? "+" : "", phNum); //
      ret = Cellular.command("%s\x1a", msg);
      digitalWrite(D7, LOW);
      delay(5000);

    }

}

Invio SMS da Particle Electron da interrupt

Come gestire gli interrupt fisici su Particle Electron ed inviare SMS
Al contratio di Arduino Uno sulla Electron ci sono molteplici pin che possono essere settati per ricevere un interrupt. In questo caso e' stato scelto il D2


Per atttivare l'interrupt viene mandata una corrente di 3.3V sul Pin D2 e viene settata una variabile volatile in modo che possa essere intercettata anche fuori dall'interrupt nella funzione loop. La gestione di invio inoltre non puo' essere gestita all'interno della funzione di interrupt

per la compilazione

particle compile electron interrupt.ino --saveTo interrupt.bin
particle flash --usb  interrupt.bin 

Nel video si osserva la procedura

----------------------------------------------------------------
#include "application.h"
#include "cellular_hal.h"
STARTUP(cellular_credentials_set("TM", "", "", NULL));

const char* phNum = "+3934710xxxxx";
const char* msg = "Interrupt fired";
int  ret;
volatile bool invio;

void  IN4_ISR() {
      invio = true;
}

void setup()
{
  invio = false;
 pinMode(D7, OUTPUT);
 pinMode(D2, INPUT_PULLDOWN);    // sets pin as input
 attachInterrupt(D2, IN4_ISR, FALLING);  //RISING, FALLING, CHANGE
}

void loop()
    {
      if (invio)
      {
        digitalWrite(D7, HIGH);
        ret = Cellular.command("AT+CMGF=1\r\n");
        ret = Cellular.command("AT+CMGS=\"%s%s\",129\r\n",(phNum[0] != '+') ? "+" : "", phNum); //
        ret = Cellular.command("%s\x1a", msg);
        invio = false;
        delay(500);
        digitalWrite(D7, LOW);
      }

}

martedì 29 gennaio 2019

Electron Particle e SIM Mobile Things

Dopo un po' di tempo ho ripreso in mano la Electron Sparkle ed ho montato una scheda SIM di Things Mobile. Nel tempo peraltro e' andata persa l'antenna originale della confezione prodotta da Taoglass ed il dispositivo non puo' funzionare senza... ho preso questa antenna su Amazon come sostituzione


Per configurare la scheda con una SIM di terze parti si deve installare la parte CLI di Particle con

npm install --unsafe-perm --verbose -g particle-cli

(attenzione potrebbero esserci problemi nella compilazione della seriale)

particle update

Per effettuare il flash del firmware si deve premere RESET+MODE, poi rilasciare RESET e tenendo premuto MODE attendere che il led diventi giallo

Si deve scaricare il file Tinker.ino modificando l'APN che per Mobile Things e' TM

#include "cellular_hal.h"
STARTUP(cellular_credentials_set("TM", "", "", NULL));
ed impostando il KeepAlive

Queste righe dovranno essere comprese in ogni script che verra' caricato sul dispositivo

si compila quindi
particle compile electron tinker.ino --saveTo firmware.bin
particle flash --usb firmware.bin


Puo' essere necessario effettuare il claim del device ma prima si deve conoscere il seriale
Per effettuare l'identify si deve premere il pusante Mode fino a quando il led diventa blu.
A questo punto si lancia

particle identify

Ci si logga sul cloud
particle cloud login

e si efffettua il claim
particle device add device_ID


Per verificare che tutto sia andato a buon fine si puo' provare ad accendere il led blu da linea di comando con il comando (dove Geocell e' il nome mnemonico del dispositivo)

particle call Geocell digitalwrite D7,HIGH

per l'invio degli SMS Mobile Things non ha problemi ed e' sufficiente il seguente codice
-----------------------------------------------
const char* phNum = "+39347107xxxxx";
const char* msg = "Test message";
int  ret;

void setup() {
Serial.begin(115200);
ret = Cellular.command("AT+CMGF=1\r\n");
Serial.print("Return from message format = ");
Serial.println(ret);
ret = Cellular.command("AT+CMGS=\"%s%s\",129\r\n",(phNum[0] != '+') ? "+" : "", phNum); //
Serial.print("Return from phNum send = ");
Serial.println(ret);
ret = Cellular.command("%s\x1a", msg);
Serial.print("Return from message send = ");
Serial.println(ret);

}


void loop() {

}
--------------------------------------------------



lunedì 28 gennaio 2019

Installazione Linux su IBM Netvista 8307

Questo piccolo IBM NetVista aveva bisogno di una nuova vita ricominciando da Linux....ma c'e' stato qualche problema. La macchina e' un P4 2.8GHz Single Core, 1 Gb Ram, 40 Gb HD


Il primo tentativo e' stato quello di effettuare un boot da USB Drive....niente da fare...il BIOS non supporta supporti USB...comprati e masterizzati DVD per procedere

La seconda sorpresa....il CPU non e' una x86-64. Ovviamente avevo masterizzato una Crunchbang 64 bit....via con il secondo download ed la seconda masterizzazione

Inizia l'installazione e kernel panic. Niente APIC....in fase di avvio bisogna avviare Grub di andare NoApic


Ennesimo riavvio e messaggio esoterico ..riavvio



a questo punto non riesce ad identificare il modo grafico giusto come avviare l'installazione (ero partito fiduciosamente per l'installer grafico)...Imposto il 311 ed inizia l'installazione


Formattazione del disco fisso e.....drive rotto. Basta non e' giornata...e per una macchina del genere non so quanto valga la pena cambiare HD....a proposito...anche il DVD Rom e' risultato non funzionante

Breakout Level Converter per Arduino

E' sempre piu' comune trovare elettronica a 3.3V e puo' succedere di doverla interfacciare con dispositivi a 5V...tipicamente una porta seriale

Per non friggere tutto si usano i level converter

Si collegano due tensioni di riferimento a 5V (su HV e GND) e 3.3 V (su LV e GND) e poi si possono usare i rimanenti pin (che corrispondono a 4 canali) per trasferire il segnale in modo bidirezionale dal pin superiore (per esempio HV1 canale 1 ad alto voltaggio) al pin inferiore (per esempio LV1 canale 1 basso voltaggio)


Testare un transistor con un multimetro

Per testare il transistor 2N2222A ho usato un tester ProKit MT-1210. Questo tester ha una predisposizione per cui si puo' misurare direttamente il valore di hFE ovvero il guadagno in corrente continua

Inserendo Emettitore, Base e Collettore nei rispettivi alloggiamenti e selezionando la funzione hFE si ottiene una lettura di 228 (le impostazioni di misura del multimetro sono 10 microA sul collettore ed una Vce di 2.8V a 20°C)




A questo punto si puo' andare a consultare la scheda tecnica del transistor. Il grafico e' basato su una Vce di 10 V
e' quindi verificato il funzionamento del transistor

Debugger integrato ESP32S3

Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede  nell'ID USB della porta Jtag. Nel modulo...