4-Way Radio

Hi guys,

I'm starting a new project to create a 4-way radio between paintball players. I would like to use ATMEGA328's but could upgrade to the 2560 if needed.

I am currently in the research phase, and I need to know of tried and tested methods of radio transmission and reception between multiple users.

The initial idea was to occupy five seperate frequency bands. A bay station would pick up the radio signals from the players, mix their voices together on the same channel, and transmit out on another freqency, to be listened to by all the players.

The idea is simple, but after cocking up my last project, I am keen to hear advice before i get in too deep.

Spec so far:

-5 piece project: four player worn radios, one bay station.
-radios powered by one or two aa cell
-bay station powered by much larger cell, probably nicad rechargables
-under $200 for project
-use arduino uno to program
-push to talk switches
-earphones to listen
-mask mounted microphone
-lightweight
-double sided PCBs
-smt design preferable

i am in particular looking for advice on simple FM transmission and reception, mixing circuitry and use of boost converters.

the pcb will be manufactured myself, and will have tracking on one side, and a ground plane on the other. smt parts preferred

Where does the Arduino come in??

Weedpharma

the arduino will be required to program the atmega328 going into each radio...

What you are making is, in ham radio terms, known as a repeater.

The problem is getting the transmitter and receiver not to interfere with each other. This means that they have to be at least 1MHz apart and have notch filters in the antenna to stop the transmitter from deafening the receiver. These filters at 440MHz are about the size of pint milk bottles.

You will run into licensing problems and I would be surprised if you could do it within your budget.

bushwookie:
the arduino will be required to program the atmega328 going into each radio...

And what will the atmega328 be going to do then?

i am in particular looking for advice on simple FM transmission and reception, mixing circuitry and use of boost converters.

I haven't seen anything on the forum about using an arduino for audio tranceivers. I doubt it exists. Not sure why but in general, if it is possible Sparkfun or Adafruit would sell the hardware.

This is all I could find on Sparkfun:
Bluetooth audio module

It doesn't have any microphone input so you would need some sort of mic pre-amplifier.

Take a look at this.

the arduino will be required to program the atmega328 going into each radio...

This doesn't make any sense. You apparently don't understand what you are talking about. The arduino IS an ATmega328 ! So you're saying that one ATmega328 will program the other ? To do what ?
What you are calling "programming" is what we refer to as "uploading )or downloading if you prefer) "sketches" (our slang for programs) from a PC to a uC (the 328). This is done using either an FTDI module and a 328 DIP chip in a breadboard, or using the USB on an UNO (which has built-in FTDI chip).

I have no idea what you mean by "programming" but it doesn't fit any common usage scenarios.

Grumpy_Mike:
What you are making is, in ham radio terms, known as a repeater.

The problem is getting the transmitter and receiver not to interfere with each other. This means that they have to be at least 1MHz apart and have notch filters in the antenna to stop the transmitter from deafening the receiver. These filters at 440MHz are about the size of pint milk bottles.

You will run into licensing problems and I would be surprised if you could do it within your budget.

forgot to mention, in the UK with only a 100ft range i am within the law, as long as i do not interfere with commercial, government or scientific applications.

I am led to believe that the best frequencies to use fall around 433mhz... can anyone verify?

Grumpy_Mike:
And what will the atmega328 be going to do then?

I would like it to be in control of the tx and rx circuitry in the radios, and the tx, mixer and rx in the bay station

raschemmel:
This doesn't make any sense. You apparently don't understand what you are talking about. The arduino IS an ATmega328 ! So you're saying that one ATmega328 will program the other ? To do what ?
What you are calling "programming" is what we refer to as "uploading )or downloading if you prefer) "sketches" (our slang for programs) from a PC to a uC (the 328). This is done using either an FTDI module and a 328 DIP chip in a breadboard, or using the USB on an UNO (which has built-in FTDI chip).

I have no idea what you mean by "programming" but it doesn't fit any common usage scenarios.

well thats not technically true, the arduino is the board built around atmel's processor. if you were to download a sketch to an Uno's atmega, you would be able to take the atmega to a seperately powered system with its own power supply and circuitry. The arduino uno is great because it lets you program and test your code before placing the chip in another system.

I would therefore purchase several 328's download sketches to them with the Uno, and put them into other applications... you dont have to buy a new arduino uno for every project lol

Did you not know this was possible?

Edit: Also, would it make more sense for the radios to occupy only one frequency, with a push-button transmission? this is how walkie talkies work, correct?

to buy a new arduino uno for every project lol

I'm the one who's laughing because you never heard of buying 328s with the bootloader installed and
breadboarding them as programming setup. The breadboard is by far a better testbed than an UNO because it allows you to build your circuit right there which you can't do with an UNO. You can transport a breadboard as easily as an UNO and it can have your circuit on it which an UNO cannot.

well thats not technically true, the arduino is the board built around atmel's processor. if you were to download a sketch to an Uno's atmega, you would be able to take the atmega to a seperately powered system with its own power supply and circuitry. The arduino uno is great because it lets you program and test your code before placing the chip in another system.

I would therefore purchase several 328's download sketches to them with the Uno, and put them into other applications... you dont have to buy a new arduino uno for every project lol

Did you not know this was possible?

You have it backwards. The preferred method is buy a $15 FTDI BASIC and then buy DIP 328s with the OPTIBOOT bootloader already installed. You program them on a breadboard. The only thing the UNO gives you is a test bed to test the code connected to hardware (which you can easily do on a breadboard). You are connecting the same number of wires, whether you are plugging them into an UNO header or a breadboard is the same amount of work and time. The only provides the ext dc input which is a plus but there is not much more it gives you over a breadboarded 328 which costs $3 instead of $30.

