stupiDVS
Sperimentale · in sviluppoExperimental · under development

Un endpoint DVSwitch
nel tuo vecchio telefono
A DVSwitch endpoint
in your old phone

StupiDVS trasforma un vecchio telefono Android qualsiasi, o una economica “poc radio”, in un terminale per un server DVSwitch: ti colleghi via Internet ad Analog_Bridge, ascolti i talkgroup e trasmetti con il PTT. Niente hotspot, niente hardware radio, niente vocoder sul telefono. StupiDVS turns any old Android phone, or a cheap “PoC radio”, into a terminal for a DVSwitch server: connect over the Internet to Analog_Bridge, listen to talkgroups and transmit with the PTT. No hotspot, no radio hardware, no vocoder on the phone.

  • Android 5.0 → 16
  • DVSwitch · USRP
  • PTT & tasti fisiciphysical keys
  • Bluetooth
  • IT · EN
Cos’èWhat it is

Un terminale per DVSwitch, semplice e leggeroA simple, light DVSwitch terminal

DVSwitch è un insieme di programmi che collega tra loro reti radioamatoriali digitali (DMR, D-STAR, System Fusion e altre) e la voce “normale”. Il programma Analog_Bridge espone la voce come semplice audio su UDP con il protocollo USRP.

StupiDVS è un endpoint per quel protocollo: si registra sul server, riceve l’audio del talkgroup che scegli e trasmette con il microfono. È pensata per le poc radio economiche (schermo piccolo, tasti fisici, vecchio Android) e per i telefoni che non servono più, da Android 5.0 in su.

DVSwitch is a set of programs that links digital amateur radio networks (DMR, D-STAR, System Fusion and others) with plain voice. The Analog_Bridge program exposes the voice as simple audio over UDP with the USRP protocol.

StupiDVS is an endpoint for that protocol: it registers on the server, receives the audio of the talkgroup you choose and transmits with the microphone. It is made for cheap PoC radios (small screen, physical keys, old Android) and for phones you no longer use, from Android 5.0 up.

Perché è nataWhy it exists

Una poc radio o un vecchio telefono hanno poca potenza e un Android datato. Con DVSwitch il lavoro pesante (il vocoder AMBE, il collegamento alla rete) lo fa il server: sul dispositivo basta un client leggero che porta l’audio avanti e indietro.

StupiDVS vuole essere semplice (poche pagine, riquadri grandi), leggera (Java puro, nessun codice nativo, compatibile con Android 5.0) e libera: con licenza GPLv3 e un’eccezione di riuso; il codice sorgente verrà rilasciato quando la versione sarà stabile.

A PoC radio or an old phone has little power and an old Android. With DVSwitch the heavy work (the AMBE vocoder, the link to the network) is done by the server: the device only needs a light client that carries the audio back and forth.

StupiDVS aims to be simple (few pages, big tiles), light (plain Java, no native code, works on Android 5.0) and free: under GPLv3 with a reuse exception; the source code will be released once the version is stable.

L’appThe app

Tre pagine, riquadri grandi, tutto a portata di polliceThree pages, big tiles, everything within reach

Ci si muove con uno swipe, con i tasti sinistra/destra o con il tasto di cambio schermata della radio. Stile “Metro”: colori pieni (ocra e mattone), testi grandi, leggibile anche su uno schermo da 2,4 pollici. (Nomi e nominativi nelle immagini sono di fantasia.)Move with a swipe, the left/right keys or the radio’s page-change key. “Metro” style: solid colours (ochre and brick), large text, readable even on a 2.4-inch screen. (Names and callsigns in the pictures are made up.)

PrincipaleMainStato, talkgroup, chi parla e il tasto PTT.Status, talkgroup, who is talking and the PTT key.
Lista dei passaggiCall listGli ultimi 20 QSO: ora, nominativo e nome, durata.The last 20 QSOs: time, callsign and name, duration.
ImpostazioniSettingsSi scorrono e si cambiano anche solo con i tasti.Browsed and changed with the keys alone, too.
FunzioniFeatures

Tutto quello che serve, niente di piùAll you need, nothing more

