Skip to content

Commit

Permalink
project page
Browse files Browse the repository at this point in the history
  • Loading branch information
pa3gsb committed Jun 4, 2016
1 parent 73e7f7b commit 3ca7e69
Show file tree
Hide file tree
Showing 8 changed files with 57 additions and 11 deletions.
23 changes: 20 additions & 3 deletions C-HermesLite/hermeslite.c
Expand Up @@ -93,6 +93,8 @@ int fd; /* our socket */

struct sockaddr_in myaddr; /* our address */
struct sockaddr_in remaddr; /* remote address */
struct sockaddr_in s_remaddr;

socklen_t addrlen = sizeof(remaddr); /* length of addresses */
int recvlen; /* # bytes received */

Expand Down Expand Up @@ -224,7 +226,7 @@ void handlePacket(char* buffer){
(remaddr.sin_addr.s_addr>>8)&0xFF,
(remaddr.sin_addr.s_addr>>16)&0xFF,
(remaddr.sin_addr.s_addr>>24)&0xFF);
printf("Port %d \n", ntohs(remaddr.sin_port));
printf("Discovery Port %d \n", ntohs(remaddr.sin_port));

fillDiscoveryReplyMessage();

Expand All @@ -233,9 +235,21 @@ void handlePacket(char* buffer){

} else if (buffer[2] == 4) {
if (buffer[3] == 1 || buffer[3] == 3) {
printf("Port %d \n", ntohs(remaddr.sin_port));
printf("Start Port %d \n", ntohs(remaddr.sin_port));
running = 1;
printf("SDR Program sends Start command \n");

//memcpy(&childA,&childB, sizeof(child));
memcpy(&remaddr, &s_remaddr, sizeof(remaddr));

printf("IP-address %d.%d.%d.%d \n",
s_remaddr.sin_addr.s_addr&0xFF,
(s_remaddr.sin_addr.s_addr>>8)&0xFF,
(s_remaddr.sin_addr.s_addr>>16)&0xFF,
(s_remaddr.sin_addr.s_addr>>24)&0xFF);
printf("Discovery Port %d \n", ntohs(s_remaddr.sin_port));


return;
} else {
running = 0;
Expand Down Expand Up @@ -363,6 +377,9 @@ void sendPacket() {

if (sendto(fd, hpsdrdata, sizeof(hpsdrdata), 0, (struct sockaddr *)&remaddr, addrlen) < 0)
printf("error sendto");
// if (sendto(fd, hpsdrdata, sizeof(hpsdrdata), 0, (struct sockaddr *)&s_remaddr, addrlen) < 0)
// printf("error sendto");

}


Expand Down Expand Up @@ -448,7 +465,7 @@ void fillDiscoveryReplyMessage() {
broadcastReply[i++] = 0x04;
broadcastReply[i++] = 0x05;
broadcastReply[i++] = 31;
broadcastReply[i++] = 10; // Hermes boardtype public static final
broadcastReply[i++] = 0x0A; // Hermes boardtype public static final
// int DEVICE_HERMES_LITE = 6;
}

Expand Down
Binary file modified CSharp-NoiseFloor/CSharp-NoiseFloor.suo
Binary file not shown.
Binary file added Gallery/Radioberry1.JPG
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Gallery/Radioberry2.JPG
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Gallery/Radioberry3.JPG
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Gallery/Radioberry4.JPG
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Gallery/Radioberry5.JPG
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
45 changes: 37 additions & 8 deletions README.md
Expand Up @@ -12,36 +12,65 @@ RadioBerry - Ham Radio cape for Raspberry PI
- Raspberry PI 2 Model B
- Radio extension board (cape)
- using AD9866 (12 bit) for RX and TX modes.
- Using JAVA as programming language.

![RadioBerry](Gallery/Radioberry1.jpg)
![RadioBerry](Gallery/Radioberry2.jpg)
![RadioBerry](Gallery/Radioberry3.jpg)
![RadioBerry](Gallery/Radioberry4.jpg)
![RadioBerry](Gallery/Radioberry5.jpg)


## Radioberry Configurations:

Two java applications are being under development:
Initialy i had the idea of using JAVA as then main programming language,
but the lack of speed when reading and writing to the GPIO of the raspberry pi
forced me to use the 'C' programming language.

Setting the SI570 at the right fequency is done using the I2C bus of the pi and a JAVA progam.

Three applications are being under development:

- HermesLite
- Radio Berry
On the RPI a webserver (using websockets for spectrum and audio) including the ported WDSP lib
- Standalone transceiver


## HermesLite

![RadioBerry](Gallery/Emulatie Hermes Lite.png)
Using a SDR program via the OPENHPSDR protocol and a network connection.

![RadioBerry](Gallery/Powersdr running with radioberry.png)

Starting hermes lite using the following command: java -jar hermeslite.jar
Starting hermes lite (c-program) using the following command: sudo ./hermeslite

Start a SDR software program; i used cuSDR and tune to 14.260.000 Hz.
Start a SDR software program;

## (Web) RadioBerry

![RadioBerry](Gallery/WebRadioBerry.png)

Starting RadioBerry using the following command: java -jar radioberry.jar

Internally using the WDSP library.

Oeps.. in the WeServer class i hard coded an IP address ... for now modify and export the jar file...


Open a modern browser and start the URL ; i have created an initial ssb.html!

For different modes an unique interface can be designed.

Because of the performance problems i have to change from JAVA using an embedded JETTY server to C using mongoose as webserver.
But the idea of making special pages for the different modes still stands!



## Standalone transceiver

Using a touch display and maybe some knobs....

As DSP lib using the WDSP library.

## Hardware

Expand All @@ -53,7 +82,7 @@ As can be seen in the picture the first components are mounted and the first fir

Some schema and layout errors:

-) Pin 23 AD9866 not connected to FPGA!
-) 10 MHz not connected to 3.3V
-) LED for the 1V2 is not needed; the LED need at least 1.4..1.5V
- ) Pin 23 AD9866 not connected to FPGA!
- ) 10 MHz not connected to 3.3V
- ) LED for the 1V2 is not needed; the LED need at least 1.4..1.5V

0 comments on commit 3ca7e69

Please sign in to comment.