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
giovedì 31 gennaio 2019
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);
}
}
===============================================================
#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
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);
}
}
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));
Queste righe dovranno essere comprese in ogni script che verra' caricato sul dispositivo
si compila quindi
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
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
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 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)
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() {
}
--------------------------------------------------
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
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
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)
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
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
Iscriviti a:
Post (Atom)
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...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...