08M2 TX/RX Project

DRock

New Member
Sorry about the picture on top of the computer, a light had just blown in my room so it was very dim and the flash made everything look blurry so I just tossed them on top. I do not attempt to run the system with either module close to the computer though as there is too much interference. I am going to try to lengthen the antennae when I get home after work and I will report back with my findings.

As for the voltage, I cannot seem to remember offhand but I will do some digging through my older posts and see if I have it documented somewhere, I am sure I do.

Thanks again for the help!

EDIT: Oh wow so that is going to be like a 10" long antennae...is it OK if I have it looped back and forth to zig-zag kinda so I can save space?
 
Last edited:

manuka

Senior Member
Almost anything goes for simple work! For reception generally longer antenna often give better results, as more signal may be intercepted.

You can readily compact a transmitters whip antenna by just spiral winding it onto a pencil etc.This will alter it's performance of course, so "cut & try" techniques are suggested. At UHF elevation is often crucial, & ranges may be extended an order of magnitude by just lifting the RX & TX clear of ground level clutter.

SAFETY ALERT! If using a ~170mm (~11") whip it's strongly recommended that you DON'T leave the tip just as a pointy wire, as eye damage may occur when looking down onto the circuit. Bend over the top, add a blob of hot melt glue (or a small flag ) or slip it into a tube (drinking straw etc).Although this seems almost trivial to mention, I'd a ham radio mate who seriously spiked his eye with a bare wire in dim lighting...
 

DRock

New Member
Thank you!

I am going to put two 12" antennae on these things and see how much the reception improves.

I will update this in a few hours once I get back home.
 

DRock

New Member
The RX battery was 4.49V and the TX battery was 4.65V, I just tested the system again downstairs and I could get about 20 yards away with 16" antennae before the signal started to break up.

Right now it is coded to blink once every time it gets a signal from the TX. I am going to switch the code to blink 20 times for every signal and hopefully that will make it blink at a constant rate until the TX stops sending the signal.

Does this logic make sense?

Thanks!
 

westaust55

Moderator
From the datasheets that you linked in Post 1:

The transmitter can operate over a wide voltage range (1.5 to 12 Vdc). My past experience, with similar Keymark units, found that at least 4.5 Volt was required for reasonable operation.

The datasheet for the receiver indicate the Minimum supply voltage as 4.9 Vdc and the Max as 5.1 Vdc.

Suggest you try to power them both from 5 Vdc and you will likely see a marked improvement in performance/operating range.
 

manuka

Senior Member
A thought! As Sparkfun offer both 315 MHz & 433 MHz units, suggest a check that your pair ARE on the same frequency! I've found only the receiver is usually picky about a 5V supply, but they can be VERY picky indeed. Transmitters are much more tolerant.
 

DRock

New Member
I think I might have figured it out...

If I use a bigger PICAXE I can have a RX rotary switch with 10 positions and then a matching one on the TX and each position will pull a different pin HIGH. That way you just match them up between 1-10 and they will not interfere.

When it is set to 1 the TX will send a 1 and any traps sync'd to 1 would make the RX blink. When it is set to 2 the TX will send a 2 and the RX sync'd to those would blink but the 1 would not. Etc...etc...

Does that make sense? Would I just then be limited by how big a PICAXE I choose?

Thanks!
 

westaust55

Moderator
As an alternative to switches you can use a qualifier to filter out unwanted signals so as, for example, to identify your rig or your mates, and
then a data byte to indicate which trap/lined for a particular owner
Read up a little more on SERIN and SEROUT about qualifiers.
 
Last edited:

DRock

New Member
I want to be able to switch on the fly without having to re-program each unit to save some time. I know a little bit about qualifiers but I do not know if there is a way to code them to allow the functionality that I want. The way I would do it would be for set A to send a different qualifier than set B so they were not mixed up but the only way I know to do that is to manually re-program all 6 units.

Thanks for the help!
 

crowland

Member
I'm using a 14M2 with a Rev-Ed transmitter to send the heading from an electronic compass. I'm using the rfout command that sends an 8 byte packet.
The receiver is the rev-Ed receiver going into a NKM2401 decoder that's going into an Arduino. The result seems to be rock solid communication over the distances I need (less than 3 metres). The transmitter is running on 2 AAs.

The only wrinkle was that the signal from the NKM2401 is inverted as far as the Arduino Serial receive is concerned.

A 14m2 could be used as the receiver, it will block waiting for a data packet but if it's not doing anything else that won't matter.

A 14m2 has plenty of spare pins for an ID switch.

Chris
 

westaust55

Moderator
Since you are going to have to manually put each of the 6 PICAXE chips into a circuit to program them, I would have though the few seconds longer to change some text prior to each program download was a minimal effort task.

That aside, if you are keen to use a switch and have 6 units then a PICAXE 08M/08M2 is still a possibility for the Tx modules.

Out0 = Data to send
In 1 = Fish caught input
In 2 = switch contact 1
In3 = switch contact 2
In4 = switch contact 3
I
The three contacts in a binary pattern with 3-pole DIP switches give you 8 possibilities:
1 switch to select owner (0 = you, 1 = mate)
2 switches to select fish line = 4 line (00, 01, 10, and 11)
 

DRock

New Member
Thank you guys for the quick replies! The reason I do not want to count on re-programming is I want to be able to switch it up on the fly while out and away from a computer.

Time to do some research and figure out the specific wiring diagram now.

Thanks again!
 

DRock

New Member
I just drew up this hand sketch of how I would like the switches to work. As I said before, electronics are not one of my strengths so I am hoping someone can verify that this will actually work. The numbers at the bottom represent the pins that are supposed to be pulled HIGH if that switch is flipped HIGH. This will let me use 6 different systems in the same proximity without setting each other off...I hope!

Let me know if I did anything wrong, I am hoping I have all the diodes positioned correctly and efficiently to make this work.

Thanks!

diagram2.JPG
 

Paix

Senior Member
Very neat, but will still need the three 10k pull up resistors on the pins. Looks good to me. Diodes BAT35?

Your solution uses six diodes and presumably a six way rotary switch. I appreciate that it will be cold out fishing, but with three poles of a dip switch, you get to save all those diodes and.program the switches in binary. Best done in the comfort of your wee fishing hut.

Reading the switches in the initialisation means that they would be read once on power up, which may be convenient, rather than scanning on a regular basis and being able to change the switches without powering off.

I'm sure you have that covered already though.

Sounds a bit bleak outside.

Happy fishing.
 

DRock

New Member
You bring forth very good points, I strayed away from the dip switch because I don't have any experience with them and have no idea how they work or how to write the program to use one. Would the switch you are talking about have three pins/switches and you would use a combination of switches to set the "channel" you are on? Meaning switches that say 1,2,3 and possible combinations of 100, 010, 001, 110, 101, 001. Which would give you the 6 different "channels?"

I was envisioning a dip switch with 6 individual switches that say 1,2,3,4,5,6 and you flip one at a time but it seems I misunderstood this aspect.

Sorry if I am not being clear enough, as I stated I am new to this field of electronics and previously had experience with simple circuits and systems. These microcontrollers are very new to me but they are fascinating little things!

Thanks for the help!
 

Paix

Senior Member
You are exactly right DRock, three single pole switches to pull the appropriate pins low, or are pulled high with 10k pull up resistors between pin and the +Ve rail.
000, 001, 010, 011, 100, 101, 110, 111 read in exactly the same way as you would have read the pins of the diode steered rotary switch.

Not the fastest of links perhaps, but this should give you data sheets, prices and a good idea of what's generally available.
http://www.rapidonline.com/Electronic-Components/DIL-Switches-RVFM-123382/?sid=60956816-6275-44e9-85f6-2ab8ea6c349e

dip switches.jpg

As you can see, what you are looking for is there, but most commonly 8pin 4way or 16pin 8way switches are probably carried by almost anyone with the former being the most flexible of course. They will neatly fit into a breadboard, socket or solder as the fancy takes you. Much, much cheaper than even thinking about a rotary switch. Operated with the end of a ballpen, match stick or a fingernail if your hands aren't freezing at the time. They are quite small! and are not exactly panel mounting so that may be a consideration, but normally protruding through the side of an enclosure or accessible via a slot, depending on circumstances and preferences.

Sorry about the delay in the reply, you just caught me having what for me tends to be an early night. :)
Would you consider adding your state to your profile. I have an image of a hut way out on the ice with fishing holes in Alaska, competing with seals at the moment.
 
