Looking for a suitable microcontroller

Hi guys

I'm in the midst of planning a final year university project and I'm looking into/deciding upon a microcontroller. I can't detail much of the project itself but the only upshot you really need to know is that I'm building two units which must communicate with each other via digital radio transmission

However, with the view to reducing costs & design time, i'm considering using a mixed signal microprocessor. IE w/ built in radio transceivers.
ALL I NEED:

Suggestions! Just firing some ideas out! Really some inspiration. Anyone who knows of any good modules that have existed in the past, I'm still very open to ideas. The transmission itself will be very short range (maybe 10M MAX) I'll likely end up going for a 2.4GHz transmission (due to abundance of knowledge, resources & components etc for this freq.)

But realistically, just names, brands, great books that perhaps cover micro controllers with built in radio gear etc.

Lastly: I'll need two additional serial ports, one will be constantly used, the other only in emergency situations. The chip MUST MUST MUST be programmable in C/C++

Many thanks
Sean

What sort of RF? What does your project have to demonstrate your knowledge of?

The ESP8266 is very popular if you want WiFi on board. But it's WiFi - not arbitrary RF.

I don't know any others with on-chip RF.

You might want to look into using a microcontroller plus an RF module (like the NRF24, or any of the LoRa chipsets, or the HopeRF ones). Everyone and their mom has used the NRF24, and they're cheap.

There's also the 433mhz OOK/ASK transmitters and receivers, which are very cheap (I recommend using the RXB-12 receivers - which are about $1.50 each, instead of the receiver+transmitter-pair-for-$1 green ones, though the transmitters from those pairs are great. Those are the prices on e-bay shipped direct from china - of course, the $1 green ones are sold by some vendors for over $10.). These don't have any smarts though - you need to decide how to encode a 1 or 0. ( example implementations of this would be VirtualWire/RadioHead library, or my non-librarified implementation https://github.com/SpenceKonde/AzzyProjects/blob/master/433mhz/txrxtoserial22/txrxtoserial22.ino )

However, with the view to reducing costs & design time, i'm considering using a mixed signal microprocessor.

I can understand "reducing ... design time" for a school project.

However, why on Earth would you try "reducing costs" for two units? Are you seriously going to try saving a few dollars for a one-off project?

Coding badly: Read carefully, university. Not school. More than a subtle difference. IE i'm not building a toy. There is a budget. There are 60+ students on the course, thus, the budget isn't exactly huge. So yes as a result of other components being costly I am looking to reduce cost.

DrAzzy: Thanks for the reply! Very helpful, I'm likely looking at something along the Xbee & Zigbee line & similar, I.E. something w/ development boards etc readily available for a one off project, not 1000+ minimum order type products =D

I had been considering the microcontroller + RF solution, if just depends upon what i'm allowed to use in terms of "pre-made modules" if i buy something that effectively does it all for me, it may be frowned upon. But then again, it was my supervisor who suggested using the mixed signal processor, so.....

Really appreciate the adive & thoughts on lower frequency modules, I was vaguely aware of their seemingly increased availability, fortunately I've done a considerable ammount of work on error coding & encoding type work etc so these could well be an option on the table, really appreciate the suggestions & product names etc! Cheers bud!

SeanHowson:
Coding badly: Read carefully...

Learn to write...

...but the only upshot you really need to know is that I'm building two units...

You really do have nothing useful to share do you? Seriously? Why did you bother posting here?

SeanHowson:
You really do have nothing useful to share do you? Seriously? Why did you bother posting here?

He is one of the most helpful posters here. Don't be a jerk, and maybe he wouldn't have returned the favor. He raised a perfectly valid question about your post (i had the same thought he did), and you came out insulting him, and I'm not sure why...

Perhaps we've all misunderstood each other, as a result of merely reading text alone, I found his first post a little on the patronising side, perhaps I just mistook a hasty short reply. It comes across a little insulting when you're in the middle of a masters course, conducting some fairly heavy research work. Yes I admit I was not able to give either of you much to go on as a result of the nature of the project. The idea of having two units: What I meant was two totally different items, both requiring over a years worth of research & preparation (despite the small budget) thus I truly need to justify the idea of the project being viable as a full scale product, hence knocking of the cash where possible. But needless to say the project was interpreted slightly differently (understandable). I just felt perhaps the answers to the questions in his first post could have been deduced from my initial post. But then again they would seem obvious to me... It's my project.

My Apologies :confused:

SeanHowson:
I just felt perhaps the answers to the questions in his first post could have been deduced from my initial post. But then again they would seem obvious to me... It's my project.

This sounds almost like an episode of the "XY problem". :grinning:

Or perhaps more syntactical. "I'm building two units which must communicate with each other" and "a final year university project", not "a saleable product".

"It comes across a little insulting when you're in the middle of a masters course, conducting some fairly heavy research work" is all very well, but many people here are advanced well beyond that, so you need not presume you are speaking to amateurs like myself. :grin: Even "university. Not school. ... I'm not building a toy." is unnecessarily condescending.

If you want cheap but phenomenally capable mixed signal microprocessors (of course, like all such, it actually comprises two chips), the ESP8266 in peer-to-peer mode (forget exactly what that is called) would be your man! Look at this! :astonished:

There are a lot of microcontrollers with built-in radios of one sort or another. Everyone and their uncle sells modules, with varying degrees of user programability (apparently there are complex licensing issues if you want to put a proprietary licensed bluetooth stack in the same address space as the user program. Or something.) (These are considered IoT-enabling products.) You have several options:

  1. Sub-1GHz radios, running various protocols.
  2. 2.4GHz 802.15.4. I gather this is a relatively low-level protocol; usually something else runs on top of it.
  3. 2.4GHz WiFi.
  4. 2.4GHz Bluetooth in various versions
  5. 2.4GHz Other (Zigbee, for example.)
    (I separate out the 2.4GHz protocols, because you can frequently find modules that implement various high-level access protocols. ESP2866 (original) was a serial/ATcommands to TCP/IP/WiFi module. CC3000 is SPI to TCP/IP/WiFi. Lots of BT modules that support the serial profile. Etc.)

Here are a couple of big-name players:

NXP/Freescale: Wireless Connectivity Solutions for Embedded Devices | NXP Semiconductors | NXP Semiconductors
TI/Chipcon. TI has a couple of wireless-enabled "Launchpad" evaluation boards that are programmable using the arduino-like "energia": http://www.ti.com/lsds/ti/wireless_connectivity/overview.page
Nordic Semiconductor. Nordic chips (or clones thereof) are very popular in various sub-1GHz "transceiver modules" available on eBay/etc. Very cheap. Explore our product portfolio - nordicsemi.com
Atmel, since they do the chips for most of the official Arduinos: http://www.atmel.com/products/wireless/default.aspx (AFAIK, none of the wireless chips is actually supported by the Arduino environment.)

You didn't say what your major is; if you're a CS major able to use pre-made boards or modules and just want to write some nifty software, that's going to be a much different project than if you're an EE student that has to design the hardware, but wants a ready library of SW to help out. And different again depending on what level of the ISO stack you're planning to put your software. Back when I wanted to do a networking thing for my BSEE senior project, I was told that that was much too software-ish a project. Hmmph.

Westfw: Thank you for the reply there is some really good information coming to the table, apologies I meant to mention, im an EE student, but a result of the project being focused almost entirely on embedded systems really I'm supposed to demonstrate more of a skill in the programming line, thus those supervising me have little interest in me designing hardware (provided I can show understanding of the hardware im using & justify why i'm using it instead of just plugging & playing). Ultimately you could effectively treat me as a CS student but my background is mostly EE. So we've quite a lot of freedom concerning our projects, thanks for asking & thank you for the module suggestions!

