Jump to content
43oh

Recommended Posts

Hi guys,

 

For my final year project I'm going to be doing some embedded development related to "the internet of things". The specs aren't fully formed yet but it'll be mcu+sensors+wifi+maybe some actuators.

At the moment I've been doing some research on components, and was wondering if I could get some of your input?

 

So for wifi connectivity I'm looking at the CC3000 and RN-171, and currently favouring the CC3000. I was wondering if anyone worked with either of these chips, and what they thought about them?

 

My big question involves choosing a microcontroller (ideally a development board initially). The final application will likely be battery powered, so low power is a must. Sensors etc need some a/d, and since it is wifi enabled I would like a reasonable amount of RAM/Flash to experiment with.

 

Currently, since I have some experience with the value line series, I'm considering the MSP430F5529 board since it seems to have ample resources. I was wondering if anyone could weigh in with thoughts/ ideas/ suggestions? I've also been looking into the STM32LVDISCOVERY board, but have seen a few complaints with about the quality of resources (libraries etc) available for it. 

 

I know this forum might be biased towards the MSP430 but I'm posting in other micros hoping to get the opinions of those who have worked with other brands, but all feedback is welcomed :grin:

 

(Its not a major issue for me, but when it comes to development I tend to prefer working in Linux and avoiding the use of an IDE, so any chips with compilers that support Linux would be a bonus :smile: )

Link to post
Share on other sites

I don't have any experience with STM32 stuff, but others here do so hopefully they'll chime in.  The F5529 LaunchPad sounds like an excellent fit based on the limited description you have so far.  I have the CC3000 boosterpack but haven't exactly got it working yet... seems the existing energia lib et al is a bit half-baked (the base C library sounds like the way to go, I just haven't spent the time to grok it yet).  There's a lot of buzz around it, including Adafruit who sells generic breakout boards for it too.

 

I guess if you're just reporting sensor data and maybe turning a few things on/off, the MSP430 should be perfect assuming you have a chip with enough resources to drive the wifi stuff.  F5529 should be OK for that imo.  WiFi isn't exactly a power-miserly application though, so a big consideration will be how often it actually has to use the wifi... does it periodically wake up on its own, collect data & transmit?  Or should it be active all the time and waiting for inbound requests?  The latter is substantially more power-hungry due to the need to keep the RF pieces active all the time.  I bet it'd make the MCU choice a smaller piece of the puzzle in that instance.

Link to post
Share on other sites

WiFi isn't exactly a power-miserly application though, so a big consideration will be how often it actually has to use the wifi... does it periodically wake up on its own, collect data & transmit?  Or should it be active all the time and waiting for inbound requests?  The latter is substantially more power-hungry due to the need to keep the RF pieces active all the time.  I bet it'd make the MCU choice a smaller piece of the puzzle in that instance.

 

Yea, I have done some rough calculations, and the ~250 mA of the CC3000 will likely dwarf the MCU current. So as long as the MCU supports a decent low power mode a few mA here or there when active should not be a concern. The device will likely wake from sleep periodically to report data, and perhaps poll a server for instructions to keep current consumption low (rather than always be in an rx mode).

 

I considered the Tiva C LP for this as well but glancing over current consumptions I thought they were perhaps a bit too high and its improved processing / instruction set perhaps doesn't compensate in this application as I do not imagine it will be processing large amounts of data.

Link to post
Share on other sites

Yea, I have done some rough calculations, and the ~250 mA of the CC3000 will likely dwarf the MCU current. So as long as the MCU supports a decent low power mode a few mA here or there when active should not be a concern. The device will likely wake from sleep periodically to report data, and perhaps poll a server for instructions to keep current consumption low (rather than always be in an rx mode).

 

I considered the Tiva C LP for this as well but glancing over current consumptions I thought they were perhaps a bit too high and its improved processing / instruction set perhaps doesn't compensate in this application as I do not imagine it will be processing large amounts of data.

Yeah I am just getting started with the Tiva-C myself right now... generally speaking I don't think you need it for this application, but for what it's worth, you also don't have to run the Tiva-C at full speed; at 16MHz w/ all peripherals turned OFF (add some for the ones you do use) the Tiva will draw around 10-13mA, quite a few times more than the MSP430 but not astronomical against the backdrop of a 250mA CC3000 base load.  It has light sleep modes that cut the power in half (roughly) and RTC-enabled hibernate modes for ULP type of current draw if you need them.  It'll perform work faster than the MSP430 at the same speed.

 

