Siglent bench multimeter remote programming using Python

Lately I decided it was time to buy my first bench multimeter. Based on my idea of budget and requirements my choice went to the Siglent SDM3065X.
I decided for the 6 1/2 digits version because of its much higher accuracy compared to the 5 1/2 and 4 1/2 versions (and it should also have a slower calibration drift).

Many of the features, goodies and shortcomings of the SDM3065X/55X/45X have already been shown in youtube reviews. I’m very happy with my new DMM so far.

Among the well known and much advertised advantages of a bench multimeter over a portable one, such as accuracy, display size and brigtness, mains powered and always available, etc etc.. there is one feature in the recent bench DMM’s which is not so much talked about, but in my opinion very important and useful: the remote programming feature.

It allows you to write any algorythm that uses your measures (the most obvious being monitoring and data logging), and if your bench power supplies and electronic loads also allow for remote programming, you’re pretty much in control for implementing highly automated test workflows.

The SDM3065X, once connected to the LAN via ethernet port, will expose a SCPI service (documented here) usable by client applications. It can be accessed via USB too, but I find it less handy than a network connection.

To use it, you simply connect via TCP to the DMM’s IP address and start issuing commands and getting results. But there are libraries that make it much easier. The reference library is National Instrument’s “NI Visa”, in my case I used Python to give it a try (libraries: pyvisa + pyvisa-py).

Since I was able to get up and running much quicker than I expected, I decided to make an article so others may try and approach the automated and long repeated test practice for their own stuff.

Why/when using remote measurement?

Imagine the following example scenarios:

  1. You have built a power supply and decided to enclose it in a plastic box because you think it won’t generate heat for the usage it will serve. But before sending it to your friend who asked you to build it, you’d like to verify your assumptions.
  2. You have a defective power supply and need to leave it on for a long time to be able to catch the glitch.
  3. You have built your new audio amplifier and you’d like to make sure it can handle a certain load with a full 100% duty-cycle.
  4. Your mains voltage is fluctuating a bit too much and would like to verify that.

In all those cases you need to be able to do repeated measures of your variable (temperature, voltage, current, …), in a dependable way and for a potentially very long time (i.e. some days), and review the results at the end of the test session without losing any data. in other words you need a database for storing all the measured data and be able to do your stats on that.

You can easily accomplish this using your computer, improving the quality of your projects when needed, even if you’re a hobbyist maker (like I am) because we all want to do quality stuff when we need it.

Example results preview

I wanted to measure the voltage stability of a LM317 based variable power supply:

First hour of logging:

So far so good, but look at what happened during the night:

We can safely say that we had a drift in the output voltage after a few hours. Such effect is due to several possible causes, including drift in temperature (not only in the device under test, but partly also in your DMM!), knobs & pots, LM317 parameters, …

The overall voltage variation is about 6 mV in 12 hours, negligible in most use cases, but would I have been able to detect and measure it without such a feature? More importantly, now I know that my PSU will drift no more than approx. 12 mV / day, which is something I can take into account form now on in my projects.

Setting up your environment

To get up and running using my Python setup you’ll need to install the following tools:

  • PyCharm CE, a full featured Python IDE (on Windows you may need to install Python too)
  • DB Browser for SQLite, a graphical tool to browse SQLite database files
    • simple graphics included
    • CSV export and much more

My environment is an Apple M1 Macbook Air. Some details on your procedure may differ a bit from mine.

Now connect your SCPI enabled DMM to your network. Setup its TCP/IP to have it added in your network. Assuming you’re using DHCP, you’ll want to check for its successful IP address assignment (either in the DMM’s settings panel or in your router DHCP leases page). No IP address -> no connection for sure, so have this done as your first step!

Python project setup in PyCharm

Let’s now create a new Python project from PyCharm. Menu “File -> New Project…” will open the following popup:

where I’d suggest you to select “New Virtualenv environment” like you see in the above screenshot. This will keep the downloaded libraries local to the workspace, making your project more easily portable to other computers. It will also stabilize the interpreter and libraries versions for your project so you won’t experience unexpected breaking changes due to libraries updates at system level.
The Location field sets the project’s root folder. Once you’ve chosen your best fitting folder, click the “Create” button (bottom right), that should open your new project workspace.