📻Ricevi e trasmettiReceive and transmit

Registrazione sul server Analog_Bridge, audio in entrambe le direzioni, cambio talkgroup con un tocco o con le rotelle.Registration on the Analog_Bridge server, audio both ways, talkgroup change with a tap or the wheel keys.

📟Fatta per le poc radioMade for PoC radios

PTT fisico, tasti su/giù, tasto di cambio schermata (click e pressione lunga), riquadri leggibili su schermi minuscoli.Physical PTT, up/down keys, a page-change key (click and long press), tiles readable on tiny screens.

🎧Radio o BluetoothRadio or Bluetooth

Audio dall’altoparlante e dal microfono del dispositivo, oppure su auricolare o vivavoce dell’auto, trattato come una chiamata.Audio on the device’s speaker and microphone, or on a headset or car hands-free, handled like a call.

🔔Anche in backgroundAlso in the background

Resta collegata con lo schermo spento o in un’altra app, con una notifica discreta. Lo schermo può restare sempre acceso o accendersi quando inizia un QSO.Stays linked with the screen off or in another app, with a discreet notification. The screen can stay always on or wake up when a QSO starts.

👤Sai chi parlaSee who is talking

Nominativo e nome arrivano dal server; città e Paese da una lista utenti e il nome del talkgroup dall’elenco BrandMeister (le liste si scaricano con un tocco). Registro degli ultimi 20 passaggi.Callsign and name come from the server; city and country from a user list, and the talkgroup name from the BrandMeister list (the lists are downloaded with one tap). Log of the last 20 calls.

🌍Italiano e ingleseItalian and English

L’interfaccia parla la lingua del telefono e si cambia con un tocco. Modalità “solo ascolto” per chi vuole solo ascoltare.The interface follows the phone’s language and changes with one tap. A “listen only” mode for those who just want to listen.

InstallazioneInstallation

Come installare l’APKHow to install the APK

StupiDVS non è sul Play Store (è pensata per Android 5, che il Play Store non accetta): si installa dal file APK. Ci vogliono due minuti.StupiDVS is not on the Play Store (it targets Android 5, which the Play Store does not accept): you install it from the APK file. It takes two minutes.

  1. Scarica il fileDownload the file

    Dal telefono, tocca “Scarica l’APK” qui sotto. Oppure scaricalo dal computer e copialo sul telefono (cavo, scheda SD, cloud).On the phone, tap “Download the APK” below. Or download it on a computer and copy it to the phone (cable, SD card, cloud).

  2. Consenti le app sconosciuteAllow unknown apps

    Apri il file: se Android lo chiede, abilita “Installa app sconosciute” (o “Origini sconosciute”) per il browser o il gestore di file che stai usando. Si fa una volta sola, nelle Impostazioni di Android.Open the file: if Android asks, enable “Install unknown apps” (or “Unknown sources”) for the browser or file manager you are using. It is done once, in Android’s Settings.

  3. Se Play Protect avvisaIf Play Protect warns you

    Può dire “app non verificata”: succede perché l’app non passa dallo store ed è firmata con una chiave di sviluppo. Scegli “Installa comunque”.It may say “unverified app”: this happens because the app does not come from the store and is signed with a development key. Choose “Install anyway”.

  4. Aprila e impostaOpen it and set up

    Apri StupiDVS e segui il “Primo avvio” qui sotto: server, porta, nominativo e lista dei talkgroup.Open StupiDVS and follow “First start” below: server, port, callsign and the talkgroup list.

  5. AggiornareUpdating

    Scarica il nuovo APK e installalo sopra quello vecchio: le impostazioni restano.Download the new APK and install it over the old one: settings are kept.

Su una poc radio senza browser? Collegala al PC con il debug USB acceso e usa adb install -r StupiDVS-0.1-release.apk. PoC radio without a browser? Connect it to a PC with USB debugging on and use adb install -r StupiDVS-0.1-release.apk.
ManualeManual

Primo avvioFirst start