Last edited:

geoff07

Senior Member
Remember that if you use an analogue input and a few resistors you can signal the selection simply by switching the voltage on the ADC input. Very simple, only one pin with minimal wiring and no changes to the code, which can be similar to that below:
Code:
readadc pin, variable
select variable
    case < a: do this
    case < b: do that
    case < c: do the other (a<b<c)
    ...
endselect
 

westaust55

Moderator
I strayed away from the dip switch because I don't have any experience with them and have no idea how they work or how to write the program to use one. Would the switch you are talking about have three pins/switches and you would use a combination of switches to set the "channel" you are on? Meaning switches that say 1,2,3 and possible combinations of 100, 010, 001, 110, 101, 001. Which would give you the 6 different "channels?"
DIP Switches come in multi-switch packages. I have 2, 4 and 8 switch sets. The DIP stands for Dual Inline Package. Each switch uses one pin/contact in each row of the Dual Inline connections.
Each switch is in effect a small slide switch which can be Open/Off or Closed/On - most mark the side corresponding to “ON”.

The binary configuration using 3 DIP switch contacts will provide up to 8 units capacity as I mentioned in post 54.
 

DRock

New Member
I just got everything in the mail today and I have a few questions, do I need a separate pull-down on the DIP switch for each pin pairing? I have a 3 switch set DIP and I believe I have to use 3 resistors to pull each set down until I throw them high.

Also, does this code look alright? There is probably a better way to write the beginning but that was my attempt and it works but it seems like it is a little slow...which might not be a bad thing because all that means is it takes a few seconds to initialize at first.

Let me know what you guys think!

Code:
' Transmitter code

  if pinC.2 = 0 and pinC.4 = 0 and pinC.1 = 0 then
	let b4 = 1
  endif


  if pinC.2 = 0 and pinC.4 = 0 and pinC.1 = 1 then
	let b4 = 2
  endif


  if pinC.2 = 0 and pinC.4 = 1 and pinC.1 = 0 then
	let b4 = 3
  endif


  if pinC.2 = 1 and pinC.4 = 0 and pinC.1 = 0 then
	let b4 = 4
  endif
  
  
  if pinC.2 = 0 and pinC.4 = 1 and pinC.1 = 1 then
	let b4 = 5
  endif
  
  
  if pinC.2 = 1 and pinC.4 = 1 and pinC.1 = 0 then
	let b4 = 6
  endif
  
  
  if pinC.2 = 1 and pinC.4 = 0 and pinC.1 = 1 then
	let b4 = 7
  endif
  
  
  if pinC.2 = 1 and pinC.4 = 1 and pinC.1 = 1 then
	let b4 = 8
  endif 
 
 
 
main:
  if pinC.3 = 1 then  
      SEROUT 0,N4800,("UUUUUUUUUUUUUUUUUUUUUUUUU")
      pause 50
      SEROUT 0,N4800,("ABC", b3)
      pause 150
  end if      


goto main
Code:
' Receiver code

  if pinC.2 = 0 and pinC.4 = 0 and pinC.1 = 0 then
	let b4 = 1
  endif


  if pinC.2 = 0 and pinC.4 = 0 and pinC.1 = 1 then
	let b4 = 2
  endif


  if pinC.2 = 0 and pinC.4 = 1 and pinC.1 = 0 then
	let b4 = 3
  endif


  if pinC.2 = 1 and pinC.4 = 0 and pinC.1 = 0 then
	let b4 = 4
  endif
  
  
  if pinC.2 = 0 and pinC.4 = 1 and pinC.1 = 1 then
	let b4 = 5
  endif
  
  
  if pinC.2 = 1 and pinC.4 = 1 and pinC.1 = 0 then
	let b4 = 6
  endif
  
  
  if pinC.2 = 1 and pinC.4 = 0 and pinC.1 = 1 then
	let b4 = 7
  endif
  
  
  if pinC.2 = 1 and pinC.4 = 1 and pinC.1 = 1 then
	let b4 = 8
  endif
  
  
  
main:
  SERIN 3,N4800,("ABC"), b1
  if b1 = b4 then
      let b2 = 0
      do
      high C.0
      pause 100
      low C.0
      pause 100
      inc b2
      loop while b2 < 20
  end if
  
  
pause 1000
goto main
Thanks!
 

westaust55

