![]() |
Forum Index : Microcontroller and PC projects : Micromite Beta 6
![]() ![]() ![]() ![]() |
|||||
Author | Message | ||||
vasi![]() Guru ![]() Joined: 23/03/2007 Location: RomaniaPosts: 1697 |
I guess assembler won't help too many (me included) so here is an RFM12B implementation in mikroe Pascal and Basic for PICs. http://www.libstock.com/projects/download/475/0/475_rfm12_li b_for_me_pascal_v3.0.0.0.zip Geoff will decide which one (if any). Hobbit name: Togo Toadfoot of Frogmorton Elvish name: Mablung Miriel Beyound Arduino Lang |
||||
JohnL Senior Member ![]() Joined: 10/01/2014 Location: SeychellesPosts: 128 |
Some great features that Synapse Wireless RF modules/system has, for people that are not familiar. It is fully automatic mesh networking system, nodes automatically discover each other and automatically work out routing for information exchange. You can upload application programs to wireless remote modules/nodes over the air from PC based IDE (Portal). Modules/nodes run stand alone application programs in Integer Python derivative (called SNAP), it is event (Interupt) driven and takes time and experience to get used to. Most modules have 24 DIL (non standard 2mm pin spacing) with DIO, AI, PWM, SPI, I2C, UART. Modules are priced from less than $20 to $40+ and I think they are much better than Zigbee. You can use Multicast and Unicast function calls. Any remote node can call a function to be executed in a program on any specific or multiple nodes on the network, this is very, very powerful. You can simply call a function in a program by name on any node and any other node that has that function as part of its application program will execute it. You can obviously pass function arguments if you want. Modules can sleep if operating on batteries, wake up on Interupts. Micromite already has this feature. Can use modules as transparent wireless UART link. Modbus wire replacement etc. Lots of diagnostic features from PC IDE (Portal). You can literally do any development, uploading, diagnostics, monitoring etc. of the whole wireless network from one or multiple PC (Portal) locations. You can even upload new firmware to modules over the air. I guess Geoff may want to consider before deciding if or what type of wireless features he can implement in MMBasic. http://www.synapse-wireless.com/ |
||||
JohnS Guru ![]() Joined: 18/11/2011 Location: United KingdomPosts: 4036 |
$20 or more is way more than the NRF24L01 at maybe $2 so probably a lot less attractive. John |
||||
JohnL Senior Member ![]() Joined: 10/01/2014 Location: SeychellesPosts: 128 |
In case I wasn't clear in above post about Synapse. I did not mean or intend to suggest that Synapse RF modules be considered as alternatives to cheap Nordic RF modules. Synapse modules can be used as stand alone. I wanted to point out some powerful Wireless Mesh Network features that could possibly be implemented in MMBasic using a cheap Nordic RF24L01 as wireless RF interface. |
||||
vasi![]() Guru ![]() Joined: 23/03/2007 Location: RomaniaPosts: 1697 |
John (@JohnS), Don't know your sources, but on SparkFun.com things are like these: - RFM12B - NRF24L01 But I guess you are referring to the chip itself? I was referring to the module with the antenna included. Hobbit name: Togo Toadfoot of Frogmorton Elvish name: Mablung Miriel Beyound Arduino Lang |
||||
JohnS Guru ![]() Joined: 18/11/2011 Location: United KingdomPosts: 4036 |
I bought NRF modules for £1 ($1.65) on ebay. I've never bought just the chips. John |
||||
atmega8![]() Guru ![]() Joined: 19/11/2013 Location: GermanyPosts: 724 |
Geoff, if you need some RFM12xx Modules for test and Development, just let me know. I will send them. to down under;-) Dietmar |
||||
Grogster![]() Admin Group ![]() Joined: 31/12/2012 Location: New ZealandPosts: 9590 |
My personal favourites these days are the Radiometrix NTX2/NRX2. Quite expensive compared to the cheap Chinese modules, but they seem pretty bulletproof. They are "Dumb" modules, but you can feed them just about anything, and the link always works - for me anyway. I drive these with plain serial, after first sending a string of U characters, which is used to sync the data-slicer in the receiver. Always works fine, and takes any module intelligence out of the equation if you have any kind of transmission problems. BUT, having said that, had I been aware of some of these cheaper alternatives back then, I may well have taken a different route.... The transceivers I use are the SunrayRF modules. They come in various outputs from 10mW to up over 1W(illegal, generally speaking), are transceivers, have TTL/RS232 on-board, meaning you can connect the moudle DIRECTLY to your computer(using the RS232 port) for testing purposes. I think they also come with a 485 port if you ask for that instead of TTL. They too are about $15-20 a module, but being a transceiver etc.... That and as far as I am concerned, the cheapest things are not necessarily the best. ![]() Smoke makes things work. When the smoke gets out, it stops! |
||||
WhiteWizzard Guru ![]() Joined: 05/04/2013 Location: United KingdomPosts: 2932 |
Like Grogster says, Radiometrix offer some really good bulletproof RF modules. I have also used some of their modules where I needed extended range (1km+) between office buildings. Expensive but did the job well! However, I feel the need to reiterate here, there is no one RF solution that fits all requirements. Or put it another way, each RF requirement needs to be evaluated on an individual basis. To put this into perspective, things that need considering in an RF design include: - Frequency permitted (legal requirements vary across the globe) - Frequency available in local vicinity (need to reduce interference from other devices nearby) - Range required (not always best to have the longest range possible!) - Transmit only, Receive only, or Transmit and Receive - Amount of data in a typical message - Speed of transmission - Reliability & handshaking (different channels?) - Budget - Size of module - Antenna requirements So a remote data logger for home use (likely for a MicroMite project) is vastly different (in RF requirements) to a wireless media centre system (unlikely for a MicroMite project). They would NOT use the same RF module. Taking everything into account, (and with my RF engineers hat on), I would love to see RF support from Geoff that would support a module with the following RF capabilities: - Multi frequency (to allow use in any country) - Short to medium i.e. up to about 150m (Long range is specialist equipment) - Short to medium length message (No need for video) - Ability to Send and/or Receive - Low cost (sub US$10) - Small footprint (many SMD RF modules have their own specific pinouts so an adaptor board is no big deal!) - on board antenna with option for external antenna The above is a reasonable summary of requirements - any deviation is treading on specialist equipment. I hope the above makes sense to people out there - let me know your thoughts. Should we start an RF topic???? |
||||
JohnS Guru ![]() Joined: 18/11/2011 Location: United KingdomPosts: 4036 |
The Radiometrix look interesting except for the price. John |
||||
Grogster![]() Admin Group ![]() Joined: 31/12/2012 Location: New ZealandPosts: 9590 |
Very well put, and I totally agree with you. You cannot use one module for ALL your different RF tasks, generally speaking. ![]() @ JohnS - Yes, the price is a bit higher then I would like too. However, for that price, you DO get a very well designed bit of kit, and sometimes that extra engineering cost can be beneficial - works for years and years without issue or you having to go and fix it kind of thing. Smoke makes things work. When the smoke gets out, it stops! |
||||
SteveP Newbie ![]() Joined: 21/03/2013 Location: United StatesPosts: 19 |
This IR protocol analyzer may be useful. It uses a phototransistor with the microphone input of a soundcard to capture infrared signals from a remote control. Signal timing is graphed and a match is searched for known protocols. http://www.ostan.cz/IR_protocol_analyzer/ |
||||
SteveP Newbie ![]() Joined: 21/03/2013 Location: United StatesPosts: 19 |
Do RF transceivers exist with an IR protocol digital output? They could be used with the Micromite's existing IR input pin and existing IR decoding software. |
||||
akashh Senior Member ![]() Joined: 19/01/2014 Location: IndiaPosts: 115 |
I just want to throw in the CC1100 modules which cost about 4usd and come with attached antenna, I have tested these and they work fine, they also have different modes such as fixed and variable packet length, automatic cdc checking, and even a one byte address, which makes it easy to set up one to one communication. I must confess that I have not done extensive testing with them yet but I have 50 in the drawer waiting to be used, the range seems decent in my testing, and they run at 433mhz. Ay reason they are not mentioned here in this discussion? Akash |
||||
WhiteWizzard Guru ![]() Joined: 05/04/2013 Location: United KingdomPosts: 2932 |
I could list hundreds of different RF modules (and not just the ones I have in my parts bins!). The reason there are so many different RF modules is (and I will repeat yet again) there is no one module that meets all demands. The module you mention is certainly at the cheap end of the costing scale, but it is no good if you want guaranteed coms indoors at 100m, and certainly no good for RF video. And Coms reliability would potentially be poor if there is other 433M in the area. BUT it will have its uses - understand requirements and then select the most appropriate part that ticks as many boxes as possible. With IR it is reasonably easy - typically just the protocol changes on a freq of 38KHz. With RF then a great deal of physics comes into the equation too. I don't think Geoff would want to have different uMite firmware versions supporting different RF modules because of people's different RF requirements. All that said I would still love to see RF implemented in the firmware and would come back to strongly recommend the Hope modules. They tick most boxes as already hinted at in a previous post. They are not limited to just 2.4G like the Nordics, or limited to 433M like the one akashh mentioned. And most importantly, you don't just choose a RF module because you have lots tucked away in a drawer somewhere!! |
||||
Geoffg![]() Guru ![]() Joined: 06/06/2011 Location: AustraliaPosts: 3282 |
It seems to come down to the NRF24L01+ or the RFM12B and I can see the benefits of both. The 2.4GHz band is terribly congested and for the Micromite it would be much better to use a lower frequency where there is less congestion and better range. But, the RFM12B seems far less popular (there were only 5 or so vendors on eBay) and it comes in a difficult to use package with 2mm pin spacing. My intention with these functions is to make it easy for a less technically minded individual to use a particular device. For example, you can drive an LCD via BASIC but the code to do it would be a challenge for some. This is where the RFM12B has a serious issue, the 2mm pin spacing means that to experiment with it you would have to solder on flying leads or design a PCB. And that would deter the casual user. For sure the more technically adept would have no problem wiring up the RFM12B but that is not the audience that I am aiming for. Remember that you can always drive the RFM12B (and the NRF24L01+ for that matter) via SPI and for technically minded people that should be possible. So I am going to try the NRF24L01+ first. But I can see myself wishing for the clear communications of 433 or 915 MHz so I also have a couple of RFM12Bs on order. My hope is that a lot of the NRF24L01+ code (SPI driver, etc) can be reused for the RFM12B and with a bit of luck I might be able to squeeze in both. BTW both seem to have a diabolical command/control structure so there is no guarantee that I can get either working. Thanks to all who posted driver code as that will be my first port of call when my modules arrive. Geoff Geoff Graham - http://geoffg.net |
||||
BobD![]() Guru ![]() Joined: 07/12/2011 Location: AustraliaPosts: 935 |
Geoff Several times you have indicated getting tight on flash space. Have you considered dropping line numbers completely? Would that gain much space? I recall in the past you have indicated that without line numbers a program executes faster. Sounds like two good reasons to drop them. Bob |
||||
Grogster![]() Admin Group ![]() Joined: 31/12/2012 Location: New ZealandPosts: 9590 |
...and also PEEK and POKE, as it would seem that no-one really uses them anyway... (please correct me if I am wrong. if anyone does use peek/poke, please let us know, and post what you use it for!) Smoke makes things work. When the smoke gets out, it stops! |
||||
robert.rozee Guru ![]() Joined: 31/12/2012 Location: New ZealandPosts: 2434 |
personally, i would place ultrasonic distance sensor and proposed RF transceiver together as things that are a little 'esoteric' and better left to being handled by user-written code. this is especially true as both are limited to a specific device amongst a number of possibilities. the DS18B20 is saved from this complaint because the device is so ubiquitous, the IR saved by providing both Rx and Tx (so one can build the other end using a second micromite), and the RTC/PCF8563 by the absolute need for precise time stamping in some applications. the effort and flash space might be better put into making improvements elsewhere. at the same time, for certain devices user written basic libraries may in fact be a more versatile approach. rob :-) |
||||
TassyJim![]() Guru ![]() Joined: 07/08/2011 Location: AustraliaPosts: 6269 |
Speaking of the Ultrasonic sensor, The ultrasonic range sensor software seems to be working well. My sensor is a three terminal device with the trigger and echo terminals combined. I put a diode in line with the trigger terminal to isolate it from the echo pulse coming back and everything works as well as the usual 4 terminal device. Other than the missing pin, my device is identical to the HC-SR04 ' Ultrasonic range test
LCD INIT 2, 3, 4, 5, 23, 24 ' main loop do LCD clear LCD 1, 2, "Distance" range = DISTANCE(21,22) LCD 2, 6, uFormat$(range,1)+" cm" print "Distance = "+uFormat$(range,1)+" cm" pause 1000 loop end function uFormat$(x,p) ' given a number (x) and the required number of decimal places (p) ' returns formatted string. Negative and zero p is permitted local x1, f$ f$=str$(cint(x*10^p)) if p>0 then uFormat$=left$(f$,len(f$)-p)+"."+right$(f$,p) elseif p = 0 then uFormat$=f$ else uFormat$=f$+string$(abs(p),"0") endif end function While I have done it in Basic before, it used the SOUND command to act as a timer. The inbuilt function uses fewer IO's which is always a good thing. Jim VK7JH MMedit |
||||
![]() ![]() ![]() ![]() |
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |