Beginners: please read this post and this post before posting to the forum.
0 Members and 1 Guest are viewing this topic.
You could try to remove Easy Radio from the picture to see if the problem still occurs.
For example, maybe you should send your sensor values as numbers, not as ascii decimal (or at least send them as ascii hex).
The mega644 datasheet (page 315, section 26.2 - DC Characteristics) says that the minimum input high voltage on an I/O line is .6Vcc, so if your AVR is at 5 V, they guarantee that the I/O line will read high from 3 to 5.5 V.
what about using simple single direction radio modules? get 2 pairs on different channels.
anyone have code to do this that they can send me?
void uartSendByte(char data) { while (!(UCSRA & (1<<UDRE))) // ensure UART has finished sending last byte. { wdt_reset(); } UDR = data; // put data in UART output register. return; }
Hello John,Well that forum post took some digesting, but the latest comments from 'rgcustodio' were pretty much there.To understand your timing issues (provided you no longer have BAUD issues) you need to understand the process the modules go through to send and receive data.The ER4/900 modules (02 versions) use a PIC which is limited in its internal RAM to 384 bytes. Therefore, each process (upload to module, transmit over air, receive over air and download to target) uses the SAME 180 Byte buffer, and can only do one operation at a time.Therefore before sending the next set of data, you need to give enough time for the overair comms to complete AND the target to receive the downloaded data. (The timing for a packet of data is in the datasheet.)The data rate over air is a constant, and does not relate to your RS232 BAUD rate. This enables two end points with different BAUD rates to connect together without conversion.To operate the quickest, you could start uploading to the transmitting end at a time where the 'bytes to send' = 'bytes still being delivered'.(If that makes sense)FYI, I am close to completion of the 900MHz 03 version of the modules. These now use an ATMEL MEGA168, which has allowed me to use independent buffers for all functions. This means that Upload/Download/Transmit or Upload/Download/Receive can be done simultaneously.This is a massive step forward to easyRadio efficiency. I am also adding features to allow deliver DURING over air reception, but as this involves a change to the over air protocol, it will be software switched and would not be understood by an 02 module.If you need any help just ask. If you send me your bootloader code, I could take a look for you as well.The new 03 module also contains a bootloader for flash upgrades which will include (once I have written it) and overair upgrade facility from the eval software.Oh yes... Eval software... I wrote it, and it is a bit buggy on the comms. This is because it was written on Borland C++ Builder and unlike MS Visual Studio, they did not provide a serialPort class. I therefore had to write my own, but it hits a couple of cross thread problems and dies a death. The faster the machine, the worse it gets... I think!.Anyway, also about to be uploaded to the server, is the new eval software, which solves all these issues and adds a bit of transparency to how to understand the modules better. (Not written the help file yet though.. doh!)Well... that's about it.You can contact me through any of the means on the signature right at the bottom of this email.Kind RegardsDavid Schmider
Unless you guys know another transceiver that works on a low frequency without a buffer issue?
I'm really not sure if I should just call defeat, or try to reverse engineer that bootloader written in assembly . . .
so i know this solution is not ideal but have you considered using 2 one way radio links on separate frequencies?
you could probably rewrite an open source C bootloader to fix the problem in software [oooh seems awfully familiar Wink] you've got 4Kb of bootblock to use, that is if your user application isn't using up all of the flash. if you could code tightly and conservatively your bootloader should fit 4k or less.
I just asked David (the ER guy) if this was a good idea and he said "Two modules wouldn't help".