Serve un server DVSwitch (Analog_Bridge) raggiungibile via Internet, con il suo indirizzo e la porta USRP: è quello di un amico, di un gruppo radioamatoriale o il tuo. Per trasmettere su una rete radioamatoriale serve la licenza di radioamatore.

You need a DVSwitch server (Analog_Bridge) reachable over the Internet, with its address and USRP port: a friend’s, a radio club’s or your own. To transmit on an amateur network you need an amateur radio license.

  1. CollegamentoConnection

    Pagina Impostazioni → Collegamento: Server DVSwitch (nome o indirizzo, per esempio dvswitch.example.org), Porta DVSwitch (quella di Analog_Bridge, di solito 34001) e Nominativo. L’app non tenta il collegamento finché il server non è compilato; se il server non risponde entro 15 secondi lo dice.Settings page → Connection: DVSwitch server (name or address, for example dvswitch.example.org), DVSwitch port (Analog_Bridge’s, usually 34001) and Callsign. The app does not try to connect until the server is filled in; if the server does not answer within 15 seconds it tells you.

  2. I tuoi talkgroupYour talkgroups

    Impostazioni → Talkgroup → Lista TG: aggiungi i TG che usi, riordinali, modificali o eliminali. Se la lista è vuota l’app usa il TG 91. Il TG scelto sulla pagina principale viene inviato al server da solo.Settings → Talkgroup → TG list: add the TGs you use, reorder, edit or delete them. If the list is empty the app uses TG 91. The TG selected on the main page is sent to the server by itself.

  3. CollegaConnect

    Il riquadro in alto diventa “Connesso” da solo. Un tocco lungo (1 secondo) su quel riquadro collega o scollega a mano.The tile at the top becomes “Connected” by itself. A long press (1 second) on that tile connects or disconnects by hand.

  4. Elenchi (facoltativo)Lists (optional)

    In Sistema, tocca “Lista utenti” e “Nomi TG BrandMeister” per scaricare gli elenchi: servono a mostrare città e Paese di chi parla e il nome dei talkgroup. Si scaricano una volta e restano nel telefono.In System, tap “User list” and “BrandMeister TG names” to download the lists: they show the city and country of who is talking and the name of the talkgroups. They are downloaded once and stay on the phone.

Usarla ogni giornoUsing it every day

StatoStatus

Connesso, Disconnesso, RX e TX, in un riquadro scuro in alto. Con la barra di sistema nascosta mostra anche segnale e batteria.Connected, Disconnected, RX and TX, in a dark tile at the top. With the system bar hidden it also shows signal and battery.

TG

Il talkgroup attivo e quello selezionato (un riquadro solo se sono uguali). Tocca o usa le rotelle per cambiarlo.The active talkgroup and the selected one (a single tile if they are the same). Tap or use the wheel keys to change it.

Chi parlaWho is talking

Nominativo e nome in verde su nero, con città, stato e Paese sotto.Callsign and name in green on black, with city, state and country below.

PTT

Tieni premuto per parlare (oppure tocca per alternare, a scelta). Un timer ferma la trasmissione con un beep.Hold to talk (or tap to toggle, your choice). A timer stops the transmission with a beep.

Cambiare TG svuota l’ultimo chiamante e la lista dei passaggi. Se il PTT è “Nascosto” nelle Impostazioni l’app è solo ascolto. Con un QSO in corso il PTT è grigio e non si può premere.Changing the TG clears the last caller and the call list. If the PTT is “Hidden” in the Settings the app is listen-only. While a QSO is going on the PTT is grey and cannot be pressed.

Con i tasti fisiciWith the physical keys