Our Python program will use pyvisa (https://pyvisa.readthedocs.io/en/latest/index.html) and pyvisa-py (you don’t need to install NI Visa thanks to pyvisa-py, an open source replacement to the NI Visa library).

To install the libraries, just click the “Python Packages” bottom tab and search for pyvisa and pyvisa-py:

and click on the “Install” button that you’ll find on the right side of the descriptive panel.

Make sure you install at least pyvisa, pyvisa-py, psutil and zeroconf.

Once done you’re ready to connect to your instrument.

Connecting to the DMM

First thing first, try this:

import pyvisa

rm = pyvisa.ResourceManager('@py') # '@py' tells pyvisa to use pyvisa-py as backend library
resources = rm.list_resources()
print(resources)

You should see an output like this:

('TCPIP::192.168.1.232::INSTR',)

which means your instrument has been found! If you have more than one, the output tuple will show more entries. Now let’s connect to our instrument and get its IDN which is the identification string:

for resource in resources:
    instrument = rm.open_resource(resource) # this will connect and return an object representing our DMM
    instrument_id = instrument.query('*IDN?').strip() 
    print(instrument_id)

If we have only one instrument we don’t really need a for loop but let’s focus on the rest of the code first.

Each resource is a string, i.e. ‘TCPIP::192.168.1.232::INSTR’.

By calling rm.open_resource(resource) we are connecting to the DMM and get an object representing it, which we are assigning to the instrument variable.
By querying ‘*IDN?’ we are asking the instrument to return its identification string.

The print output will be something like the following if you’re connecting to a Siglent DMM:

Siglent Technologies,SDM3065X,<my DMM serial>,3.01.01.10

which is a unique string.

In general, your LAN may have more than one instrument, even if not today.

Your instruments are likely be configured via DHCP so to keep the network configuration easier. Therefore your resource string ‘TCPIP::192.168.1.232::INSTR’, is not a good identifier for your multimeter.

That’s the reason we are keeping the for loop, because we’re adding the following to our code:

import pyvisa

rm = pyvisa.ResourceManager('@py') # '@py' tells pyvisa to use pyvisa-py as backend library
resources = rm.list_resources()
multimeter1 = None # here we'll assign our multimeter instrument
for resource in resources:
    instrument = rm.open_resource(resource) # this will connect and return an object representing our DMM
    instrument_id = instrument.query('*IDN?').strip() 
    if instrument_id == 'Siglent Technologies,SDM3065X,<my DMM serial>,3.01.01.10':
        print('Using multimeter 1: ' + instrument_id)
        multimeter1 = instrument

# my test code starts here...

This allows us to find our DMM by its unique ID and assign it to our variable multimeter1. The for loop will be good for when we’ll add more instruments and we’ll need to decide which is our multimeter A and which is our multimeter B.

Requesting measurements

Let’s now ask our multimeter to read a DC voltage. This is as easy as a single line of code:

voltage_string = multimeter1.query('MEAS:VOLT:DC? AUTO').strip()

which will print something like:

+5.09841574E+00

And there it is! Our expected 5V DC reading! Please note we had to .strip() the string returned by the DMM as it has some trailing blank characters.

Saving our measurements to a database

So far so good: we have connected to our DMM and got values. Now to the data logging feature. Again this can be very easy. Python has a native ability to deal with sqlite3, a very lightweight and widespread file db used by a large number of programs.

Let’s create a database and create our table to store our measurements:

import sqlite3
dbconn = sqlite3.connect('my_measurements.db')
dbconn.execute('''CREATE TABLE IF NOT EXISTS MEASURES (id INTEGER PRIMARY KEY AUTOINCREMENT, meas_time 
TIMESTAMP NOT NULL, command TEXT NOT NULL, value TEXT NOT NULL)''')
dbconn.commit()

which creates (if not already there) a new file “my_measurements.db” containing our database, along with a table named “MEASURES”, containing an auto-increment field id, a timestamp meas_time, and our value, which is saved as text. All the fields are not null, meaning that the database will need all the values not-empty to insert a row.

Snippet to log indefinitely until you terminate the program:

import datetime
import time

while True:
    command = 'MEAS:VOLT:DC? AUTO'
    val_string = self.multimeter1.query(command).strip()
    value = float(val_string)
    now = datetime.datetime.now()
    dbconn.execute('INSERT INTO MEASURES (meas_time,command,value) VALUES (?,?,?)',
                   (now, command, value))
    print'Inserted measured value: ' + command + ', ' + str(value))
    dbconn.commit()
    time.sleep(5)