Paul__B: You are right regarding XY problem, my life is effectively, and XY problem -_- Hence why i'd originally written that i was only after a few ideas, anything that popped into the head of anyone reading. Nothing too in depth, the project is in the stages where there are several variables still very unknown thus it's hard to deduce A without B, but equally B is dependent upon C and C cannot be deduced for 2 weeks etc etc etc. Mine field! I will certainly look into the ESP8266 thank you for putting the idea out there, I'd not considered Wi-Fi as heavily as other protocols but looking at the price & seemingly huge popularity of the product (great for troubleshooting) i'll be sure to keep it in mind!

Two Raspberry Pis with WiFi interfaces?
You could do most of your debugging on desktop x86 linux systems...

At the other end of the spectrum is the JeeNode: https://moderndevice.com/product/jeenode-v6-kit/

The JeeNode looks like it's just an RFM12B and a minimal (arduino-style) atmega328p board?

westfw: What i'd likely be doing would be along the lines of "two pi's + wi-fi modules" or more likely "atmega chip + wifi modules" although: I've some serious size restrictions, thus i'll likely do the usual "build it on an arduino/pi & then transfer all required parts over to custom PCB" JeeNode looks fairly good, very much along the right lines, if the main processor had a few more features and came in an SMD format it'd probably have ordered a pair. Perhaps i may be able to look into sourcing the radio units JeeLabs have used or similar. Again another Good idea on the table.

DrAzzy : I'd say you're right. If i end up using two separate modules, not a mixed signal chip, this would be pretty much what i'm after, although i'd need a few extra features on the chip.

Looking over some of the suggestions on the thread I really am torn between protocols, wi-fi or bluetooth, but then there is 802.15.4. Often quicker & easier to work with.

RFM12's come from HopeRF.

The chip in the JeeNode is a '328p - you can get it in a TQFP32 package. They use the DIP version because it's a kit, and many people don't like doing SMD soldering.

What features are important for you on the chip that the 328p doesn't have?

Re: protocols, be aware that WiFi/Bluetooth chips have varying levels of the protocol baked into the silicon or in the closed source firmware - so if you're looking to get involved in that, that's something to consider. Oh, and avoid the CC3000 wifi from TI - apparently the firmware is very unforgiving to interact with, and if you make it unhappy, it just locks up and you have to power cycle it to revive it. Gordon Williams of Espruino was complaining about his experience making that work with Espruino before the ESP8266 (for 1/6th the price) came out and everyone just used that.

He did say Two (three?) Serial Ports...
Maybe re-spin a JeeNode with the new mega328PB? (which has two.)