Mainly a question of memory... and floating point.  HW floating point is a nice feature of the Cortex-M4F.  32KB SRAM & 256KB flash is nicer, but if you don't need it... then meh.  And floating point is supported in software on the MSP430, if you have the flash & processing time to spare (generally speaking everyone advises against floating point in embedded applications, but I say if it makes life a lot easier & you can afford the resources, why not.)

Link to post
Share on other sites

Both boards are cheap and easy to get started with. It may be time well spent getting both and taking a day or two seeing which you prefer.

 

I've got a few STM discovery boards. They're nice but I keep finding I drift back to the MSP430.

Ideally, but I'm not sure I have the time available to become familiar enough with both to then make a decision. I guess when I choose one, I could attempt to abstract from the HW enough to try and make swapping out the MCU an option should something crop up, but that's easier said than done.

Link to post
Share on other sites

The CC3000 takes-care of most of the heavy lifting, so an MSP430 is fine for your host MCU if you plan to use the CC3000.  

 

If you were implementing a TCP+WiFi stack in firmware, then you would probably want a Cortex-M3 or M4, both for the extra resources available (RAM/ROM) and the much higher data throughput.  There are quite a few, good tools for that, BTW.  Electric IMP is a fairly easy-to-use kit with some limitations.  ChibiOS is an RTOS with TCP/IP libs.  Both are solid options.

 

The other option is to use something other than WiFi.  Depending on what you want to do, it may be easier to use a USB gateway with a lightweight WSN protocol than to go through the formality of WiFi.

Link to post
Share on other sites

Well, it'll be hard to beat an MSP430 power usage wise. But there are also some MCU's by NXP, that might fit the bill. M0/ M0+ will probably be the best as far as power consumption goes for the Cortex Mx classed MCU's.

 

Me . . . I'd be very tempted ( especially right now ) to toss a Beagelbone Black at it - With a mini solar panel / larger battery. But yeah, lol that'd be overkill most likely.

 

EDIT

 

Oh, and right. It does not seem as though you will need a ton of GPIO, so something like the tssop-28 G2553 might even work ?

Link to post
Share on other sites

Well, it'll be hard to beat an MSP430 power usage wise. But there are also some MCU's by NXP, that might fit the bill. M0/ M0+ will probably be the best as far as power consumption goes for the Cortex Mx classed MCU's.

 

Me . . . I'd be very tempted ( especially right now ) to toss a Beagelbone Black at it - With a mini solar panel / larger battery. But yeah, lol that'd be overkill most likely.

 

EDIT

 

Oh, and right. It does not seem as though you will need a ton of GPIO, so something like the tssop-28 G2553 might even work ?

I was considering even a value line 2553 launchpad, but I think Id need more memory - I'd like room to expand the project the project if needs be. Thinking perhaps porting arduino twitter libraries at the moment.

Link to post
Share on other sites

The CC3000 takes-care of most of the heavy lifting, so an MSP430 is fine for your host MCU if you plan to use the CC3000.  

 

If you were implementing a TCP+WiFi stack in firmware, then you would probably want a Cortex-M3 or M4, both for the extra resources available (RAM/ROM) and the much higher data throughput.  There are quite a few, good tools for that, BTW.  Elecric IMP is a fairly easy-to-use kit with some limitations.  ChibiOS is an RTOS with TCP/IP libs.  Both are solid options.

t

The other option is to use something other than WiFi.  Depending on what you want to do, it may be easier to use a USB gateway with a lightweight WSN protocol than to go through the formality of WiFi.

I believe at the moment, WiFi is more or less a requirement. Not too sure what you are referring to though with your suggestion. Use a simple protocol for the sensors and potentially have a controlling "base station" to put them onto the internet? Out of curiosity how does the USB gateway fit in? The base station communicates to PC over USB? 

I had considered Bluetooth LE, as its a relatively new technology and Ive seen some pretty low power transceivers, but as I said previously I believe it has to be WiFi currently.

