Project

General

Profile

Simplest way to find out whether JeeNode micro and JeeNode are communicating?

Added by peter68 over 5 years ago

Hi everyone,

please allow to ask a beginner question, I am currently climbing up the JeeNode learning curve, which feels good but rather steep:

What is the most simple way to find out whether a JNu is exchanging packets with a JNv6?

Which combination of sketches do you advise to test between the two:
* JeeLib “Test1”, “Test2”, “pingpong”, “radioblip”, other?

Sorry but I feel rather lost … any advice would be greatly appreciated :o)

Many thanks!

Best - Peter.

PS
Starting point:
* Mac Arduino IDE 1.52 > USB BUB II > JeeNode v6
* Mac > USB BUB II > JeeNode v6 as ISP programmer > JeeNode Micro v3
* Got the blink demo to run on the JNu, so programming works. RF12demo ran into errors for the JNu …
* Got the JNv6 to communicate with an Arduino + RFM12B board via RF12demo, so JNv6 radio works


Replies (11)

RE: Simplest way to find out whether JeeNode micro and JeeNode are communicating? - Added by JohnO over 5 years ago

It is good to hear a new voice. Can you post the error messages you get when compiling R12Demo for the JNu?
Also, I guess you are using the latest master branch from git, if not can you advise which?

RE: Simplest way to find out whether JeeNode micro and JeeNode are communicating? - Added by peter68 over 5 years ago

Thanks JohnO.

Yes, I directly followed the steps described in [[[http://jeelabs.org/2013/03/21/programming-the-jn%C2%B5-at-last/]]], and added [[[https://github.com/jcw/ide-hardware]]] to the Arduino IDE 1.52.

Below the error messages when trying to compile RF12demo

/Applications/Arduino152.app/Contents/Resources/Java/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr25/crttn84.o: In function `__vector_default':
(.vectors+0x2): relocation truncated to fit: R_AVR_13_PCREL against symbol `__vector_1' defined in .text.__vector_1 section in core.a(WInterrupts.c.o)
/Applications/Arduino152.app/Contents/Resources/Java/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr25/crttn84.o: In function `__vector_default':
(.vectors+0x16): relocation truncated to fit: R_AVR_13_PCREL against symbol `__vector_11' defined in .text.__vector_11 section in core.a(wiring.c.o)
/Applications/Arduino152.app/Contents/Resources/Java/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr25/crttn84.o:(.init9+0x0): relocation truncated to fit: R_AVR_13_PCREL against symbol `main' defined in .text.main section in core.a(main.cpp.o)
/Applications/Arduino152.app/Contents/Resources/Java/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr25/crttn84.o:(.init9+0x2): relocation truncated to fit: R_AVR_13_PCREL against symbol `exit' defined in .fini9 section in /Applications/Arduino152.app/Contents/Resources/Java/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/avr25/libgcc.a(_exit.o)
RF12demo.cpp.o: In function `ookPulse':
/Applications/RF12demo.ino:229: relocation truncated to fit: R_AVR_13_PCREL against symbol `delayMicroseconds' defined in .text.delayMicroseconds section in core.a(wiring.c.o)
/Applications/RF12demo.ino:231: relocation truncated to fit: R_AVR_13_PCREL against symbol `delayMicroseconds' defined in .text.delayMicroseconds section in core.a(wiring.c.o)
RF12demo.cpp.o: In function `showNibble':
/Applications/RF12demo.ino:172: relocation truncated to fit: R_AVR_13_PCREL against symbol `Print::print(char, int)' defined in .text._ZN5Print5printEci section in core.a(Print.cpp.o)
/Applications/RF12demo.ino:172: relocation truncated to fit: R_AVR_13_PCREL against symbol `Print::print(char, int)' defined in .text._ZN5Print5printEci section in core.a(Print.cpp.o)
RF12demo.cpp.o: In function `showByte':
/Applications/RF12demo.ino:180: relocation truncated to fit: R_AVR_13_PCREL against symbol `Print::print(unsigned int, int)' defined in .text._ZN5Print5printEji section in core.a(Print.cpp.o)
RF12demo.cpp.o: In function `printOneChar':
/Applications/RF12demo.ino:123: relocation truncated to fit: R_AVR_13_PCREL against symbol `Print::print(char, int)' defined in .text._ZN5Print5printEci section in core.a(Print.cpp.o)
RF12demo.cpp.o: In function `handleInput':
/Applications/RF12demo.ino:337: additional relocation overflows omitted from the output

Any idea?

RE: Simplest way to find out whether JeeNode micro and JeeNode are communicating? - Added by JohnO over 5 years ago

Yes, I have seen these error messages before but in a Windows environment: http://jeelabs.net/projects/hardware/wiki/JeeNode%20Micro see the section on “Setting up the Tool Chain on Windows”. I haven’t tried on MAC but I think it should have the same issue but nobody has reported it.

I believe jcw has seen this issue on MAC and I recommended that he adapt the Windows solution to the MAC environment but I didn’t hear an outcome.

RE: Simplest way to find out whether JeeNode micro and JeeNode are communicating? - Added by JohnO over 5 years ago

There as also a few hex files in jeelib\examples\rf12\rf12demo that you could just burn to your JNu. You will need V12-RF12Demo-T84-38k4-MOSFET-POWER.hex since this version switches on the MOSFET at start-up to power the radio. It supports a 38k4 serial interface on the relevant pins - see documentation at the beginning of the sketch.

RE: Simplest way to find out whether JeeNode micro and JeeNode are communicating? - Added by JohnO over 5 years ago

Sorry the hex files are actually in the RFxConsole branch.

RE: Simplest way to find out whether JeeNode micro and JeeNode are communicating? - Added by peter68 over 5 years ago

Ok thank you again - now its getting complicated. It’s less the hex file I’m after, rather a working dev environment ;)
Currently setting up a Win8 VM, so I will see whether I can get that to work via the Win Tool Chain.
Cheers
Peter.

RE: Simplest way to find out whether JeeNode micro and JeeNode are communicating? - Added by JohnO over 5 years ago

I run Win7x64 with mainly 1.5.4 release 2 Arduino.

RE: Simplest way to find out whether JeeNode micro and JeeNode are communicating? - Added by peter68 over 5 years ago

Ha! Progress :o)

Toolchain now works on Win8 VM with 1.54 r2 Arduino, rf12demo compiles correctly for JNu and gets uploaded.

But: still no radio activity from Jnu, as checked via RF12demo output on JNv6.

Trying to run “Test1” sketch on JNu it turns out that it hangs at “rf12_initialize(1, RF12_868MHZ, 100);”

Do I have an RFM12B hardware issue? Soldering looks good …

RE: Simplest way to find out whether JeeNode micro and JeeNode are communicating? - Added by JohnO over 5 years ago

Good, have you added the code to power up the radio by switching on the MOSFET:

#if JNuMOSFET     // Power up the wireless hardware
    bitSet(DDRB, 0);
    bitClear(PORTB, 0);
    delay(1000);
#endif    

RE: Simplest way to find out whether JeeNode micro and JeeNode are communicating? - Added by peter68 over 5 years ago

John I owe you a beer.

“test1” on JNu extended for MOSFET power up and now the little guy is alive and kicking.

Thanks

PS Wondering why this is not already part of RF12demo v.12 .. assume this on the backlog for v13.

RE: Simplest way to find out whether JeeNode micro and JeeNode are communicating? - Added by JohnO over 5 years ago

It is in my bloated version of RF12Demo called RFxConsole in the RFxConsole branch. This branch has some additional features and library changes to support RFM69x radio modules.

    (1-11/11)