Showing posts with label ARM. Show all posts
Showing posts with label ARM. Show all posts

Thursday, April 9, 2015

Prototyping with EMW3162 "IoT" devices.

I've picked up a bunch of EMW3162 devices recently. I don't yet have any up on Anibit, I'm trying to figure out how many I want to keep and and many I could part with.

EMW3162 Overview


They are really neat little devices:

The Good


  • Price: Runs in the neighborhood of $10 USD
  • Wifi b/g/n, reportedly up to 54MBps
    • On-board chip antenna, and UFL connector for an optional external antenna
  • Included STM32F205 ARM Cortex-M3 120MHz CPU with 128kb SRAM and 1Mb of Flash
  • About 20 available IO pins (+2 on board LEDs, and JTAG/SWD breakout)
  • Uses Broadcom Wifi chipset, compatible (after some finagling) with their WICED sdk
    • Broadcom has a lot of support for "IoT" in their SDK, with appliance samples, Access Point setup, and embedded web server support.
  • Mostly (but not all!) 5V tolerant I/O pins. (I love that, level shifters are such a pain)

The Bad

  • Documentation for the device itself, is almost non-existent. 
    • You must rely on the documentation for the constituent parts, and the work of some industrious hackers, see this
    • If you can read Chinese, you may have better luck.
  • It's not straightforward on how to use it as simply a Wifi adapter for an external Microcontroller. I believe there are firmwares for this, but it will require a lot of research.

The Ugly

  • 2.00 mm pitch headers on the breakout. Who does this, seriously! I think MxChip must have hired the person who came up with the XBee socket.
  • The various SDK and libraries are a slight licensing minefield. If you want to use this for a closed source or proprietary application, read through all the licenses of all the sub-parts carefully. There are some "free for closed source commercial" library license options, but not all of them are. 

Prototyping

I have thrown together a quick and dirty adapter PCB to let you mount the EMW3162 on a breadboard. I'm considering possibly doing a run of kits for the adapters to get the cost down, we'll see. 

You can get your own adapter from OSH Park here. [Updated link to new version here] Use at your own risk, I have not received my boards yet to verify that it works, but a paper printout looked like it matched up, and the actual circuit is so simple. You will also need:
  • 2 15-pin 2.54mm (0.1") pitch male headers for the breadboard part.
  • 2 15-pin 2.00mm pitch male headers for the EMW3162 module, unless you already have them mounted.
  • 2 15-pin 2.00 pitch female headers to receive the EMW3162 on the adapter.

Comparison to ESP8266


The main advantages of this over the popular with makers ESP8266 is that it has many more pins broken out, and they are 5V tolerant, making this device a better candidate for standing on it's own as an appliance vs acting as a peripheral for another Microcontroller. The CPU of the EMW is also faster (120 Mhz, vs 80Mhz), and has a lot more on board RAM and Flash space. Also, the WICED SDK from Broadcom is very sophisticated, with support for features such as OTA updates to the device. You can develop code to run directly on the ESP8266, but the support for that is more community built than officially supported. To be fair, WICED does not officially support the EMW3162, ether, but the board is close enough in design to other officially supported devices that it's not very hard to port.

Though the EMW3162 is about twice the price of the ESP8266, for some applications, it is worth it, especially if the extra capabilities allow you to remove external components form your design.

Resources to get you started

  • Several folks have started an analysis as a Hackaday project, and they're adapting their own flavor of the WICED sdk for use with the board.
  • The WICED SDK, which includes an Eclipse/CDT tailored to embedded devices using Broadcom chipsets.
  • The Github Repo for the WICED fork specific to this board.
  • Seeed studio sells a couple Development boards you can plug your 3162 into. This one has a JTAG port for an external JTAG, and this one has an on board JTAG built in.
  • My breadboard adapter you can order in multiples of 3 for $8 per set (you'll need to find the headers separately)

--P




Thursday, August 1, 2013

Zaethira Update.

I've made a lot of progress in the past few weeks on my Robot. It had remained dormant for a few months, but I decided to take some time for a context switch to one of my favorite projects. I've got probably 80% of the physical structure built. And the software is probably about 50% done. And the software side of things has made leaps and bounds.

Here's an updated color-coded architecture diagram. I've decided to drop the speaker output feature, mainly because I'm not sure what I'd do with it, but I may resurrect the idea.

Compare to my original chart here

I've got the Pawn scripting working pretty well, I've got some of my low level functionality exposed as Pawn API's, and I've adapted the Chibi/OS shell to treat Pawn bytecode files as "executables" that I can optionally launch in a background thread.

I could probably fill 20 pages with all the developments, but I'm not going to, I just spared myself enough time for a brief post.

Here's a video showing a script running that tries to navigate a square. The compass and and encoder readings are queried in the script to detect 90 degree turns and half meter movements. The compass code is probably beta level, and I'd call the encoder tracking alpha level, so that's why the square is somewhat off. Eventually, I'll have more elaborate geo-spatial reckoning, so that I'll simply command the robot to "go to coordinate x,y, and it will figure out how to get the from the current position(avoiding obstacles too of course). I hope this comes out, Blogger doesn't seem to have an easy way to preview video before publishing a post.



I can also control it manually via IR remote controller from a cheap IR helo.


Fun times.

--P

Saturday, October 20, 2012

Robot update.

I haven't posted in a while. The lulls usually happen when I'm busy. I've failed you, my adoring fans, and for that I blame... um squirrels..

I have been happily jamming away for the past couple months on my robot, Zaethira. (Which is a concatenation of my kids' and wife's names, and happens to sound geek awesome, the geekiness of the whole is greater than the geek sum of the parts).

Anyway, I could have written a 20 page blog post about how things are coming along, but I think a diagram does a much better job. I made the below because I needed to get a handle on where I needed to focus and what I planned to do. This diagram made me realize how flipping complex this project is.


Friday, October 21, 2011

Energy Micro EFM32 "Tiny Gecko" Developer Board

I recently attended a seminar featuring the EFM32 Gecko processor from Energy Micro, an ARM Cotex M3 architecture based chip, with a focus on ultra low energy applications. I enjoyed the seminar a lot, though I'm not sure if that was due in part to the change of pace from my day job. The seminar was 20 minutes from my house, and attendees recieved a EFM32 starter kit.


Energy Micro is a relatively new chip manufacture based in Norway.

Tuesday, April 26, 2011

Word Clock, Part 1

This was probably my biggest, most ambitious electronics project I've done so far. (And also one of my first)
It was inspired by this:
http://www.instructables.com/id/A-Word-Clock/, which in turn was inspired by: http://blog.makezine.com/archive/2009/09/qlocktwo-clock-tells-time-with-word.html.  (I see that the guy who did the instructables clock has since done new version of it, it looks really nice.)

Anyway, here is mine:

My word clock. If I could have taken a picture that hid the flaws, I would have :)