Link to post
Share on other sites

Not to start a war but some guys on IRC were saying that Energy Micro ARM chips beat the MSP430 at both power usage and performance. Any thoughts? Low-power seems to be the MSP430s big selling point.

 

If you are looking at 8/16 bit MCUs, then you are looking at the lower-end MSP430 devices, and these are more power efficient than EFM32 for those sorts of apps.  If you are looking at MSP430F5, EFM32 will trounce it at everything, up and down.  STM32L is often more energy efficient than MSP430F5 is, and EFM32 is more efficient than STM32L.  The one caveat of EFM32 is that it is quite expensive, but MSP430F5 devices aren't usually very cheap, either.

Link to post
Share on other sites

Use a simple protocol for the sensors and potentially have a controlling "base station" to put them onto the internet? Out of curiosity how does the USB gateway fit in? The base station communicates to PC over USB? 

Yes, precisely.

 

WiFi is expensive.  It is power hungry, it forces heavy infrastructure costs because it doesn't scale very well, and the CC3000 is itself an expensive product.  Generally, it is best to avoid for wireless sensor networking unless you're just goofing around, or unless you are making some type of niche-y home automation/networking (HAN) device.

 

Pretty much any MCU you use is going to be a "drop in the bucket" to the CC3000 in terms of cost and energy requirement.  Rhetorically, I would use a value-line STM32F or some MSP430, depending on which of these two I am more familiar with.  No reason to use a silly, 5V AVR or PIC.  Going STM32L vs. F will save you only ~3uA, which is negligible compared to the WiFi network processor core duty cycle energy.  MSP430, basically the same argument.

Link to post
Share on other sites

Rhetorically, I would use a value-line STM32F or some MSP430, depending on which of these two I am more familiar with.  No reason to use a silly, 5V AVR or PIC.  Going STM32L vs. F will save you only ~3uA, which is negligible compared to the WiFi network processor core duty cycle energy.  MSP430, basically the same argument.

I was looking at the 32L152CDISCOVERY board (order code STM32L152C-DISCO) which handily comes with an LCD, and I seen a few similarly priced F versions as well after your suggestion (STM32F3DISCOVERY,STM32F4DISCOVERY ) . I know that you praise them pretty highly in your post: http://forum.43oh.com/topic/3416-stm32l-vs-msp430f5-whats-left-for-msp430/

 

I would be curious to hear what your (and others) thoughts on using these chips were? While they seem to pack more punch that the MSP430F5529, my concerns would be the ease of development (datasheets, header files, example code etc) and community support. I hear the latter, at least in terms of forums etc isn't particularly great (http://forum.43oh.com/topic/1039-web-site-blog-like-43oh-for-stm32/)

 

I guess it may be good to have some ARM experience on the old CV  ;-)

Link to post
Share on other sites

@ Here is my brief opinion on this matter.

  • If you are familiar with MSP430 and you want to get something out quickly, use MSP430
  • If you are serious about designing an internet-of-things product with much of a future roadmap, take the time to learn Cortex-M.

This is harsh on the MSP430, but I've worked with MSP430 for many years, and for the past two years or so I've started also working with Cortex-M.  I would not recommend any MSP430F5 for any new designs, except for some with niche requirements that benefit from FRAM.  In reality, there's usually a cheaper ARM with sufficient SRAM to store data that you'd put in FRAM, and it makes up the sleep energy difference by having a much more efficient active cycle.  

 

I believe that the future of MSP430 is the G series, which will compete primarily with PIC/AVR.  The battle for the mid & top range of the MCU market is over.  Cortex-M is a vastly superior technology, and due to the way ARM's business model works, ARM licensees are able to reduce R&D expenditure and pass on the savings to the cost of the product.  So it is better and cheaper than MSP430F5.  That's a deathblow, and I suspect TI knows.  If I were running the MSP division I would stop development and marketing on the F5 and instead develop a new MSPXXX that uses a low-voltage CM0+ with the same peripherals and clocking system as MSP430.  However, I don't expect them to be very proactive about this, because the MSP division is a relative minnow in TI.  I think it does about 300M revenue per year, which for TI is a zone where the goal is more to maximize profit than growth.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...