I saw the online phantom sdrs, I wanna do something like this with just a RTLSDR V4, MLA-30+ and a Ubuntu laptop, how would I do that? I tried the phantomsdr GitHub thing but it looks really bad (the site) and is pretty much not working, would be nice to have your help.
I'm referring mostly to it looking like the http://websdr.lumpkinschools.com/ WebSDR
Below is the basic procedure to get started. Follow this, then let us know what is going on.
https://github.com/ny4qphil/PhantomSDR-Plus/blob/main/INSTALL.md
Phil
hey so im stuck on this, what does this mean?
https://github.com/ny4qphil/PhantomSDR-Plus/blob/main/INSTALL.md#entering-your-site-information
ok so now its good im stuck with this:
vite v5.4.19 building for production...
transforming (1) index.html12:54:42 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/App.svelte:2668:24 A11y: visible, non-interactive elements with an on:click event must be accompanied by a keyboard event handler. Consider whether an interactive element such as <button type="button"> or <a> might be more appropriate. See https://svelte.dev/docs/accessibility-warnings#a11y-click-events-have-key-events for more details.
2666:
2667: {#if showTutorial}
2668: <div
^
2669: class="fixed inset-0 bg-black bg-opacity-50 z-50 flex items-center justify-center"
2670: on:click|self={nextStep}
12:54:42 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/App.svelte:2668:24 A11y: <div> with click handler must have an ARIA role
2666:
2667: {#if showTutorial}
2668: <div
^
2669: class="fixed inset-0 bg-black bg-opacity-50 z-50 flex items-center justify-center"
2670: on:click|self={nextStep}
12:54:42 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/App.svelte:3187:44 A11y: A form label must be associated with a control.
3185: <!-- Add Bookmark Section -->
3186: <div class="mb-6">
3187: <label
^
3188: class="block text-sm font-medium text-gray-300 mb-2"
3189: >Add New Bookmark</label
12:54:42 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/App.svelte:3222:44 A11y: A form label must be associated with a control.
3220: <!-- Current Link Section -->
3221: <div class="mb-6">
3222: <label
^
3223: class="block text-sm font-medium text-gray-300 mb-2"
3224: >Current Link</label
12:54:42 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/App.svelte:3262:44 A11y: A form label must be associated with a control.
3260:
3261: <div class="mb-6">
3262: <label
^
3263: class="block text-sm font-medium text-gray-300 mb-2"
3264: >Import / Export SDR Bookmarks.
12:54:42 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/App.svelte:3339:44 A11y: A form label must be associated with a control.
3337: class="overflow-y-auto flex-grow h-80"
3338: >
3339: <label
^
3340: class="block text-sm font-medium text-gray-300 mb-2"
3341: >Saved Bookmarks</label
12:54:42 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/App.svelte:3804:71 Empty block
3802: {/if}<!--End Amateur Check-->
3803: {/if}
3804: {:else}{/if}
^
3805: {/each}
3806: </div>
12:54:42 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/App.svelte:3832:71 Empty block
3830: {/if}<!--End Amateur Check-->
3831: {/if}
3832: {:else}{/if}
^
3833: {/each}
3834: </div>
12:54:42 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/App.svelte:3944:79 Empty block
3942: {:else if newbandwidth == 12000}12.0
3943: kHz
3944: {:else}{/if}
^
3945: </button>
3946: {/each}
12:54:42 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/App.svelte:4380:32 A11y: A form label must be associated with a control.
4378: <!-- Decoder Options -->
4379: <div class="mt-6">
4380: <label
^
4381: class="block text-sm font-medium text-gray-300 mb-3"
4382: >Decoder Options</label
12:54:42 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/App.svelte:4434:32 A11y: A form label must be associated with a control.
4432: <!-- Recording Options -->
4433: <div class="mt-6 w-full">
4434: <label
^
4435: class="block text-sm font-medium text-gray-300 mb-3"
4436: >Recording Options</label
12:54:42 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/App.svelte:4598:60 A11y: '#' is not a valid href attribute
4596: )}
4597: <a
4598: href="#"
^
4599: class="text-blue-300 hover:underline"
4600: on:click|preventDefault={() =>
transforming (6) node_modules/svelte/src/runtime/index.js12:54:44 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/lib/PassbandTuner.svelte:292:14 A11y: Elements with the ARIA role "slider" must have the following attributes defined: "aria-valuenow"
290: style="top: 20%"
291:
292: role="slider"
^
293: tabindex="-1"></div>
294: <svg class="h-5 w-2 inline absolute group cursor-e-resize z-0"
12:54:44 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/lib/PassbandTuner.svelte:264:0 A11y: visible, non-interactive elements with an on:click event must be accompanied by a keyboard event handler. Consider whether an interactive element such as <button type="button"> or <a> might be more appropriate. See https://svelte.dev/docs/accessibility-warnings#a11y-click-events-have-key-events for more details.
262: on:touchend={handleTouchEnd}/>
263:
264: <div class="w-full h-5 bg-black"
^
265: on:wheel={handleWheel}
266: bind:this={passbandParent}
12:54:44 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/lib/PassbandTuner.svelte:264:0 A11y: <div> with mousedown, click handlers must have an ARIA role
262: on:touchend={handleTouchEnd}/>
263:
264: <div class="w-full h-5 bg-black"
^
265: on:wheel={handleWheel}
266: bind:this={passbandParent}
12:54:44 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/lib/FrequencyMarkers.svelte:84:2 A11y: visible, non-interactive elements with an on:click event must be accompanied by a keyboard event handler. Consider whether an interactive element such as <button type="button"> or <a> might be more appropriate. See https://svelte.dev/docs/accessibility-warnings#a11y-click-events-have-key-events for more details.
82: <div on:click|self on:wheel|self class="w-full h-4 bg-black relative" bind:this={markerDiv} role="button">
83: {#each frequencyMarkers as frequencyMarker (frequencyMarker.id)}
84: <div class="h-4 absolute p-0 group" style="left: {frequencyMarker.left * 100}%"
^
85: on:click={() => dispatch('markerclick', frequencyMarker)}>
86: <div class="top-0 w-px h-8 z-0 peer bg-yellow-600 absolute">
12:54:44 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/lib/FrequencyMarkers.svelte:84:2 A11y: <div> with click handler must have an ARIA role
82: <div on:click|self on:wheel|self class="w-full h-4 bg-black relative" bind:this={markerDiv} role="button">
83: {#each frequencyMarkers as frequencyMarker (frequencyMarker.id)}
84: <div class="h-4 absolute p-0 group" style="left: {frequencyMarker.left * 100}%"
^
85: on:click={() => dispatch('markerclick', frequencyMarker)}>
86: <div class="top-0 w-px h-8 z-0 peer bg-yellow-600 absolute">
12:54:44 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/lib/FrequencyMarkers.svelte:82:0 A11y: Elements with the 'button' interactive role must have a tabindex value.
80: })
81: </script>
82: <div on:click|self on:wheel|self class="w-full h-4 bg-black relative" bind:this={markerDiv} role="button">
^
83: {#each frequencyMarkers as frequencyMarker (frequencyMarker.id)}
84: <div class="h-4 absolute p-0 group" style="left: {frequencyMarker.left * 100}%"
12:54:44 PM [vite-plugin-svelte] /home/lenovo/PhantomSDR-Plus/frontend/src/lib/FrequencyMarkers.svelte:82:0 A11y: visible, non-interactive elements with an on:click event must be accompanied by a keyboard event handler. Consider whether an interactive element such as <button type="button"> or <a> might be more appropriate. See https://svelte.dev/docs/accessibility-warnings#a11y-click-events-have-key-events for more details.
80: })
81: </script>
82: <div on:click|self on:wheel|self class="w-full h-4 bg-black relative" bind:this={markerDiv} role="button">
^
83: {#each frequencyMarkers as frequencyMarker (frequencyMarker.id)}
84: <div class="h-4 absolute p-0 group" style="left: {frequencyMarker.left * 100}%"
✓ 23 modules transformed.
x Build failed in 6.75s
error during build:
[vite:json] [plugin vite:json] site_information.json: Failed to parse JSON file.
file: /home/lenovo/PhantomSDR-Plus/frontend/site_information.json
at getRollupError (file:///home/lenovo/PhantomSDR-Plus/frontend/node_modules/rollup/dist/es/shared/parseAst.js:401:41)
at error (file:///home/lenovo/PhantomSDR-Plus/frontend/node_modules/rollup/dist/es/shared/parseAst.js:397:42)
at Object.error (file:///home/lenovo/PhantomSDR-Plus/frontend/node_modules/rollup/dist/es/shared/node-entry.js:21947:20)
at Object.error (file:///home/lenovo/PhantomSDR-Plus/frontend/node_modules/rollup/dist/es/shared/node-entry.js:21009:42)
at Object.transform (file:///home/lenovo/PhantomSDR-Plus/frontend/node_modules/vite/dist/node/chunks/dep-C6uTJdX2.js:47184:14)
at file:///home/lenovo/PhantomSDR-Plus/frontend/node_modules/rollup/dist/es/shared/node-entry.js:22269:40
Quote from: Phil - NY4Q on Jun 11, 2025, 12:55 AMBelow is the basic procedure to get started. Follow this, then let us know what is going on.
https://github.com/ny4qphil/PhantomSDR-Plus/blob/main/INSTALL.md
Phil
now i get this:
Thank you for using PhantomSDR+, you are supporting the Development of an Open-Source WebSDR Project ♥
terminate called after throwing an instance of 'char const*'
0: RTLSDRBlog, Blog V4, SN: 00000001
Using device 0: Generic RTL2832U OEM
Found Rafael Micro R828D tuner
RTL-SDR Blog V4 Detected
Sampling at 2400000 S/s.
Tuned to 101300000 Hz.
Tuner gain set to automatic.
Reading samples in async mode...
Signal caught, exiting!
Short write, samples lost, exiting!
User cancel, exiting...
Aborted (core dumped)
Try 2048000 samples. RTL's become unstable at higher rates, also I do not believe 2400000 is supported.
What github version did you install?
What Ubuntu are you running?
How does the TOML-file look?
A bit of info might help, as your problem is too vague to give answers.
Did you compile with OPenCL installed or not?