… and you’re done, although with a very basic setup!

To stop the program, hit the stop button in PyCharm’s “run” panel or click on the menu “Run -> Stop ‘main'”.

Viewing data

It’s time to open DB Browser for SQLite.

Click the “Open Database” button and select the database file.

It will open up the file and show the database structure. Now click on the “Data navigation” tab and select the MEASURES table and you’re done! You’ll see a panel like this:

You can sort by id descending, and refresh the data view by hitting the refresh button you see near the MEASURES table selector. On the right panel you can view a graph of your data, selecting meas_time as the X variable and value as the Y1 variable:

Graph of the selected records on the left panel.

You can filter the values on the table, the graph will update accordingly. You can also save the data as CSV and work on it using your preferred spreadsheet to add more graphics and functions to your analysis.

Caveats / further developments

VISA Timeouts

You might notice that sometimes you get timeout exceptions querying your instrument. To fix this you need to protect your query invocation in a try..except clause, like this:

command = 'MEAS:VOLT:DC? AUTO'
while True:
    try:
        val_string = self.multimeter1.query(command).strip()
        value = float(val_string)
        now = datetime.datetime.now()
        dbconn.execute('INSERT INTO MEASURES (meas_time,command,value) VALUES (?,?,?)',
                       (now, command, value))
        print'Inserted measured value: ' + command + ', ' + str(value))
        dbconn.commit()
        time.sleep(5)
    except pyvisa.errors.VisaIOError as v_e
        print(v_e)

This will print errors on the python console but won’t stop the program.

You also might want to do more complicated stuff than simply querying ‘MEAS:VOLT:DC? AUTO’.

Multi-statement tasks

The documentation shows multi line settings for many tasks. How to do that?

Your instrument object does not only have the query method, it also has write. Example:

command = 'CONF:VOLT:DC ' + scale
multimeter1.write(command)
command = 'SAMP:COUN 1'
multimeter1.write(command)
while True:
    # Faster than calling 'MEAS':
    command = 'READ?'
    val_string = multimeter1.query(command).strip()
    value = float(val_string)
    ....

Conclusion

This post is a bit longer than I initially wanted, but I hope it will serve for getting started on remote programming a SCPI bench DMM. I hope you’ll be able to setup your long test session and be succsessful in getting the most out of your DMM and your projects!

How to manually update a Shelly firmware using a OTA http request

I’m using Home Assistant to do a bit of home automation.
Shellies are, in my humble opinion, among the best devices out there.

For almost every new shelly I bought, I had to first do a firmware upgrade to have it detected and managed by Home Assistant’s Shelly integration, which doesn’t support older firmware versions.
The update procedure is usually very easy to do: you add the Shelly to your wifi domotics network, you access to its web interface (you need to know the device’s IP address) and it should already be warning you about the new firmware available, or you can use the Shelly app to find it and accomplish the upgrade in just a few clicks.
Once the firmware gets updated, your Home Assistant integration will find the device very quickly and show an “add” widget to get it under your zone in one or two clicks.

Sometimes, however, the Shelly firmware that comes with your new device might have difficulties in finding the new firmware online. It happened to me with a Shelly Plug S.

In that case you still have some viable options: one is adding your Shelly as MQTT device and have it working under Home Assistant via MQTT broker (i.e. the Mosquitto add-on), but if you prefer using the Shelly integration, you can get around the device’s autodiscovery issue and “instruct” it on what firmware you want it to download.

To accomplish this you can open the Shelly Firmware Archive link website, it will open up a page that looks like:

Enter the device’s IP address and the shelly type. It will let you choose the firmware version (usually the highest is the one you want). Once filled the form will generate the correct URL to paste into your browser’s address bar for telling your Shelly to do an OTA update.

In my case the device’s IP was 192.168.5.241 and the model “SHPLG-S”, the generated url for the firmware version I chose was: http://192.168.105.241/ota?url=http://archive.shelly-tools.de/version/v1.11.7/SHPLG-S.zip

Once pasted into the browser’s address bar you should see something like the following:

OTA update page view under Firefox 95

Just a few moments and your device will reboot with the supplied firmware!

It’s been very helpful for me so I decided to share it.

Hoping this helps.

73 de IU3JSX Marco

MoCA: alternativa di “fascia alta” agli adattatori powerline

Per chi vive in una casa relativamente grande ma non molto recente quindi priva di rete ethernet cablata – e anche dello spazio utile per poter passare i cavi nell’impianto, le due opzioni che vanno per la maggiore per estendere la propria rete domestica wireless sono:

  1. Estendere la portata del segnale radio wi-fi mediante rete mesh (o anche i vecchi “range extender”);
  2. Usare degli adattatori powerline per poi connettere ulteriori acess point wi-fi alla rete cablata così ottenuta (alcuni adattatori hanno l’access point incorporato).

Adattatori powerline

L’opzione 2 funziona solitamente meglio rispetto ad una rete mesh puramente wireless ed è più che sufficiente per esigenze generiche ovvero connettersi alla Rete per navigare, utilizzare i social dai propri smartphone/tablet e vedere film on demand sulle varie piattaforme.

Rispetto alle performance che offrirebbe una LAN ethernet da 1 Gbps (ovvero ping di 0.1 ms e troughput di 1000 Mbps full duplex), però, gli adattatori powerline sono ancora abbastanza lontani. Si parla infatti di latenze intorno ai 4-6ms e di banda reale dell’ordine del centinaio di Mbps in condizioni buone/ottimali, a volte anche meno (a casa mia ad esempio siamo sui 45 Mbps negoziati). Questo con adattatori che decantano 600 Mbps e oltre (ma anche 1000 o addirittura 2000Mbps), dotati di connettori gigabit ethernet. Ci sono molte review a riguardo, ad esempio questa che ci introduce all’argomento di questo post.

Gli adattatori powerline, per funzionare, si basano su appositi chipset che contengono un modem, necessario a trasformare la rete di distribuzione elettrica in una linea dati che permetta la comunicazione bidirezionale (o più in generale tra N apparati). Ovviamente la rete elettrica non è progettata per la trasmissione dati a larga banda, anzi è quanto di più lontano ci possa essere anche dal punto di vista realizzativo, quindi non si può certo biasimare questi chipset per non dare le stesse performance di un cavo ethernet, anzi possiamo dire che fanno un piccolo miracolo! Spesso marchi diversi montano lo stesso chipset, questo perché i relativi produttori non sono poi molti.

Adattatori MoCA

Scavando un po’ più a fondo emerge che in realtà oggi esiste almeno un’opzione 3, poco usata in Italia ma ben più comune in USA, ovvero usare il cavo TV (invece della linea 220V) come rete dati.
Lo standard usato per questo tipo di adattatori è chiamato MoCA, letteralmente “Multimedia Over Coax Alliance”, che oggi è alla versione 2.5.

Essendo attestata su un coassiale a 75 ohm con basse perdite di segnale e schermature solitamente adeguate, non dovrebbe stupire che le performance ottenibili siano ben superiori rispetto al powerline, tanto che come troughput saturano facilmente i 1000 Mbps full duplex dell’Ethernet! Addirittura, per connessioni tra più di due punti il coassiale riesce a reggere una banda aggregata ancora maggiore (MoCA 2.5: 2.5 Gbps).

Anche gli adattarori MoCA fanno uso di chipset, uno di questi è il Maxlinear MxL3710. Personalmente sospetto che sia uno dei pochi produttori in circolazione, nel senso che guardando le varie review degli atattatori MoCA noto che le interfacce web di configurazione si assomigliano tutte davvero moltissimo tra loro.

Rispetto alla Ethernet, comunque, le latenze restano comunque ben più alte e si attestano nei dispositivi attuali intorno ai 3 ms, che comunque è generalmente meglio rispetto a molti powerline.

Notare infine che, siccome le frequenze di lavoro vanno dai 1100 ai 1600 MHz, gli splitter presenti nella calata del cavo antenna dovrebbero a rigore avere un’adeguata banda passante. In molti casi essi lavorano fino alla banda satellitare (2500 MHz).

Ethernet vs Powerline e MoCA: Latenza