TastoKeyCosa faWhat it does
PTTTrasmette (tenuto o a tocco alternato); il tasto si assegna nelle Impostazioni.Transmits (held or toggled); the key is assigned in the Settings.
Cambio schermataPage-change key
click breveshort click
Pagina successiva (Principale ↔ Lista dei passaggi).Next page (Main ↔ Call list).
Cambio schermataPage-change key
pressione lungalong press
Apre le Impostazioni da qualunque pagina; di nuovo lunga (o Indietro) le chiude e torna al QSO.Opens the Settings from any page; long press again (or Back) closes them and goes back to the QSO.
Rotella sinistra / sinistraLeft wheel / leftSu: TG successivo, riga precedente, valore più alto.Up: next TG, previous row, higher value.
Rotella destra / destraRight wheel / rightGiù: TG precedente, riga successiva, valore più basso.Down: previous TG, next row, lower value.
Impostazioni solo con i tasti. Su/giù spostano la riga evidenziata, in ciclo; un click del tasto di cambio schermata la seleziona; su/giù ne cambiano il valore; un altro click la lascia e si può scegliere un’altra riga. Pressione lunga o Indietro tornano al QSO. La Lista TG funziona allo stesso modo: il click seleziona un TG, su/giù lo spostano nella lista e la pressione lunga apre la modifica o l’eliminazione. Settings with the keys alone. Up/down move the highlighted row, in a loop; a click of the page-change key selects it; up/down change its value; another click leaves it and you can pick another row. Long press or Back go back to the QSO. The TG list works the same way: a click selects a TG, up/down move it in the list and a long press opens the edit or delete dialog.

Audio: Radio o BluetoothAudio: Radio or Bluetooth

L’impostazione Audio sceglie dove va il suono e da dove arriva la tua voce: Radio è l’altoparlante e il microfono del telefono o della poc radio; Bluetooth è un auricolare o il vivavoce dell’auto. Con Bluetooth l’app apre il canale voce come in una telefonata e lo rilascia dopo 10 secondi senza QSO. Se l’auricolare non c’è, l’audio torna alla radio da solo.

I guadagni di microfono e altoparlante sono separati per Radio e Bluetooth, in dB da −40 a +40 (0 dB lascia il segnale com’è). La barra in alto mostra il livello del microfono (gialla) in trasmissione e dell’altoparlante (bianca) in ricezione; se arriva a fondo scala il segno finale diventa rosso. Per una voce più forte alza “Radio MIC Gain” guardando la barra.

The Audio setting chooses where the sound goes and where your voice comes from: Radio is the speaker and microphone of the phone or PoC radio; Bluetooth is a headset or the car hands-free. With Bluetooth the app opens the voice channel like a phone call and releases it after 10 seconds without a QSO. If the headset is not there, the audio goes back to the radio by itself.

The microphone and speaker gains are separate for Radio and Bluetooth, in dB from −40 to +40 (0 dB leaves the signal as it is). The bar at the top shows the microphone level (yellow) while transmitting and the speaker level (white) while receiving; if it reaches full scale the last part turns red. For a louder voice raise “Radio MIC Gain” while watching the bar.

DVSwitch

Come funziona, senza vocoderHow it works, without a vocoder

Il telefono non codifica né decodifica AMBE: manda e riceve audio normale (PCM a 16 bit, 8 kHz, mono, un pacchetto ogni 20 ms) e il server DVSwitch fa il resto verso la rete digitale. Per questo l’app non ha plugin, brevetti da verificare né codice nativo.

Il server decide su quale rete e su quale talkgroup si parla: l’app gli chiede di cambiare TG con un comando e ne legge la conferma.

The phone neither encodes nor decodes AMBE: it sends and receives plain audio (16-bit PCM, 8 kHz, mono, one packet every 20 ms) and the DVSwitch server does the rest towards the digital network. That is why the app has no plugin, no patents to check and no native code.

The server decides which network and which talkgroup you talk on: the app asks it to change TG with a command and reads the confirmation.

  • microfonomicrophone
  • →
  • PCM 8 kHz
  • →
  • USRP / UDP
  • →
  • Analog_Bridge
  • →
  • rete digitaledigital network

