jamesp6000 / wsprrypi Goto Github PK
View Code? Open in Web Editor NEWThis project forked from danankers/wsprrypi
Raspberry Pi WSPR transmitter using NTP based frequency calibration
License: Other
This project forked from danankers/wsprrypi
Raspberry Pi WSPR transmitter using NTP based frequency calibration
License: Other
Hi,
The frequency for the 80m band has changed quite a while ago and >90% of the operators have migrated to the new frequency.
https://wsprnet.org/drupal/node/7834
It would be good if you could change the code accordingly.
else if (!strcasecmp(argv[optind],"80m")) {
parsed_freq=3594100.0;
Should be 3570100
Thanks
I actually installed WsprryPi on the newest Raspi 3 B+ with actual Raspian, very often the Raspi freezes completely, shortly after the start of the transmission. I then have to pull the main power. If it works, it works fine. Raspian crashes only with WsprryPi.
Ping works always, VNC is no more available, the mouse and keyboard are frozen
To fix this problem add the following to mailbox.c
#include <sys/sysmacros.h>
I downloaded this origianl version and found lots of headaches to fix dies to changes in the Debain releases. I managed to find solutions to most of them in this issues lit, but it took time and I still could not use it via Putty.
I thne found a fork here: https://github.com/g4wnc/WsprryPi
I have tested this on a Pi Zero, 3B+ and 4B and it just works exactly as intended, including via putty and with no mods (as of today anyway!)
Posted here in case it helps others in future.
I used wsprPi a few days ago. Worked fine.
Today I get this error and nothing get transmitted :
Requested TX frequencies:
14.095700 MHz
Extra options:
NTP will be used to periodically calibrate the transmission frequency
Ready to transmit (setup complete)...
Desired center frequency for WSPR transmission: 14.095700 MHz
Waiting for next WSPR transmission window...
Obtained new ppm value: -4.59688
TX started at: UTC 2018-04-13 00:38:01.001
Channel 14 CBSize 2000 UsermemSize 1000
Using mbox device /dev/vcio.
68000 Size NUM PAGES 17 PAGE_SIZE 4096
BufferSize 1000 , cb 2000 user 1000
Info:NTP find ppm=-4.596878
Info:NTP find ppm=-4.596878
Info:NTP find ppm=-4.596878
Freq = 1000000012
multiplier:48.453969 divider:66 VCO: 930.3MHz
Master PLLA Locked
Clk Number 4 div 66 frac 0
Freq = 1000000012
PCM clk=6849 / 1290
PCM Frequency out of range
Same with PiFmRds, nothing is transmitted, but I can measure a 0,9V voltage on the GPIO4 pin with a multimeter when trying to transmit, so I guess it outputs something but the frequency is bad ?
Attempting to build under Raspbian buster (armhf) image from 2020-05-27 results in these errors:
`pi@raspberrypi:~/hamradio/WsprryPi $ make
cc -O2 -march=native -mtune=native -Wall -c mailbox.c
mailbox.c: In function ‘mbox_open’:
mailbox.c:280:52: warning: implicit declaration of function ‘makedev’ [-Wimplicit-function-declaration]
if(mknod(LOCAL_DEVICE_FILE_NAME, S_IFCHR|0600, makedev(MAJOR_NUM_A, 0)) >= 0 &&
^~~~~~~
g++ -O2 -march=native -mtune=native -D_GLIBCXX_DEBUG -std=c++11 -Wall -Werror -fmax-errors=5 -lm -DRPI23 mailbox.o wspr.cpp -owspr
wspr.cpp: In function ‘void txon()’:
wspr.cpp:338:38: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
ACCESS_BUS_ADDR(CM_GP0CTL_BUS) = ((int)&setupword);
~^~~~~~~~~~~~~~~~~
wspr.cpp: In function ‘void wspr(const char*, const char*, const char*, unsigned char*)’:
wspr.cpp:597:10: error: ‘char strncpy(char, const char*, size_t)’ specified bound 16 equals destination size [-Werror=stringop-truncation]**
strncpy(buf, call, 16);
**wspr.cpp:633:12: error: ‘char* strncpy(char*, const char*, size_t)’ specified bound 4 equals destination size [-Werror=stringop-truncation]**
strncpy(l, l_pre, 4);
~~~~~~~^~~~~~~~~~~~~
**wspr.cpp:693:30: error: ‘j0’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
j0 = ((k>>j)&1)|(j0<<1);**
~~~^~~~
**wspr.cpp:640:23: error: ‘ng’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
unsigned long n2=(ng<<7)|(p+64+nadd);**
~~~^~~~
`
I am running a headless Rpi, fresh install and update.
wsprPi is working great but if I open another terminal window any command will cause the, running, wspr to crash with:
Exiting with error; caught signal: 28
command line:
sudo /home/rich/WsprryPi/wspr --repeat --offset --self-calibration W7xxx CN85qm 10 40m
I am trying to transmit on 20M and running a Pi-3-B+, but this problem also happens on a 3-B or a Zero-W. The program never crashes, but the PTT or transmit signal coming from the Pi stops somewhere between approx. 1-8 secs. The signal never hangs in there for anywhere near 2 mins. With the top-hat removed the software does the same on all three Pi's. This happens whether I am running the code as self-calibration or free-running. James, is your source code looking for timing from outside the code other than NTP? What do you think the problem is? Thank you, Herbert, WA0TEY
Hello,
since I updated VNC 6.0.2,
after WPRS transmission, VNC server logs off and is no longer possible to connect remotely, VNC server goes wrong asking an account, but even with that you must restart the raspberry pi 2
Issue: over the last month have tried (many times) to get WsprryPi up and running on a variety of Pis (3s and 4s) and even with a range of operating systems (Buster, Ubuntu mate etc) but with the identical outcome. Instead of the transmissions terminating after 100 secs or so, it runs for more like 217 secs. It then waits for the next window and resumes transmitting - this time for 220 secs. The pattern continues 217, 220, 217, 220 secs etc. I have been downloading the WsprryPi software from F5OEO on github and as unlikely as it seems, I wonder if there is a bug in the currently available version? Just wondering if anyone can throw some light on this weird situation - I've had no trouble with WsprryPi in the past. regards Grant VK3ZTE
How and where can I do this?
Hi my rpi 3b is not working plus i have used issue 41's code and it still doesn't work !
here is the code:
cc -Wall -c mailbox.c
mailbox.c: In function ‘mapmem’:
mailbox.c:62:35: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
62 | printf("mmap error %d\n", (int)mem);
| ^
g++ -D_GLIBCXX_DEBUG -std=c++11 -Wall -Werror -fmax-errors=5 -lm -DRPI23 mailbox.o wspr.cpp -owspr
wspr.cpp: In function ‘void getRealMemPageFromPool(void**, void**)’:
wspr.cpp:265:21: error: cast from ‘unsigned char*’ to ‘unsigned int’ loses precision [-fpermissive]
265 | *vAddr = (void*)(((unsigned)mbox.virt_addr) + offset);
| ^~~~~~~~~~~~~~~~~~~~~~~~
wspr.cpp:265:12: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
265 | *vAddr = (void*)(((unsigned)mbox.virt_addr) + offset);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
wspr.cpp:266:12: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
266 | *bAddr = (void*)(((unsigned)mbox.bus_addr) + offset);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make: *** [makefile:22: wspr] Error 1
I try to compile your whisper code on RPI. It is a brand new lite image.
I did
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git
git clone https://github.com/JamesP6000/WsprryPi.git
and make gives a nasty error see it beloow. Would you suggest what do I make bad?
Thanks, Béla 73 de HA4BM
pi@whisper:~/WsprryPi $ make
g++ -D_GLIBCXX_DEBUG -std=c++11 -Wall -Werror -fmax-errors=5 -lm -DRPI1 mailbox.o wspr.cpp -owspr
In file included from /usr/include/c++/8/vector:64,
from wspr.cpp:40:
/usr/include/c++/8/bits/stl_vector.h: In member function ‘void std::__cxx1998::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = double; _Alloc = std::allocator]’:
/usr/include/c++/8/bits/stl_vector.h:1085:4: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<double*, std::__cxx1998::vector<double, std::allocator > >’ changed in GCC 7.1
_M_realloc_insert(end(), __x);
^~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/vector:69,
from wspr.cpp:40:
/usr/include/c++/8/bits/vector.tcc: In member function ‘void std::__cxx1998::vector<_Tp, _Alloc>::_M_realloc_insert(std::__cxx1998::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const double&}; _Tp = double; _Alloc = std::allocator]’:
/usr/include/c++/8/bits/vector.tcc:413:7: note: parameter passing for argument of type ‘std::__cxx1998::vector<double, std::allocator >::iterator’ {aka ‘__gnu_cxx::__normal_iterator<double*, std::__cxx1998::vector<double, std::allocator > >’} changed in GCC 7.1
vector<_Tp, _Alloc>::
^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/vector:63,
from wspr.cpp:40:
/usr/include/c++/8/bits/stl_uninitialized.h: In function ‘_ForwardIterator std::__uninitialized_move_if_noexcept_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = double*; _ForwardIterator = double*; _Allocator = std::allocator]’:
/usr/include/c++/8/bits/stl_uninitialized.h:311:2: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
return std::__uninitialized_copy_a
~~~~~~~~~~~~~~~~~~~~~~~~~~~
(_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(__first),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(__last), __result, __alloc);
/usr/include/c++/8/bits/stl_uninitialized.h: In function ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = std::move_iterator<double*>; _ForwardIterator = double*; _Tp = double]’:
/usr/include/c++/8/bits/stl_uninitialized.h:287:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
__uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
^~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_uninitialized.h:287:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
/usr/include/c++/8/bits/stl_uninitialized.h:289:37: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
{ return std::uninitialized_copy(__first, __last, __result); }
~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_uninitialized.h: In function ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<double*>; _ForwardIterator = double*]’:
/usr/include/c++/8/bits/stl_uninitialized.h:115:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
uninitialized_copy(_InputIterator __first, _InputIterator __last,
^~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_uninitialized.h:115:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
/usr/include/c++/8/bits/stl_uninitialized.h:134:15: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
return std::__uninitialized_copy<__is_trivial(_ValueType1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&& __is_trivial(_ValueType2)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&& __assignable>::
~~~~~~~~~~~~~~~~~~
__uninit_copy(__first, __last, __result);
~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_uninitialized.h: In static member function ‘static _ForwardIterator std::__uninitialized_copy<true>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<double*>; _ForwardIterator = double*]’:
/usr/include/c++/8/bits/stl_uninitialized.h:99:9: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
__uninit_copy(_InputIterator __first, _InputIterator __last,
^~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_uninitialized.h:99:9: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
/usr/include/c++/8/bits/stl_uninitialized.h:101:27: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
{ return std::copy(__first, __last, __result); }
~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/vector:60,
from wspr.cpp:40:
/usr/include/c++/8/bits/stl_algobase.h: In function ‘_OI std::copy(_II, _II, _OI) [with _II = std::move_iterator<double*>; _OI = double*]’:
/usr/include/c++/8/bits/stl_algobase.h:446:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
copy(_II __first, _II __last, _OI __result)
^~~~
/usr/include/c++/8/bits/stl_algobase.h:446:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
In file included from /usr/include/c++/8/bits/stl_algobase.h:67,
from /usr/include/c++/8/vector:60,
from wspr.cpp:40:
/usr/include/c++/8/bits/stl_iterator.h: In function ‘decltype (std::__miter_base(__it.base())) std::__miter_base(std::move_iterator<_IteratorL>) [with _Iterator = double*]’:
/usr/include/c++/8/bits/stl_iterator.h:1238:5: note: parameter passing for argument of type ‘std::move_iterator<double*>’ changed in GCC 7.1
__miter_base(move_iterator<_Iterator> __it)
^~~~~~~~~~~~
/usr/bin/ld: mailbox.o: in function `mbox_open':
mailbox.c:(.text+0xc54): undefined reference to `makedev'
/usr/bin/ld: mailbox.c:(.text+0xcbc): undefined reference to `makedev'
collect2: error: ld returned 1 exit status
make: *** [makefile:22: wspr] Error 1
pi@whisper:~/WsprryPi $
Raspbian Stretch no longer ships standard with the NTP package installed, instead relying on timesyncd. This results in the ./wspr command hanging indefinitely at "Waiting for next WSPR transmission window..." when the "-s" self-calibration argument is passed.
This may not be obvious to new or returning users. Recommend adding the following commands into the README installation section to install and verify NTP sync:
sudo apt install ntp ntpstat
ntpstat
i need an advice. I keep getting this error "raise OSError("No memory to allocate with /dev/vcio")". What can i do to avoid getting that?
It would be very helpfull if we could switch gpio's when transmitting so we could switch different outputs for different low pass filters !
the gpio must be part of the command line:
example:
sudo /home/pi/WsprryPi/wspr --repeat --self-calibration XYZ12 XN39 10 10m 15m 80m --gpio 2 3 5
at start, all gio which are part of the command line must be defined as output, at 10m gpio 2 must be switched to H, all others L and so on ...
Thank you
When I ran on P1 1B I get a frequency on GP4 that is double the specified (and reported frequency). For instance, trying 20m the frequency should be 14097100+- but is actually 28194200.
And my TAPR filter filters it out.
When I specify 7048550 (half the frequency) GP4 actually is at 14097100 and the beacon works at 20m.
good morning,
after installing a fresh jessie lite image on a raspberry pi zero w and running:
apt-get update, upgrade and dist-upgrade and installing WsprryPi I've run the following command:
sudo wspr -s -n mycallsign mylocator 10 20m.
By checking with the scope I see a square wave with a frequency that is the double of the requested frequency! I've tried also to run:
sudo wspr -s -n mycallsign mylocator 10 7100000
but I get a 14.200 Mhz output.
How I can fix this?
All going smoothly up until I get a well-know error makedev error response. The solution is given as ...
"If you get the makedev error, the problem is a missing function called makedev, not a program.
makedev() is actually a macro and you need to include the correct header for it.
At the top of mailbox.c add the following line. "
#include <sys/sysmacros.h>
My issue is as I'm not a coder how/where do I add the above line. Sorry need some spoon feeding here
Crashes when I try to start wspr on a raspberry pi 1. The only way to recover is unplugg the device and plug it back in.
Fresh install of Raspbian stretch on Pi 2 B+ followed by
apt-get update
apt-get upgrade
apt-get install ntp
apt-get install ntpstat
Followed WsprryPi installation instructions ( I am already an user and installed it in the past)
issuing 'wspr' simply returns to shell prompt regardless of parameters used.
Hello,
Excellent program, running it on a continuous basis together with the also excellent QRPi board.
I would like to suggest the possibility of some (perhaps selectable) GPIO line to be raised when a transmission starts and lowered otherwise (or viceversa) so it can be use to PTT another stage.
In particular the posibility to switch antennas if We're also receiving in the same antenna.
Thank you, Pedro LU7DID
//////
If you using the Raspberry Pi Zero W and have the same issue, as far as i know there is no direct solution atm. Even not with an older Raspbian Build. So if you are only here to fix this problem it would probaby dont help you to read more then this first text paragraph.
Long story short: Probably its the best to either use an "normal" raspberry like 1/2/3 or set up an cronjob on the ZeroW to automatically let the script for transmitting run. Let a time window open for 15 Minutes per hour or so where the script is not running so you can connect while over vnc for eventual maintenance. ///////
My Problems experienced while setting up the PiZeroW with the WsprryPi software:
Im using the Raspberry Zero W with the newest 10.0 "Buster" Raspbian Build. Everything up to date.
I had first some problems in compiling but modify the files like that gibmat@bd85459 solved that problem.
After installed, transmitting and receiving of a test signal went quite well, done that multiple times on and off and no problems.
The Problems started as i tried to transmit an actual WSPR Beacon. As others i also experience the screen freeze problem. But it looks like i can come around with an additional info.
As others my screen also freezes when im connected over vnc and then start the transmitting.
It freezes at "Waiting for next WSPR Transmission window..."
But now the clue, when im connected over HDMI to my Computer screen, everything works fine!
Also the same time using vnc works wonderfull. Note: Only if the screen is on. If the screen is in standby it crashes.
The screen freezes as soon as i unplug the HDMI Cable and try to use vnc.
Even when a run with limited transmissions and then stop transmissions(--terminate 5) should be complete, the screen dont come to unfrozen again.
Plug in and out the HDMI Cable makes no difference at that point the screen shows frozen, also unplugging the router to maybe force vnc to stop doesnt shows an effect. Need to reboot to get it to work again.
I tried it headless direct into the CLI from boot with the same experience.
On the other hand, if im not connected over SSH or VNC, i can pull the Display Connector and leave it disconnected without a problem and connect it later again and use it normally further.
From my experiences what i measured with my SDR Receiver i can tell that the device keeps sending in pulses after the screen got frozen, but it doesnt uses the usual break at 1:51 anymore. Wich leads me into that the system is freezing into a loop or something. Additional the ZeroW dont accepts keyboard input anymore, it doesnt even serve it energy to light up his Capslock LED.
So it looks like it has something to do with the System or Networking. I didnt experienced that problem at any other points, only with that software. FM Transmitting works nice and also the WSPR test-tone worked flawless.
When i let him connected over HDMI i can start and stop WSPR signal at any time over vnc and it works nicely.
My ZeroW is shown as Raspberry 1 btw, idk if this is wanted to be like this.
bc2836 modul is unloaded over blocklist bec its not under the /modules list in this new Raspbian build.
I dont want to install an old firmware for the raspi, would be better if it could be get to running on the new Raspbian Buster. If all doenst helps i would probably do so but i hope theres a other solution somewhere.
Update:
Tested different Downloads while leaving the Raspi transmitting WSPR and connected to wifi but disconnected from HDMI and VNC/SSH. After plugging it to hdmi after some minutes it still works.
So the pure network traffic itself isnt the problem. Atleast not the Download. I have the strong suspicion that it might have to do with the upload. I will test that later.
My thoughts are, it is something that is activated when the RaspiZeroW hands over the controls to an remote computer but via SSH at CLI the same as via VNC. Something in the WSPR Software while transmitting WSPR signal may conflict with it
Update 2:
Tried running without anntenna and tried to use it before the transmitting started - when it is in "Waiting for transmission window" showed that it also frezes my pi and my vnc drops also out, which leads me to the fact that no transmitted radiowaves disturbing the Pis wifi chip here, otherwise it would work when it is not yet transmitting. Atleast that seems to be logical.
Means that there probably has to be an software issue and no hardware issue
Update 3:
Tested external WiFi Usb device with disabled onboard wifi chip - no change in problematics, still crashes.
Didnt tested Terminal based upload while connected over HDMI but seems like uploading data is the reason for my little Pi zero to freeze. If someone wantes to fix the issue i recommend to run this task if he wants to point out if it affects the problematic.
Update 4:
Bec of its based on armv6 the same as raspberry pi 1 it has only rare alternative linux distros.
If it were an Raspberry 2/3 there wouldnt be a problem since it bases on armv7 and i would be able to test ubuntu mate or something.
Tried Rasbian Jessie image from 2017 without installing any updates yet bec i dont wanted to mess the result.
Unfortunately no change. Im even think its worser, it didnt even let me control over vnc now when its hdmi connected to my screen as it was able at Raspbian 10 Buster.
Still crashes.
Maybe there is an easy way if the wifi chip could be somehow shielded or some point connected to grounding or something. But if its the wifi chip itself it doesnt explain why it also crashes the pi when i use an external wifi adapter. Maybe its another processing unit or has to do with a chip that is before the wifi but only while uploading but not downloading(bec downloading while was no problem at all(at Raspbian 10.0 Buster) and at a browser speed test it seemed to be and upload problem as it received 0 bytes(yes, 0 bytes, first time i seen that), anyway i didnt tested that further but i recommend to do that if someone wants to try a fix or something) Update: I tested it on the "Jessie" Build with speedtest-cli and got normal results. Around 12.70-17.28 Mbits/s Download Speed and around 1.69 Mbits/s Upload Speed. And no crashes. I tried that mutiple times with wspr trasmitting running and it worked nicely. Also started the speedtest, disconnected the hdmi and waited till it finished and reconnected, still worked nicely.
So it really looks like it is an software issue, but i dont know anymore what to test further on my PiZeroW. Maybe using Teamviewer host(if its even avaible for armv6 what im quite not sure about) could be a solution.
Maybe its something with the "reading the framebuffer" as it is was vnc does. But what does SSH that is similar? It has to be something the requests information which the pi tries to give and then running into a crash.
Maybe its requested process or device used by another service(of the wsprrypi software)or giving wrong values out or something other which i cant think about bec im not a programmer.
At the End the only thing i can do is making a cronjob to run the script for the raspberry pi zero w and let a 15 minute time window open at the end of every hour where i can connect over wifi vnc for maintenance if it is needed.
Maybe i can mesh some code together to let it automatically report after every closed cronjob, to send a small message to my webserver to let him know, "im still alife and sending"
and if the webserver didnt received it 3 hours in a row it sends me an email letting me know my WSPR Pi is probably down rn.
Yes i think thats the best solution for now.
Maybe it would work on my Pi3B+, but i dont want to use it for this task as the cpu power needed is small and only uses 20% of my pi zeros.
Update 5:
After some more intense websearch for the Raspberry 1(same architecture) have found another maybe fitting distribution(no not arch linux, i tried that but it was a pain to set it up and i gave up due to many failures atlast no host lookup possible as trying to update.
I talk about the KaliLinux. I already used that further on a regular pc but its some time ago.
While i write that, it is downloading in the Background, going to flash that and start over. Fingers crossed
Update 6:
Sadly the same, going to use it with an Cronjob then.
SyCoT out
Hello there,
Would it be possible to please include an option on WsprryPi to TX on the 8m (40Mhz) ISM experimental band - specifically 40.680MHz? There are a number of Stations now operating around the World - see: https://www.wsprnet.org/olddb?mode=html&band=8&limit=1000&findcall=&findreporter=&sort=date
Many thanks & 73, Duncan - VK6GHZ
I'm able to transmit a test tone but can't seem to run the program normally. It get just past the point of telling me NTP will be used to periodically Calibrate the Transmission frequency. Transmission will continue forever until stopped with CTRL-C. Then this:
ioctl_set_msg failed:-1
ioctl_set_msg failed:-1
And the pi zero locks up.
Not sure what to do to fix this or if it's a bug in the software. I'm running the latest Jessie on a PI Zero version 1.3.
Problem:
WsprryPi crashing the Pi2modelB after 4 or 5 times with varying parameters supplied on Jessie.
Cause:
Crashes only after screen blank.
Solution:
Setting consoleblank=0 in /boot/cmdline.txt and rebooting fixed it.
Perhaps the wsprrypi code (or lower) can't handle a post-blanked screen?
Hi
Band hopping is a very nice feature. Any chance to implement a way to get the active band? I2C would be a nice way, but a simple solution using a number of GPIO pins will also be useful.
Best 73 de OZ1BV, Brian
Has anyone got WsprryPi to work on the 3B+
With mine the software says” Pi version one detected” , runs once and hangs
Hi,
today i installed the brand new raspbian buster and i could not install WsprryPi becaus e make ends with the error message: undefined reference to 'makedev'
Thank you
I have 3 WsprryPi installations. Indiana, Central Mass and Cape Cod Canal Mass. Actually this hs humor value!
the first two have very stable ppm, small reasonable drift.
INDIANA
Obtained new ppm value: -3.9695
Obtained new ppm value: -3.94389
Obtained new ppm value: -3.94389
Obtained new ppm value: -3.94389
Central MASS
Obtained new ppm value: -3.18324
Obtained new ppm value: -3.18324
Obtained new ppm value: -3.35112
Obtained new ppm value: -3.35112
Then the CRAZY Cape Cod.
Obtained new ppm value: -87.9224
Obtained new ppm value: 183.652
Obtained new ppm value: 51.7667
Obtained new ppm value: -43.8727
Obtained new ppm value: -146.261
Obtained new ppm value: 113.812
Crazy Cape Cod on two different Walmart battery packs (I get about 14 hours of operation)
The CRAZY results are on both a pi3 and pi4 w/ buster. the pi zero w hangs with either buster or bullseye,
right at the first transmit
_I am looking for thoughts to try, or sympathy._
Thanks, Bradshaw K1TE
A huge number of errors and warnings during compile:
mailbox.c:280:52: warning: implicit declaration of function ‘makedev’ [-Wimplicit-function-declaration]
In file included from /usr/include/c++/8/vector:64,
from wspr.cpp:40:
/usr/include/c++/8/bits/stl_vector.h: In member function ‘void std::__cxx1998::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = double; _Alloc = std::allocator]’:
/usr/include/c++/8/bits/stl_vector.h:1085:4: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<double*, std::__cxx1998::vector<double, std::allocator > >’ changed in GCC 7.1
...and a number of the same errors in different other locations:
In file included from /usr/include/c++/8/vector:69, from wspr.cpp:40: /usr/include/c++/8bits/vector.tcc:
/usr/include/c++/8/bits/stl_uninitialized.h:311:2:
/usr/include/c++/8/bits/stl_uninitialized.h:287:5:
/usr/include/c++/8/bits/stl_uninitialized.h:289:37:
/usr/include/c++/8/bits/stl_uninitialized.h:115:5:
/usr/include/c++/8/bits/stl_uninitialized.h:134:15:
/usr/include/c++/8/bits/stl_uninitialized.h:99:9:
... and more
The problem is a missing function called makedev, not a program.
makedev() is actually a macro and you need to include the correct header for it.
It is possible to add the following line in mailbox.c to fix it:
#include <sys/sysmacros.h>
Hi! Could you add support for transmitting 6-symbol locators? Thanks!
We did some troubleshooting after trying to run WsprryPi on a Raspberry Pi 4.
Two issues:
makefile does not correctly identify the Pi version
Both the Pi3B and Pi4 identified the same ARMV7l
No configuration for PI4 clock changes and base address.
makefile I used needs to be edited to properly set PI-VERSION
The RPi 4 requires 2 changes in gpioclk
#define BCM2708_PERI_BASE 0xfe000000
#define F_PLLD_CLK (750000000.0)
This meant adding RPI4 option in the 'makefile' and changes to use this new setting in both gpioclk.cpp and wspr.cpp.
I would like to provide updates so others can use the Pi4.
Hello,
I tried to install WsprryPi on a Raspberry Pi Zero W.
The --test-tone option works well but after running "wspr --repeat --offset --self-calibration MyCall MyLocator 20 30m", nothing happens but the WiFi link is disconnected, and of course no way to see the logs.
Building wspr from source on May 29, 2019 on Model B V2.0 hardware 000f (512MB) shows NTP converging but external frequency counter for test tone 14e6 shows about 14000370 Hz after convergence, stablizing to -30.34 ppm. The pi had been running about 15 minutes at this point. This frequency prevented detection by wsprnet receivers. I was able to use manual adjustment and success using this: sudo wspr--test-tone 14e6 -f -p -56.21 (I'm sure the value will be different for everyone).
Note: After letting it the pi run over 2 hours and running sudo wspr --test-tone 14e6 the NTP converged very close, bouncing between -53 and -54 ppm. I don't know this issue occurred and then resolved because of the earlier manual ppm adjustment or because the convergence needed a lot longer time (pi crystal needed to settle?), or I'm running older hardware.
Hi,
I would like WsprrPi to be launched at boot.
I tried to add the following sequence in /etc/rc.local, it crashes
/usr/bin/sudo /usr/local/bin/wspr --repeat --offset --self-calibration MyCall MyLoc 20 30m 0 & > /dev/null 2>&1
So I tried to set this in the crontab evry 15 min, it crashes.
usr/bin/sudo /usr/local/bin/wspr --offset --self-calibration MyCall MyLoc 20 30m 0
By crashing I mean that not only there is no transmission, but it also make the WiFi fail.
Launching both command manually work fine.
My end fed half wave antenna is a DC short given a transformer between antenna and radio. Pin 7 ( GPIO04 ) and GND pin see a DC short, measurements done before all is about to run, before power is turned on. The low pass filter between is not DC short. How should I deal with the DC short antenna and raspberry Pi? Should I add a capacitor in series with the signal path? What value? Where to add it?
Not an issue but I would like to share this little bash script that I use to run wspr on a Pi Zero. The important thing is the MAXWAIT variable. Here you define the maximum time (in seconds) between activations of the wspr program. This allows for a "polite" beacon that does not overload the band with transmissions.
Important: This script works only with Bash or shells that support the $RANDOM variable.
enjoy, 73 de MM0DQM, Mark
#!/bin/bash
CALL=YourCall
GRID=YourGrid
PWR=10
FRQ=20m
MAXWAIT=240
sudo systemctl stop systemd-timesyncd
while :; do
echo "Synchronizing Time"
sudo ntpdate -b -p8 pool.ntp.org
sudo wspr --terminate 1 --offset --self-calibration $CALL $GRID $PWR $FRQ
NUMBER=$RANDOM
let "NUMBER %= $MAXWAIT"
echo "Waiting $NUMBER seconds..."
sleep $NUMBER
done
LS
i am trying to install wsprrypi on my new raspberry pi model 3B
i use a brand new noobs jessie operation system
it works nice
i follow the instruktions:
sudo apt-get install git Okee
git clone https://github.com/jamesp6000/wsprrypi.git Okee
cd wsprrypi Okee
sudo make install not Okee, gives an error
the error = cannot stat gpioclk: no such file or directory
makefile:32: recipe for target 'install' failed
make: *** [install] Error 1
I do know almost nothing of the raspberrypi or linux.
So what can i do?
thanks for your help
Wim Apon PA0SLT ( The Netherlands)
Hello,
I try it on 2m band.
On Raspberry pi zero and zero 2.
Ok on 6m band but on 2m band i see only noise floor go up.
I test pifmadv is working i see the carrier and modulations.
Maybe something bad modulation or spread spectrum desactivation something like this?
Thanks!
No signal on 2 meters but everything works great below this.
pi@raspberrypi3b:~/WsprryPi $ sudo ./wspr -t 144489000
Detected Raspberry Pi version 2/3
A test tone will be generated at frequency 144.489000 MHz
NTP will be used to calibrate the tone frequency
Transmitting test tone on frequency 144.489000 MHz
Press CTRL-C to exit!
Obtained new ppm value: -5.95505
Also the string value for a band is not recognized.
pi@raspberrypi3b:~/WsprryPi $ sudo ./wspr -t 6m
Detected Raspberry Pi version 2/3
Error: could not parse test tone frequency
Really cool application. Thank you. :)
Hi.
After several years of use, the gpio pin used for WsprryPi (gpio4) has gone faulty, probably due to static.
Is it possible for you to tell me how to change the gpio pin used in WsprryPi from gpio4 to another gpio pin please, for example gpio17
Thank you.
I can confirm above problem with gcc version 8 on Buster (Raspberry Pi v1 B).
gcc have had some major upgrades from Jessie (v. 4.9.2), Stretch (v. 6.3) to eight now in Buster thus I guess wspr-code is pretty much untouched for several years. My workaround was to install the latest released Jessie-image (2017-07-05) and make the binary this way. Compiles without any warnings/errors::
pi@wspr:/GIT/WsprryPi $ make/GIT/WsprryPi $ sudo make install
cc -Wall -c mailbox.c
g++ -D_GLIBCXX_DEBUG -std=c++11 -Wall -Werror -fmax-errors=5 -lm -DRPI1 mailbox.o wspr.cpp -owspr
g++ -D_GLIBCXX_DEBUG -std=c++11 -Wall -Werror -fmax-errors=5 -lm -DRPI1 gpioclk.cpp -ogpioclk
pi@wspr:
install -m 0755 wspr /usr/local/bin
install -m 0755 gpioclk /usr/local/bin
Originally posted by @berrak in #29 (comment)
HELP! I am new to programming. - I just want to be able to use my Raspberry Pi 3B+ for WSPR and it seems IMPOSSIBLE - Can you please explain your step here - so I know exactly what to do - in the command line - please explain clearly as I really don't understand how you were able to get the latest version of Raspbian to work. Many thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.