Moderator
With respect to the switches, yes (if using the 'pull-down" scheme) you will need a separate resistor from each PICAXE input pin to ground. Then the switch is from +5V to the PICAXE input pins.
 

westaust55

Moderator
As written, you transmitter program sets up a fish trap identification value in byte variable b4, but then you are sending byte variable b0 via the radio link.

Rather than so many IF...THEN commands you can condense this down to a few bits for a value from 0 to 7 (or 1 to 8 if you wish) with just a couple of comamnds and then send that value.

Your PAUSE 50 between the preamble and data may also be too long. Suggest try with a shorter duration such as 10 or 15 ms
Thus your transmitter code could become:

Code:
' Transmitter code

;First read all pins and reorgansie so pinC.1 is in variable bit0, pinC.2 is in bit1 and pinC4 is in bit2
Init:
	LET b0 = pins /2   
        LET bit2 = bit 3  ; now the status of all three switches are in bits 0, 1 and 2

	b0 = b0 AND $07  ; keep only bits 2,1,0 and clear the others
; now you have a value from 0 to 7 - you can increment this by 1 (INC b0) if you want 1 to 8 as the values.

 
main:
  if pinC.3 = 1 then  
      SEROUT 0,N4800,("UUUUUUUUUUUUUUUUUUUUUUUUU")
      pause 15
      SEROUT 0,N4800,("ABC", b0)
      pause 150
  end if      

goto main
I believe we need to undertake a significant rework of your receiver code but before we do that can you please explain in plain English steps exactly what you want the receivers to do. I know what I would want but so we are not guessing or assuming, how exactly do you wish them to work?
 

DRock

New Member
Thank you guys both for your help, I am learning a lot as we go along and I am excited to finally understand all this stuff.

I am going to be putting a tilt switch on the TX and I want that to send a signal to the RX when the tilt switch is pulled high. I am using the DIP switches on both sides to figure out which "channel" to operate on by taking the inputs from the switch. I want the RX to flash a LED at a constant rate while the tilt switch is high and then to stop when you reset the TX and the tilt switch goes low. What I mean by constant rate could either be 5 blinks and then pause for 2 seconds, or 20 blinks then pause for five seconds, or maybe blink at a constant rate every second until the TX is reset. It would be nice to be able to switch channels on the fly and have the TX and RX update without needing to power down the system and re-initialize but that is not a huge concern.

Is this how you would do it? If not please share, I am open to any and all input! I am trying to get as high of a success rate as I can for obvious reasons, if the RX ever fails to go off then that is a failure in my opinion.

Let me know what you think.

Thanks!
 

WirezFree

New Member
"I am going to be putting a tilt switch on the TX" <snip> " "I am using the DIP switches on both sides to figure out which "channel" to operate on by taking the inputs from the switch"
I have just started to read up on PICAxe and it's use, I have have only just come across this thread. "Please ignore, if I'm mistaken"

- Just have a dip switch in TX to set 1 to 8?
- Have 8 LED's on RX to indicate which TX triggered
- Have RX LED indicate status, slow blink TX is just sending "Heartbeat" I'm here and TX'ing
- When 1 of TX's is tilted then corresponding LED Blinks quickly.

Just a thought...
Why am I interested in this?,
I'm looking at building something to monitor certain doors being opened/closed, at this pricked my interest.

Good Luck
 
You could use RFIN and RFOUT except that's not supported by the 08M2, though you could use the NKM2401 to achieve the same.

If you add a preamble the code will look something like in the http://www.picaxe.com/Circuit-Creator/Miscellaneous/RF-Radio-Transmitter example, like -

Code:
do
  if pinC.3 = 1 then
    SEROUT 2,N4800,("UUUUUUUUUUUUUUUUUUUUUUUUU")
    Pause 2
    SEROUT 2,N4800,("ABC", 1)
  end if      
loop
If a person wanted to add a second or third XTMR, would it be reasonable to assume that the SEROUT command might be DEF or ABC1, ABC2 etc. with a corresponding test for each on the SERIN command for the RCVR?

As long as only one XTMR is functioning at the same time, it should be possible to identify which transmitter sent the info, right?

Thanks
Doug
 

inglewoodpete

Senior Member
Coding a multiple point communications system is not a simple task. I think you're planning to use wireless links, which will add to the complexity. You don't indicate whether your primary communication is one-to-many or many-to-one.

The simpler arrangement is one-to-many, where a single master controller 'speaks' to one slave at a time and expects a reply. The reply is required to confirm that the slave has received the instruction, even if it may not have to respond with data. The code in the master must cater for the situation where, for any reason, the response is not received. Eg the comms are corrupted and not recognised or the slave is powered down. You don't want the whole system to lock up if just one slave is not responding.

More difficult is the many-to-one or, worse, many-to-many. What happens if two controllers 'speak' at once? You need a fancy routine to ensure that the system can recover and operate correctly as soon as possible.
 
Coding a multiple point communications system is not a simple task. I think you're planning to use wireless links, which will add to the complexity. You don't indicate whether your primary communication is one-to-many or many-to-one.

The simpler arrangement is one-to-many, where a single master controller 'speaks' to one slave at a time and expects a reply. The reply is required to confirm that the slave has received the instruction, even if it may not have to respond with data. The code in the master must cater for the situation where, for any reason, the response is not received. Eg the comms are corrupted and not recognised or the slave is powered down. You don't want the whole system to lock up if just one slave is not responding.

More difficult is the many-to-one or, worse, many-to-many. What happens if two controllers 'speak' at once? You need a fancy routine to ensure that the system can recover and operate correctly as soon as possible.
Thanks for the reply.
My hope, is to have several transmitters, each with a unique ID that are briefly powered on (only one transmitter on at a time) and off such that the ID's are received and the result displayed in some way (say three LED's, each transmitter Turning on their respective light when activated). In this way it really is a "one to one" transmitter/receiver setup, even if the transmitter part of the equation changes.

Is this possible, as described?

Doug
 

inglewoodpete

Senior Member
Remember Murphy's law: if something can go it will, and probably at the worst possible moment! So you have to write your program to cater for that situation.

If a person wanted to add a second or third XTMR, would it be reasonable to assume that the SEROUT command might be DEF or ABC1, ABC2 etc. with a corresponding test for each on the SERIN command for the RCVR?

As long as only one XTMR is functioning at the same time, it should be possible to identify which transmitter sent the info, right?

Thanks
Doug
The way I read into your idea, your master will have a series of different SerIn commands, each with its own hard-coded qualifier string. What will happen if the master is executing the SerIn command that is searching for "ABC1" when an "ABC2" data packet arrives? It gets ignored.
 

lbenson

Senior Member
>I had hoped that this could be done with a time out on SERIN and careful timing of the polling.

Timeout on serin is not useful with raw wireless, since ambient noise on the frequency will abort the timeout, even tho a qualifier is not matched within the timeout period.
 
>I had hoped that this could be done with a time out on SERIN and careful timing of the polling.

Timeout on serin is not useful with raw wireless, since ambient noise on the frequency will abort the timeout, even tho a qualifier is not matched within the timeout period.
Would resetting the receiver after each event be practical?
The XTMRs won't be turned on until they are activated individually.

Doug
 

lbenson

Senior Member
>Would resetting the receiver after each event be practical?
>The XTMRs won't be turned on until they are activated individually.

I'm not certain what you mean. In any case, I wouldn't feel confident that serin timout would work with raw 315/433mhz receivers in any circumstances unless Rev-ed modifies the firmware so that the timeout occurs when a qualifier is not found within the timeout period (rather than as now, when anything which is identified as a character apparently resets the timeout clock).
 
>Would resetting the receiver after each event be practical?
>The XTMRs won't be turned on until they are activated individually.

I'm not certain what you mean. In any case, I wouldn't feel confident that serin timout would work with raw 315/433mhz receivers in any circumstances unless Rev-ed modifies the firmware so that the timeout occurs when a qualifier is not found within the timeout period (rather than as now, when anything which is identified as a character apparently resets the timeout clock).
I understand that the PICAXE startup/initialization is on the order do 50ms or less. I'd a transmitter is sending out its conditioning/qualifying string, wouldn't the newly reset receiver (and the associated PICAXE) "sync" with the transmitter that was active? Afterward, once the transmitter ID was receiver, the receiver could be powered down and restarted, ready for the next transmitter.

Would these problem be reduced if the higher power PICAXE chip was used that has the Manchester protocol capabilities (or even the chip doing the Manchester coding on the fly IE NKM2401).

Would the above resolve any of these issues?

Thanks
Doug
 

lbenson

Senior Member
The NKM2401 resolves the issue, since the picaxe can do other tasks while polling for "Data Ready" from the NKM2401, or awaiting that signal as an interrupt.

In your example, with the picaxe being restarted, you might as well be in "blocking" serin with no timeout, since you weren't doing anything else anyway when powered off. The point is that you can't successfully use timeout with raw wireless serin to move on to other tasks while waiting for a transmission to be received. Intelligent receivers also solve the problem.
 
Does RFin / RFout accomplish the same thing? It seems like the NKM2401 serves the role of the "two PIC" work around.
Is there a way of successfully using a dumb 433mHz ASK transmitter/super regen receiver in this role? (One receiver, several transmitters, each transmitting individually ).

I believe that something like an RF24L01 tranceiver with 6 data pipes would be best, but I'm no where near that yet. :)

Nitrous
 

lbenson

Senior Member
>Does RFin / RFout accomplish the same thing

RFin is blocking. If that doesn't matter to you, then yes, that will work.

>It seems like the NKM2401 serves the role of the "two PIC" work around.

Yes.

>Is there a way of successfully using a dumb 433mHz ASK transmitter/super regen receiver in this role? (One receiver, several transmitters, each transmitting individually ).

Yes, with the NKM2401--provided you can tolerate collisions--without it if you can tolerate blocking (and collisions). Or you can put tx/rx with the NKM2401 on both ends and code so as to provide a wireless kind of round-robin, with your receiver/master querying each transmitter/client and either receiving an answer or timing out before proceeding to the next client.
 
>Does RFin / RFout accomplish the same thing

RFin is blocking. If that doesn't matter to you, then yes, that will work.

>It seems like the NKM2401 serves the role of the "two PIC" work around.

Yes.

>Is there a way of successfully using a dumb 433mHz ASK transmitter/super regen receiver in this role? (One receiver, several transmitters, each transmitting individually ).