Il protocollo, in breveThe protocol, in short

  • Registrazione: il testo REG:DVSWITCH ogni 3 secondi finché il server risponde REG:OK.
  • Collegamento vivo: un ping USRP ogni 3 secondi; se il server tace per 30 secondi l’app si registra di nuovo.
  • Voce: pacchetti con intestazione USRP da 32 byte e 160 campioni; la fine della trasmissione è un pacchetto con keyup a zero.
  • Chi parla: il server manda ID, talkgroup, nominativo e nome (tag SET_INFO).
  • Cambio TG: comando tgs=<tg>; il TG scritto nell’intestazione della voce viene ignorato dal server.
  • Il socket usa la stessa porta del server, come DVSwitch Mobile.
  • Registration: the text REG:DVSWITCH every 3 seconds until the server answers REG:OK.
  • Keeping the link alive: a USRP ping every 3 seconds; if the server is silent for 30 seconds the app registers again.
  • Voice: packets with a 32-byte USRP header and 160 samples; the end of a transmission is a packet with keyup at zero.
  • Who is talking: the server sends ID, talkgroup, callsign and name (SET_INFO tag).
  • TG change: the tgs=<tg> command; the TG written in the voice header is ignored by the server.
  • The socket uses the same port as the server, like DVSwitch Mobile.
NovitàWhat’s new

Versione 0.1Version 0.1

Prima versioneFirst version

Collegamento USRP a un server DVSwitch con registrazione, ping, ricezione, trasmissione e cambio talkgroup.USRP link to a DVSwitch server with registration, ping, reception, transmission and talkgroup change.

Interfaccia per poc radioPoC radio interface

Pagine a riquadri, tasti fisici (cambio schermata con click e pressione lunga), Impostazioni e Lista TG navigabili solo con i tasti, sinistra = su e destra = giù.Tile pages, physical keys (page-change key with click and long press), Settings and TG list browsable with the keys alone, left = up and right = down.

Tutto il restoEverything else

Audio Radio/Bluetooth con guadagni separati, PTT Bluetooth BLE, esecuzione in background, lista utenti e nomi dei TG scaricabili, italiano e inglese.Radio/Bluetooth audio with separate gains, BLE Bluetooth PTT, background running, downloadable user list and TG names, Italian and English.

SperimentaleExperimental

Implementato ma non testatoImplemented but untested

La versione 0.1 è sperimentale. Provata su un telefono Android 9 a schermo piccolo contro un server DVSwitch con rete DMR: registrazione, cambio TG e ricezione con nominativo funzionano; la trasmissione parte e invia l’audio del microfono. Queste cose esistono nel codice ma non sono ancora state provate:Version 0.1 is experimental. Tried on a small-screen Android 9 phone against a DVSwitch server with a DMR network: registration, TG change and reception with callsign work; transmission starts and sends the microphone audio. These things exist in the code but have not been tried yet:

Se qualcosa non funziona, per favore scrivi all’autore informazioni dettagliate su cosa non va. Un semplice “non va” non permette di capire né di correggere; una descrizione precisa sì. Per ogni voce qui sotto trovi cosa indicare.

In ogni segnalazione indica sempre:

  • marca e modello del dispositivo e versione di Android;
  • versione di StupiDVS (nell’app o nel nome dell’APK) e server usato;
  • cosa ti aspettavi e cosa è successo davvero;
  • se il problema si ripete sempre o solo qualche volta, e dopo quali passaggi;
  • dove possibile, uno screenshot o una foto.

If something does not work, please send the author detailed information about what is wrong. A plain “it does not work” makes it impossible to understand and fix; a precise description does. For each item below you will find what to tell.

In every report always include:

  • make and model of the device and Android version;
  • StupiDVS version (in the app or in the APK name) and the server used;
  • what you expected and what actually happened;
  • whether the problem always happens or only sometimes, and after which steps;
  • where possible, a screenshot or a photo.

Voce in ariaVoice on the air

Che la voce trasmessa si senta chiara dall’altra parte della rete.That the transmitted voice is heard clearly on the other side of the network.

Cosa scrivere: chi ti ha ascoltato, su quale rete e talkgroup, come suona (assente, bassa, distorta, a scatti, tagliata all’inizio o alla fine, troppo lenta o veloce), il valore di “Radio MIC Gain”, se usi Radio o Bluetooth, il modello del telefono e la versione di Android, e l’ora della prova.What to tell: who heard you, on which network and talkgroup, how it sounds (missing, low, distorted, choppy, cut at the start or at the end, too slow or too fast), the “Radio MIC Gain” value, whether you use Radio or Bluetooth, the phone model and Android version, and the time of the test.