The only people who use UNOs to program 328s are people who don't know how to breadboard them as standalone chips with the external xtal, caps and reset button. It would seem you have never done that.

raschemmel:
The only people who use UNOs to program 328s are people who don't know how to breadboard them as standalone chips with the external xtal, caps and reset button. It would seem you have never done that.

True, I am new to this kind of thing. I only recently picked up an arduino, but have no breadboard. My first (and only) project so far had the external xtal, caps etc but it was all surface mounted to a pcb i etched.

Obviously, sucks for prototyping because if the track layout is wrong, i have to make a new board. reason i did it was just that you cant solder 0603 caps to a breadboard :slight_smile:

Investing in a breadboard would have meant investing in through hole components, you see.

I was on a £50 budget (provided by my company) that was to include everything but equipment. this disappears quite quickly when you have to buy most of the components twice :slight_smile:

Although the project inevitably failed, it was a great intro to arduino, and i will definitely breadboard this one, before transferring to PCBs at a later stage. I have the luxury of using my own bank account for the budget this time (yay) so i can spend more.

hope this makes sense!

An R&D budget should include the bench breadboarding parts. That's SOP . I've been doing it for 30 yrs and
no one builds a pcb without breadboarding it unless it is a deadsimple circuit.

and i will definitely breadboard this one,

Maybe you should have a look at this.

If you zoom in on the photo you'll see the header connector with the male pins that I plug my FTDI cable into.

I don't see the point of the "4-way". Even with a repeater, only one of them can be transmitting at a time anyway. Why not just use four PMR446 radios all on the same channel - it should have enough range for paintball players?
And BTW, I presume that by "bay station" you mean "base station".

Pete

forgot to mention, in the UK with only a 100ft range i am within the law, as long as i do not interfere with commercial, government or scientific applications.

I am in the UK and I am a radio ham and that statement is total RUBBISH.

When you take the exam to qualify as a ham in the UK there is a quarter of the exam paper on the law regarding transmitters.

raschemmel:
I've been doing it for 30 yrs and no one builds a pcb without breadboarding it unless it is a deadsimple circuit.

No that is incorrect, try bread boarding a design with five 1000+ connection BGA chips. When I was designing set top boxes the first prototype was always a PCB.

because if the track layout is wrong, i have to make a new board.

Again rubbish, with a scalpel and mod wire you can change the layout of a PCB it is done all the time on circuits infinitely more complex than this.

i did it was just that you cant solder 0603 caps to a breadboard

Spot the 0603 resistors and caps

I haven't breadboarded a design in about 4 years now. Careful review of the schematic & PCB are needed. Take you longer to wire it up & debug than it takes to get a 10-lot of PCBs made for $18 with shipping. And the PCB will represent the final design.
A couple boards needed a 2nd revision, but only because the design provided to be implemented was not quite correct, or there was a misinterpretation of a devices datasheet.

I believe the 433 and 868 "ISM" bands are available in the UK. No license needed, although they are usually used for data transmission rather than voice.

All in all, it seems it would be easiest for all 4 people to simply use walkie-talkies on the same frequency on 27 Mhz/whatever, but then I guess you need to finger the transmit key to talk, which may be a problem during game-play. Don't walkie-talkies have like an auto-transmit-on-talk feature?

OTOH, it might be possible to jin this thing up using RFMxx [cheap] or even XBee [expensive] radios in broadcast mode. Since they can easily do 55K bps data rates, this should be plenty adequate for voice transmission. They all use "packet" transmission, so this has to be taken into account.

Possible method 1:

  • each Arduino-328 has 2 RFMxx radios, one to transmit, one to receive.
  • the bay[base]-station could have 5 radios, 4 to receive transmissions
    and combine as mentioned. 1 cpu [probably Mega2560] could handle
    this if you use radios with Rx FIFOs.
  • you can do a reasonable combination of 4 voice channels by using
    time-division-multiplexing.
  • OTOH, maybe just translate the 4 incoming data channels to analog,
    and simply superimpose them [ie, add up].
  • then re-transmit on the 5th radio.

Possible method 2 [somewhat trickier]:

  • just have 1 RFMxx radio in each node, and no base station, and
    synchronize the 4 radios so they each get a specific time-slot for
    transmission, like every (packet-transmission-time/4)+small_pause.
  • one of the nodes could send out a signal beacon every 1-sec or so
    for synchronization.

All in all, if the little speech chunks come fast enough, then you can get usable speech quality, even though there are pauses between the chunks. So, this is all just thinking-out-loud here.

Those frequency bands are for type approved transmitters only. You can not make a transmitter yourself and use it legally unless you are a ham.
Any modification to the transmitter invalidates the type approval and makes it illegal.

What you are trying to do is extremely difficult and costly.
Transmitting and receiving multiple frequencies at the same time requires large frequency spacings and complex RF filters unless you use a form of TDMA like GSM uses, but its still way beyond the capabilities of any Arduino.
Start by doing some research on how full duplex radio transmission works.
The mobile phone system is the best example of a common full duplex radio system.

What you are trying to do is extremely difficult and costly.
Transmitting and receiving multiple frequencies at the same time requires large frequency spacings and complex RF filters unless you use a form of TDMA like GSM uses, but its still way beyond the capabilities of any Arduino.
Start by doing some research on how full duplex radio transmission works.
The mobile phone system is the best example of a common full duplex radio system.

And that isn't even accounting for the coding (and the uP timing issues...

The mobile phone system is not a full duplex system, it is a half duplex system. Ever noticed how you can't interrupt some one in full flow, you have to wait until they breath.