Vi potreste chiedere come mai una latenza così alta anche nel caso di adattatori MoCA visto che, come troughput, siamo a livelli di eccellenza. La risposta sta nella modulazione e demodulazione che deve essere fatta, ben più complessa rispetto a quella usata per i segnali elettrici Ethernet 1000Mbps. Il segnale viene modulato a frequenze tra i 1100 e i 1600 MHz (sopra la banda TV e sotto quella satellitare), suddiviso fino a 5 canali larghi 100 MHz ciascuno. La modulazione arriva ad essere la OFDM 1024-QAM quindi anche qui possiamo dire che il chipset il suo mezzo miracoletto lo fa. Il prezzo da pagare è un tempo di codifica/decodifica maggiore rispetto ad ethernet, dove la codifica è molto più semplice ed immediata.

Anche nel caso degli adatttori powerline la modulazione è la OFDM, con codifiche che variano a seconda del particolare standard e dei disturbi presenti, fondamentalmente si tratta di QAM (nel caso degli adattatori G.hn si arriva alla 4096-QAM).

Possiamo dunque dedurre che la modulazione OFDM+QAM è tra i principali responsabili per la maggior latenza rispetto allo standard Ethernet, mentre non ci sono dubbi che il troughput sia elevato, essendo la QAM in grado di trasportare molta informazione per simbolo e l’accoppiata OFDM+QAM massimizza la capacità trasmissiva anche in presenza di disturbi o attenuazioni.

Altre differenze da me riscontrate tra Powerline e MoCA

La mia rete di casa è suddivisa in due sezioni: la “primaria” ha switch, NAS, router verso Internet, access point (Mikrotik hAP AC Lite) e adattatore MoCA (prima era Powerline), la seconda -a valle dell’altro adattatore- vede un televisore e l’access point secondario (Mikrotik hAP Lite). Ho abilitato CAPSMan per aggregare la rete wireless dei due Mikrotik.
Dopo avere in uso gli adattatori MoCA da un po’ di tempo ormai (una coppia di Starlink 2525), posso dire che rispetto agli adattatori Powerline che ho avuto (ne ho cambiati parecchi nel tempo, gli ultimi sono degli Zyxel da 600Mbps dichiarati) ci sono alcune sottili differenze, oltre alla banda consistentemente vicina al livello ethernet, che mi fanno propendere per il sistema MoCA nonostante il prezzo sia più alto (attualmente intorno ai 140€ a coppia):

  • Stabilità del collegamento: Powerline è stabile ma ogni tanto -a volte qualche settimana a volte un paio di mesi e con tutti gli adattatori che ho avuto- la connessione si interrompe e ne devo riavviare uno (o a volte entrambi). Me ne accorgo perché i dispositivi collegati all’access point secondario perdono la connettività. Gli adattatori MoCA non sembrano manifestare mai alcun problema di continuità del collegamento.
  • Inoltre, cosa più subdola, con l’addattatore powerline alcuni dispositivi connessi via wi-fi all’access point secondario, come la mia stampante, poco tempo dopo l’entrata in risparmio energetico risultavano inaccessibili. Per poter stampare mi toccava spesso spegnerla e riaccenderla. Da quando sono passato a MoCA questo problema è scomparso, il che mi fa pensare a qualche limitazione a livello di L2 bridging che ora non c’è più, ma è difficile dirlo con certezza.
  • Calore: sicuramente dipenderà dalla marca e dal modello ma gli adattatori MoCA non scaldano affatto, i powerline invece diventano ben caldi al tatto, quindi sicuramente consumano anche di più.

Tabella riassuntiva

Le mie esperienze con i due tipi di adattatori sono così riassumibili:

Gigabit EthernetMoCAPowerline
Latenza [ms]0,12-33-6
Troughput reale [Mbps]10001000 su porta ethernet
(2500 su coax)
50~300
StabilitàRiferimentoOttimaMolto buona
Generazione di radiodisturbiNoNo (segnali confinati nel coassiale)Moderata e accettabile (ma non inesistente, per via di come è cablata la rete elettrica)
Tabella riassuntiva delle caratteristiche tipiche per tipologia di connesione

Conclusioni

Mi è sembrato utile condividere le esperienze che ho avuto a casa mia con vari tipi di adattatore che nel tempo ho testato. Questo articolo non vuol essere un paragone del tipo “questo è meglio di quello” nè tanto meno “questo va male a prescindere, quello invece va bene”.