BluetoothBluetooth

Audio su auricolare o vivavoce dell’auto, e il pulsante PTT Bluetooth Low Energy (profilo HM-10).Audio on a headset or car hands-free, and the Bluetooth Low Energy PTT button (HM-10 profile).

Cosa scrivere: marca e modello dell’auricolare, del vivavoce o del pulsante PTT, la versione di Android, l’impostazione “Audio”, quale direzione non va (ascolto, trasmissione o entrambe), cosa succede quando inizia e finisce un QSO (il canale si apre? l’audio torna alla radio?) e se il pulsante risulta “collegato” nelle Impostazioni.What to tell: make and model of the headset, hands-free or PTT button, the Android version, the “Audio” setting, which direction fails (listening, transmitting or both), what happens when a QSO starts and ends (does the channel open? does the audio go back to the radio?) and whether the button shows “connected” in the Settings.

BackgroundBackground

Collegamento a lungo con lo schermo spento o in un’altra app.A long link with the screen off or in another app.

Cosa scrivere: modello del telefono e versione di Android, per quanto tempo è rimasta collegata, se lo schermo era spento o c’era un’altra app, se il telefono era in risparmio energetico o l’app era limitata nelle impostazioni della batteria, se la notifica è sparita, cosa è successo (collegamento perso, niente audio, app chiusa) e a che ora.What to tell: phone model and Android version, how long it stayed linked, whether the screen was off or another app was in front, whether the phone was in power saving or the app was restricted in the battery settings, whether the notification disappeared, what happened (link lost, no audio, app closed) and at what time.

Hardware realeReal hardware

Tasti e rotelle di una vera poc radio, e gli schermi piccoli in orizzontale.Keys and wheels of a real PoC radio, and small landscape screens.

Cosa scrivere: marca e modello della radio, versione di Android, risoluzione dello schermo, quali tasti hai assegnato (e come si chiamano nelle Impostazioni), cosa fa ciascuno rispetto a ciò che ti aspettavi e, se puoi, una foto o uno screenshot del problema.What to tell: make and model of the radio, Android version, screen resolution, which keys you assigned (and how they are named in the Settings), what each one does compared with what you expected and, if you can, a photo or a screenshot of the problem.

Altre retiOther networks

Provata solo con una rete DMR; D-STAR, System Fusion e altre dipendono da come è configurato il server.Tried with a DMR network only; D-STAR, System Fusion and others depend on how the server is set up.

Cosa scrivere: quale rete e quale modo di Analog_Bridge usi, la versione di DVSwitch, la porta, se l’app arriva a “Connesso”, se i talkgroup cambiano, se senti e se trasmetti, e cosa compare nel nominativo di chi parla.What to tell: which network and which Analog_Bridge mode you use, the DVSwitch version, the port, whether the app reaches “Connected”, whether talkgroups change, whether you hear and whether you transmit, and what shows as the talker’s callsign.

Interfaccia ingleseEnglish interface

I testi inglesi ci sono ma l’app è stata usata quasi solo in italiano.The English texts are there but the app has been used almost only in Italian.

Cosa scrivere: in quale pagina e in quale riga vedi un testo sbagliato, mancante, ancora in italiano o tagliato, cosa dovrebbe dire e uno screenshot.What to tell: on which page and in which row you see a wrong, missing, still-Italian or cut-off text, what it should say and a screenshot.

In ogni caso, indica sempreIn every case, always include

La versione dell’app (pagina Informazioni: per esempio 20261103.10), il modello del telefono e la versione di Android, i passi che hai fatto, cosa ti aspettavi e cosa è successo, l’ora, e il server e la porta usati (senza dati personali). Se sai usare adb, allega il registro con adb logcat -s DvsLink AndroidRuntime AudioPlayer.The app version (About page: for example 20261103.10), the phone model and the Android version, the steps you took, what you expected and what happened, the time, and the server and port used (no personal data). If you can use adb, attach the log with adb logcat -s DvsLink AndroidRuntime AudioPlayer.

DownloadDownload

Scarica StupiDVSGet StupiDVS

