-
Notifications
You must be signed in to change notification settings - Fork 8
Contributor Guidelines
So...you want to roll up your sleeves and get involved in the project? GREAT! Here is some information and steps you will need to know to get started. Let's make new strides in ham radio together!
- You will need a Raspberry Pi, Model B
- You will need at least a 1A 5VDC power supply to run it and any additional hardware (interface board, wifi dongle, etc)
- You will need a 4GB or larger SD card to put the system onto.
- You will need a USB sound card/dongle for audio IN/OUT. I am using this one: http://bit.ly/WtwnJV. Others should work, but I haven't tested them.
- You will also need some electronics know how to make the interface circuitry.
If you haven't done so already, I have a contributor information form on my website, please fill this out. This will provide me with your basic information so I can contact you. It will also add you to the project mailing list so I can send out current information to keep everyone involved up to date. If you plan to help contribute to the hardware or software design, then it will also ask for your GitHub user ID so that you can participate in discussions/issues and so that I can add you as a contributor to the project if applicable.
One of the next steps is to get the software setup and configured on your RPi. Fortunately, I've made a disk image of a preconfigured setup that has Raspbian, all the required code and dependancies. Simply follow the Getting Started Guide to get your RPi up and running.
This repository is a work in progress. There really isn't much as far as files go that live here yet...besides some old Eagle CAD files. I am still trying to decide how I want to structure the GitHub repository. I may have to break it into multiple repositories. For now, the repository is being used for the WIKI development and Issue Tracking. If you have questions or problems associated with the project, be sure to open an issue. GitHub Issues is how all development communication should take place.
My goals for the project are to develop a low cost, low power, but feature rich duplex repeater controller suitable for setting up a temporary / emergency repeater systems with radios that can be run on portable power. However with a more complete feature set and a modular design, it could also be used as a primary or a backup controller for a permeant installation repeater. With the low cost, modular design, it would make it easy to keep backup hardware on site for easy service swap-outs.
The additional circuitry required to interface a Raspberry Pi or Beaglebone Black to the radios would ideally mount on a “cape” or “daughterboard” style circuit board that would mount on top of the SBC by plugging into the GPIO connector. This repeater setup is primarily intended for use on Amateur Radio.
SVXLink, which I am using for the core logic, is pretty powerful as it is; however, it has a much steeper learning curve and requires a good bit of Linux knowledge. My goal would is to incorporate my web GUI with SVXlink make it much simpler to use out of the box and make it more accessible to the majority of Hams. I don't plan to include every single feature of SVXLink because I feel that would convolute the usability and make it much hard to setup. My plan is to include the most important subset of features geared towards duplex repeater operation. It should be so easy to figure out how to configure that your mom could do it...well maybe not that easy, but you know what I mean.
Sure it is open source and you are welcome to modify if to your liking, but also think of ways that you can help contribute back towards the project so it benefits all Hams. If you do have a feature you would like to contribute, I ask you please open an Issue to discuss the purpose of the feature and how it is to be implemented before jumping the gun. I think it will be the best way to ensure the development fits with the goals of the project.
The interface board schematics and PCB designs will be done in Eagle CAD. You will be able to download these files from the appropriate branch to work with locally on your machine. If you are working on the design to contribute back, then you will be able commit these back to the repository provided you have been given contributor privileges. Eagle is free for basic use, the main limiting factor is the size of the PCB that can be designed with it is limited, but should be acceptable for the use of this project.
Download Eagle CAD (Windows, Mac, and Linux)
Why are you requiring that Eagle CAD be used? I would like to keep the hardware designs in Eagle CAD for a number of reason. 1) So it makes it easier for a larger number of people to work on the interface schematics and PCB designs, 2) A free version is available, 3) It is a widely accepted format with many board houses. Designing this way will permit individuals to have their own low run boards made or eventually they could be offered as PCB kits or fully assembled interface boards for purchase.
Right now there are some existing rough schematic designs in the HARDWARE folder on GitHub, but these are out of date. They are for the pre-SVXLink version of the code I was working on. Some of it may be useful, but please refer to the GPIOs used below.
There are two GPIO pins on the Raspberry Pi used by SVXLink to interface with the transmitter and receiver. GPIO18 (pin 12) is used for PTT and goes high (3.3v) when active. GPIO23 (pin 16) is used for COS and needs to be pulled low to activate. You will also need to use an external pull up resister to pull GPIO23 up to 3.3v when not active so it doesn't float. My intentions with the circuitry design would be to use an opto-isolator with each GPIO pin to isolate it form the rest of the circuit and protect the GPIO pins from getting fried inadvertently.
NOTES: Other devices like the Beaglebone Black will use different GPIO pins, instead of having to manually configure them like I am now, I hope to build some sort of selectable configuration or preset to select the device OpenRepeater is running on and tell it the correct pins to use since it has to be set in a few different files.