Piuttosto, vorrebbe offrire una serie di considerazioni utili per farsi un’idea più chiara di cosa si può ragionevolmente pretendere da un certo tipo di adattatore.

Penso non ci sia dubbio che l’ideale, potendolo fare, sarà sempre passare un bel cavo Ethernet (es. Cat.5E o Cat.6) e connettere così le varie sezioni della rete domestica.

Non potendolo fare ci sono vari compromessi accessibili, con prezzi molto diversi tra loro e caratteristiche pure diverse. Per me che sono un radioamatore minimizzare i disturbi radio è molto importante e dunque preferisco passare i segnali all’interno di cavi schermati (il coassiale TV in questo caso) invece che nella rete elettrica.

Realizzazione di circuiti “Manhattan style”

Oggi voglio condividere una tecnica di costruzione di prototipi di circuito elettronico chiamata “Manhattan style”.

Mi ha colpito perché riesce ad unire la semplicità di realizzazione (un circuito è fattibile con pochissimi mezzi) alla possibilità di realizzare circuiti che lavorano in alta frequenza / radiofrequenza, o circuiti a larga banda, quindi ad esempio applicazioni radio, fino alle VHF e oltre. Inoltre, per costruzione, un circuito così realizzato ha piste di lunghezza minima, permettendo l’erogazione di una discreta potenza.

In rete c’è una certa quantità di documentazione in merito.

Segnalo subito gli ottimi articoli di Chuck Adams K7QO:

e il video che forse per primo mi ha avvicinato a questa tecnica, di W2AEW: #122: Electronic Circuit Construction Techniques: review of some prototype circuit building methods, che passa in rassegna vari metodi di costruzione di prototipi.

Se capite l’inglese, potete tranquillamente saltare il resto di questo articolo e navigare partendo dai link sopra.

Il “Manhattan style”.

Concettualmente è molto semplice. Si parte da una basetta per circuiti stampati vergine a faccia singola e da dei frammenti di basetta a faccia singola di area piccola che chiamiamo “zolle”, ottenuti ad esempio con una roditrice, una tenaglia o una tagliatrice.

Dato lo schema elettrico, ciascun nodo della rete elettrica corrisponde ad una “zolla”. Supponiamo di voler fare un partitore resistivo, come illustrato qui:

 

Partitore resistivo con i nodi evidenziati e cerchiati in rosso.

Come si vede, si identifica con una lettera ciascun nodo della rete elettrica, che corrisponderà ad una zolla Manhattan. Da qui alla realizzazione non serve usare alcun CAD, bastano solo il cervello e un po’ di buona volontà.

La basetta e le zolle tagliate con una tenaglia da lamiera.

Posizionare le zolle nella basetta e incollarle secondo la logica dello schema elettrico. Nei riferimenti si dice di usare una “super glue”, io preferisco la colla a caldo perché con il semplice posizionamento del saldatore si fonde nuovamente e diventa riposizionabile. Il raffreddamento è immediato grazie al rame.

 

Mettere una goccia di colla fusa sulla zolla e attaccarla alla basetta.

 

Basetta con le zolle incollate. La superficie di base sarà per noi un ottimo piano di massa!

 

Ora, procediamo con la saldatura delle nostre resistenze di partitore. Il saldatore dovrà avere una discreta riserva di potenza, credo che 40W siano sufficienti nella gran parte dei casi. Sagomiamo le resistenze nel seguente modo:

 

…e procediamo con la saldatura. Si inizia stagnando la zolla e successivamente i componenti:

 

 

Schema elettrico implementato, corredato di scritte a penna indelebile. Il layout dei componenti riflette fedelmente lo schema elettrico ed è facile da interpretare e seguire!

Nello spazio libero disponibile sul piano di massa si possono aggiungere, con una penna indelebile, informazioni utili come ad esempio la lettera della zolla, il numero di componente, note, ecc…

In presenza di circuiti integrati?

Nel caso di circuiti integrati si possono sagomare zolle più complesse, aiutandosi con appositi strumenti da taglio.

Ad esempio è facile realizzare una zolla per ospitare uno zoccolo per IC con pedinatura DIP:

Base per socket DIP8 realizzata tagliando lo spezzone di basetta con un trapano ad alta velocità Proxxon.

Una simile zolla va sempre incollata sulla basetta ospitante, mentre si possono saldare i collegamenti ai pin dell’integrato nelle “isole” di rame scavate su di essa, come si vede nella foto. Con un trapano ad alta velocità e un minidisco da taglio per metalli si ottiene facilmente questo risultato, asportando solo lo strato di rame della basetta. La distanza tra le “isole” visibile in foto è certamente sufficiente per operare con tensioni fino all’ordine dei 100V.

Una tecnica alternativa per gli IC: la “Dead Bug Technique”, ovvero la tecnica dello scarafaggio morto.

Potrebbe risultare difficoltoso ricavare una zolla per il montaggio di uno zoccolo per IC. In questo caso, possiamo sempre ricorrere ad un metodo ancora più semplice, che va sotto il nome di “dead bug technique”.

Come suggerisce il nome, si tratta di posizionare e incollare il chip “capovolto”, sulla basetta, ricordandosi che la pedinatura ora risulterà specularmente invertita!

Il risultato non è elegante da vedere ma funziona, ed è duro da battere se c’è bisogno di sfruttare al massimo la banda passante del componente.

Il difetto maggiore della tecnica “Dead bug” che ho riscontrato è la relativa debolezza dei pin dell’integrato, per cui bisogna stare molto attenti quando si opera su di essi. Non è facile saldare componenti direttamente sui piedini, ma con l’esperienza il problema scompare. Un altro difetto è la scarsa manutenibilità della parte di circuito così realizzata. La zolla con il socket è un’alternativa decisamente migliore da questo punto di vista.

 

Vantaggi dell’approccio Manhattan.

L’approccio è molto semplice e diretto, e ha l’enorme pregio di mantenere facile lo sbroglio del circuito e vicini i componenti tra loro.

Inoltre, se non si devono gestire frequenze altissime (VHF), è possibile disporre i componenti discreti lasciando ampio spazio per applicare la sonda di un oscilloscopio ed avere anche un circuito facilissimo da debuggare.

Ultimo ma non ultimo, no necessità di CAD o altri sistemi, no sostanze chimiche, nulla: solo una basetta e degli utensili da taglio.

 

73 de IU3JSX Marco

 

 

Weller Bp865Ceu 6W-8W saldatore portatile a batterie

 

Ho acquistato questo saldatore portatile a batterie come ausilio per fare saldature a stagno in punti dove non arrivano né la 220V né la 12V DC e mi sto trovando bene, quindi ho deciso di condividere una piccola recensione.
Per la cronaca, a casa ho una stazione saldante Weller WSD-81 (per me un vero gioiello, non saprei che difetto trovarle) e un saldatore a stilo tipo JBC da 40W, che mi porto in giro, mentre avevo anche un saldatore da 12V con attacco accendisigari che però ho buttato perché si scaldava poco e lentamente. Odiavo il fatto che avesse un puntale pesante quasi come il JBC, ma che non si scaldava mai. Perché non fare un puntale leggero che a quel punto si sarebbe scaldato prima e meglio?
Questo Weller Bp865Ceu fa esattamente questo. Puntale di massa ridotta che quindi si scalda (e si raffredda) velocemente, arrivando in temperatura molto rapidamente. Con solo 6-8W di potenza un puntale leggero è una scelta obbligata che mi trova pienamente d’accordo.
Ho subito rimpiazzato il puntale conico con l’altro in dotazione, quello “a cacciavite”, per aumentare la superficie di contatto con le parti da saldare.
Finora problemi zero, funziona benissimo. Facile da impugnare, pesa più o meno come le 4 batterie AA montate, quindi più di uno stilo tradizionale, ma questo non compromette la saldatura.
L’ho usato in barca per una modifica a un circuito direttamente dentro la sua scatola in PVC e mi sono trovato benissimo, riuscendo a dissaldare un componente vicino al bordo scatola, senza toccarlo, e saldare il sostituto senza bruciare nulla. La punta sottile facilita molto il lavoro, e la potenza ridotta qui è anch’essa un vantaggio: aiuta a fondere solo la parte a contatto senza dissaldare componenti adiacenti. Il cappuccio permette di riporre il saldatore nella cassetta senza il rischio che si possa accendere. Ottimo. Ho tolto il JBC dalla cassetta degli attrezzi!