L’APK è firmato con una chiave di sviluppo: serve a condividere il file, non per uno store. Android 5.0 o successivo (provata su Android 9; deve installarsi anche sui telefoni più recenti), qualsiasi processore.The APK is signed with a development key: it is for sharing the file, not for a store. Android 5.0 or later (tried on Android 9; it must install on the most recent phones too), any processor.

⬇ StupiDVS-0.1-release.apk

Versione sperimentale: registrazione, cambio TG, ricezione e trasmissione provati con un server DVSwitch; la voce in aria non ancora.Experimental version: registration, TG change, reception and transmission tried with a DVSwitch server; voice on the air not yet.

Il codice sorgente verrà rilasciato una volta che la versione sarà stabile.The source code will be released once the version is stable.

VersioneVersion0.1 · 20261103.10
DimensioneSize0,23 MB
Android5.0+ (API 21)
SHA-2565d37ed93a38f93be679b01ccc967a77719d7fdf11c5cdbc7ae3a37406b3f480a

Domande frequentiFAQ

È gratuita?Is it free?

Sì, nessun costo e nessuna pubblicità. Il codice è sotto licenza GPLv3 con un’eccezione che permette di riusarne parti in altre applicazioni citando il progetto e l’autore, e verrà rilasciato una volta che la versione sarà stabile.Yes, no cost and no ads. The code is under GPLv3 with an exception that allows reusing parts of it in other applications, crediting the project and the author, and it will be released once the version is stable.

Che differenza c’è con StupiDMR?What is the difference from StupiDMR?

Hanno la stessa interfaccia. StupiDMR si collega direttamente a un server DMR (HomeBrew, per esempio BrandMeister) e usa un plugin vocoder AMBE; StupiDVS si collega a un server DVSwitch con audio normale e non ha né vocoder né plugin.They share the same interface. StupiDMR connects directly to a DMR server (HomeBrew, for example BrandMeister) and uses an AMBE vocoder plugin; StupiDVS connects to a DVSwitch server with plain audio and has neither a vocoder nor a plugin.

Mi serve un mio server DVSwitch?Do I need my own DVSwitch server?

Serve l’indirizzo e la porta USRP di un server Analog_Bridge a cui puoi accedere: il tuo, oppure quello di un amico o di un gruppo che lo mette a disposizione.You need the address and USRP port of an Analog_Bridge server you can access: your own, or a friend’s or a group’s that offers it.

Posso usarla senza licenza di radioamatore?Can I use it without an amateur radio license?

No, per trasmettere su una rete radioamatoriale serve la licenza.No: to transmit on an amateur network you need the license.

Su quali dispositivi è stata provata?Which devices was it tried on?

Su un telefono Android 9 con schermo piccolo (240×320), contro un server DVSwitch con rete DMR. I tasti fisici sono stati provati con il simulatore di tasti, non ancora con una vera poc radio.On an Android 9 phone with a small screen (240×320), against a DVSwitch server with a DMR network. The physical keys were tried with a key simulator, not yet with a real PoC radio.

Posso scaricare l’APK da un altro sito?Can I download the APK from another site?

Meglio di no: scaricalo solo da qui e, se vuoi, confronta l’impronta SHA-256 indicata sopra con quella del file che hai.Better not: download it only from here and, if you like, compare the SHA-256 shown above with that of your file.

Changelog

Cronologia delle versioniVersion history

  • 0.1 · 3 novembre 2026 · prima versione: collegamento USRP a un server DVSwitch, interfaccia a riquadri per poc radio, tasti fisici (cambio schermata con click e pressione lunga), Impostazioni e Lista TG con i soli tasti, server e porta separati, audio Radio o Bluetooth, PTT Bluetooth BLE, esecuzione in background, lista utenti e nomi dei TG, italiano e inglese.
  • 0.1 · 3 November 2026 · first version: USRP link to a DVSwitch server, tile interface for PoC radios, physical keys (page-change key with click and long press), Settings and TG list with the keys alone, separate server and port, Radio or Bluetooth audio, BLE Bluetooth PTT, background running, user list and TG names, Italian and English.