Yes, with the NKM2401--provided you can tolerate collisions--without it if you can tolerate blocking (and collisions). Or you can put tx/rx with the NKM2401 on both ends and code so as to provide a wireless kind of round-robin, with your receiver/master querying each transmitter/client and either receiving an answer or timing out before proceeding to the next client.
Can you explain, in simple terms how the 2401 will sort out the noise problems that seem inherent with this solution? I understand that the PIC does Manchester Encoding/decoding and the second PICAXE seems to be able to ?reset? the 2401 independently, is that correct?


So, for the "two pic" solution, does this need to be on the receiver and each transmitter?
How much time would be involved with five transmitters? Are we talking about milliseconds or seconds to complete the polling?

So, there really isn't any practical (and halfway reliable) method of doing this with a noisy RF using ASK modulation, using a simple single PICAXE I.e. a 08M2 or even a chip with RFin/RFout capabilities rather than simple SERIN with timeout.

It could be done with an 08M2 PLUS the 2401, right on the RCVR and XTMR's, right? The programming here seems a little daunting. :(
Are there a few tutorials lurking around? :)

Doug
 
Last edited:

lbenson

Senior Member
>Can you explain, in simple terms how the 2401 will sort out the noise problems that seem inherent with this solution? I understand that the PIC does Manchester Encoding/decoding and the second PICAXE seems to be able to ?reset? the 2401 independently, is that correct?

The NKM2401 will only assert its "Data Available" signal when it has successfully decoded a transmission from an RFout or another NKM2401. The picaxe can poll for this signal at its leisure while doing other things. When there is data available, the picaxe tells the NKM2401 to send it and goes into serin to receive the data. Once the NKM2401 has sent its packet, it is ready to receive another transmission.

>So, for the "two pic" solution, does this need to be on the receiver and each transmitter?

The "two pic", or "two picaxe" solution is needed for the receiver--provided you can tolerate collisions (and if you can't tolerate blocking on the receiver).

>How much time would be involved with five transmitters? Are we talking about milliseconds or seconds to complete the polling?

Milliseconds--or less, with accelerated speed and tight code.

>So, there really isn't any practical (and halfway reliable) method of doing this with a noisy RF using ASK modulation, using a simple single PICAXE I.e. a 08M2 or even a chip with RFin/RFout capabilities rather than simple SERIN with timeout.

That is my belief--if you cannot tolerate being blocked in SERIN on the receiver. With two picaxes, or one and a NKM2401, or a tolerance for being blocked, you can do it.

>It could be done with an 08M2 PLUS the 2401, right on the RCVR and XTMR's, right?

Yes, but I would recommend the 14M2 for RFOUT and one NKM2401 for RX.

My solution, not yet fully tested, is to have a 14M2 with tx and rx (using one NKM2401) as master, and the same for each client. Most of the clients are on batteries and mostly sleep. The master addresses each client in turn, and checks for "Data Available" on the NKM2401 for about 3 seconds. If it receives an answer, it acknowledges; if not, it goes on to the next client. The timing could be tighter if necessary.

The talkers could just speak when they wanted to, and await an acknowledgement, retransmitting at varying times if they don't receive the acknowledgement. That might be simpler.

Have you looked at the documentation for the Rev-Ed module which uses the NKM2401: http://www.picaxe.com/docs/AXE213.pdf
 
Last edited:
Thanks for your thoughts. Very helpful.
That being said, I don't have room for more than a single transmitter with PICAXE, in each client.
If I understand the role of the 2401, in the capacity of encoder/decoder, couldn't the 2401 be restricted to just the receiver? I mean tat since the only "data" that the transmitters are going to send is the conditioning stream and the ID. The Manchester Protocol isn't dynamic, is it? Couldn't each 08M2, when activated, sent out several pre encoded ID's for each transmitter, with the receiver 2401 / PICAXE combination responding only to valid data stream?

Sorry if these lines of thought are trivial. I do appreciate the opportunity to pic (pun intended) your brains :)

Doug
 
Top