Come si vede nel video, in una decina di secondi inizia a fondere lo stagno 60-40 (per la precisione Sn60Pb38Cu2), che ha il punto di fusione a 188 gradi, e in un tempo analogo anche lo Sn99Ag0,3Cu0,7 – ma quest’ultimo ha un punto di fusione almeno 30° più alto.
Consiglio l’uso di stagno sottile (non più di 0.6mm) in quanto più preciso e dissipa meno calore. Come lega, per chi è alle prime armi forse è meglio stare sul il Sn60Pb40 o similare, che fonde prima delle varianti prive di piombo.

Se dovete saldare spesso parti in rame di grossa sezione, siano esse lamine o cavi e dovete farlo lontano dalla 220V, 8W non bastano: meglio un saldatore a gas, che però fatica a stare sotto i 500° e se lo usate su un PCB rischiate di bruciare i componenti o di staccare le piste di rame!
Se dovete fare saldature di componenti elettronici su PCB o comunque di cavi e componenti che non siano di potenza, come nel mio caso, è un prodotto molto soddisfacente.

 

73 de IU3JSX

Arduino Pro Mini clones 12V supply and 4B2X regulator

Yesterday I was working with a Chinese clone of Arduino Pro Mini, which I bought for less than 10€ at Amazon.

I needed to build a very low consumption device and after reading this article I found the Pro Mini to be perfectly suited for the purpose.

The clone is one of those labeled with “The Simple”  in the back of the PCB, as shown here:

For my project I had to use 12V DC input so I fed it by the RAW pin, as described in the Arduino Pro Mini documentation.

I programmed it trough an Arduino Uno, everything went good so I decided to put it into the final circuit.

Long story short, it fried immediately after supplying 12V.

I was surprised by such a behavior so I checked back in the documentation a few times, but everything looked correct, it had to work. I looked at the PCB schematics in the Pro Mini documentation and found the regulator to be the MIC5205. The datasheet shows max operating voltage =16V, ensuring safe and reliable operation at 12V.

I looked at my board and found out the regulator was not a MIC5205, but a “4B2X” instead (it must be some clone, I can’t find its datasheet UPDATE: thanks to Squonk42 who commented back: https://www.torexsemi.com/file/xc6205/XC6204-XC6205.pdf), so I searched the web and found this discussion on the Arduino Pro Mini Chinese clones and their voltages, in which some regulator labels are listed, including  KB33, S20K, F34V, L0RA, L0RB for the 3.3V variant. 4B2X was not showing up, so I started to suspect either a defective component or an out-of-specs regulator.

I then decided to test another new Arduino Pro Mini board that came with the same “4B2X” regulator as the fried one, and started supplying 5V to the RAW pin, increasing the voltage at small steps, to find wether or not it was capable of working with a 12V supply voltage (as stated in the Arduino Pro Mini documentation).

The regulator output stayed at 3.3V until up to about 11.5 V input, then a single increase of 0.2V made the output “run away”, all the way up to the input voltage, frying the microcontroller. The exact same input/output behavior was delivered by the regulator of the first failed board.

Looks like the 4B2X regulator is not suited for 12V, its maximum input voltage being just about 11.5V, well below the MIC5205’s 16V maximum, which is needed in car/boat/camper environments that use Pb 12V batteries, where voltages typically grow up to 13.8 – 14.4V when the engine is on.

In conclusion, if you bought an Arduino Pro Mini clone that comes with that regulator and you need to supply a 12V DC voltage, consider adding a zener diode (5V at least) to drop the voltage down to safe values. Even better, if you have a spare MIC5205 or a real equivalent just solder it in place of the 4B2X.

Hopefully this will avoid someone frying his new Arduino Pro Mini just like it happened to me.

73 de IU3JSX

MCHF kit building

Hi all, I’ll soon post details about the radio kit I’m building, M0NKA’s Mchf board v0.6.

I’m working on it in my very limited spare time. I’m almost finished with soldering of the components and I’m currently winding the last transformers (namely T2 and T3).

I’ll post photos and a sort of tutorial for the assembly of the kit for newbies. The kit is very fun to build and allows one to learn SMD soldering, inductors winding, circuit testing and so on.

73!