Smallest Way to Get 802.11 on an Embedded Board - Page 1
Forum section: electronics / general

author: TheAdmiralty
author_rank: Contributor
timestamp: September 19, 2016, 10:15:16 pm
content: Evening, everyone!Now, I'm sure this has been asked a million times, but I'd just like to at least take a moment to explain what I'm working on and maybe it will be a bit more interesting.I'm working on building up the control unit for what's basically a GPS-controlled Mars rover. Four wheels, each with an independent drive motor, GPS and compass for navigation, most likely a PIC32MX or PSoC 5LP (since I'm familiar with the two) to manage hardware control.The part I'm torn on right now is getting I/O to a remote client in order to do rerouting and manual control. Our original thought was to make use of some small SBC to host a Linux environment which would A) handle software storage of GPS routes and whatnot, and B) serve an HTML page using NginX to allow anything with a web browser and the password to access controls. This would interface with the MCU via RS232. Simple enough. (Let it be noted that this setup was decided upon for various design constraints from both us and the end user, so the foundation likely won't change.)My question is this. We can't put a RasPi on something that might go into production, mainly because of sourcing, longevity, licensing, and all that. I don't have the time to kludge together an entire single-board computer; if this is the only option, I'll need to do itnowbecause while we have a PCB prototyping mill, it isn't going to be doing BGA or QFN work any time soon, and so it would need to be sent out, etched, and assembled. Basically, what is the most low-profile, barebones way of getting something running Linux that can interface with RS232, and operate a wireless connection? Or if there are any other thoughts, anything is welcome!We'd looked into Intel's little Edison boards, but $70 is an awful lot for all it's doing, and a lot of the same problems still apply. Google isn't much help for this other than turning up hundreds of kickstarter projects that probably will never even reach production let alone be available for the next fifteen years.Any thoughts are appreciated!- M

author: langwadt
author_rank: Super Contributor
timestamp: September 19, 2016, 10:36:24 pm
content: Quote from: TheAdmiralty on September 19, 2016, 10:15:16 pmunless you are going to build hundreds if not thousands I doubt the $70 for an Edison will end up begin a lotand building you own just moves the longevity problem from the board to the components and the longevity of SoCstargeting cellphones and tablets is probably not something to rely on

author: nctnico
author_rank: Super Contributor
timestamp: September 19, 2016, 10:57:52 pm
content: You can buy a system on a module which are available in many formats and can have guaranteed availability. From >150 units it is economically viable to make a custom design with a SoC from TI or NXP (formerly Freescale). Still you have to count on spending quite some time to iron the bugs from the BSP (Linux kernel + bootloader).

author: Harvs
author_rank: Super Contributor
timestamp: September 19, 2016, 11:27:47 pm
content: Given you know PIC32, have you ruled out one of the various Microchip WiFi modules?It doesn't sound from your description like it's a very demanding application that couldn't be handled by a PIC32 with a WiFi module that has on-board stack all the way to TCP/IP. Put your web page on SD or the like.If you want dirt cheap (with some of the ensuing problems) the ESP8266 is a real contender these days.

author: TheAdmiralty
author_rank: Contributor
timestamp: September 20, 2016, 12:34:55 am
content: Yup, something like those ESP8266 modules is what I'm in the market for it seems. I'll have to find one that can handle an external high-gain antenna. I'm afraid I just don't have the time to implement an entire network stack from scratch on the MCU itself, or troubleshoot a bootloader setup right now, meaning I'm pretty much stuck with some similar module for the time being.We're basically taking a project that was already in the design stage, but that's using nothing but off-the-shelf components, some of which are grossly overspec'ed. My job is basically to take the pile of Arduinos and motor controllers and turn it into something vaguely commercialized, or at least the first iteration of it. Am working on the electrical job of replacing the $150 motor drive with more reasonable H-bridges at the moment, so I figured I'd outsource this one to the forum for opinions. Might end up moving hosting duty to a mobile device application after all it seems.

author: rstofer
author_rank: Super Contributor
timestamp: September 20, 2016, 01:41:37 am
content: Microchip provides source for an entire TCP/IP stack that, for certain, works over wire but I'm pretty sure it also supports WiFi. Their Ethernet Starter Kit is one place to lookI use wired ethernet with the mbed board (LPC1768) and the library provided at mbed.org. There is a WiFi libraryhttps://developer.mbed.org/components/cat/wifi/There's nothing particularly special about the (original) mbed board. I just connected the appropriate pins to an offboard MagJack and the rest was handled by the library (LwIP stack).None of these will be as robust as running Linux. You can do that on the Analog Devices Blackfin (uClinux). That's a very fast chip (600 MHz) and, of course, since uClinux is derived from Linux (leaving out memory management), the entire network stack is available.

author: Mr.B
author_rank: Unknown
timestamp: September 20, 2016, 01:52:14 am
content: Quote from: TheAdmiralty on September 20, 2016, 12:34:55 amThe ESP8266 modules sold as ESP-07 and ESP-07s have a U.FL connector for an external antenna.I have used them very successfully with reasonably high gain antenna. (12dBi Omni-Directional)They will support your serial comms requirements and have enough I/O for SPI or I2C.

author: westfw
author_rank: Super Contributor
timestamp: September 20, 2016, 10:28:21 am
content: QuoteThe ESP8266, and even most x86 motherboards have the same longevity problems. An RPi might be as good as anything else...The various US-vendor 802.11 modules (TI, Atmel, Microchip) might be slightly better. And harder to use.

author: krho
author_rank: Regular Contributor
timestamp: September 20, 2016, 05:21:03 pm
content: Why would ESP8266 had a longevity problem. The company is promising a 12years for bothhttps://espressif.com/en/products/longevity-commitmentand the new ESP32 brother that also has BT.

author: Scrts
author_rank: Frequent Contributor
timestamp: September 20, 2016, 05:54:13 pm
content: Quote from: blueskull on September 19, 2016, 11:35:22 pmIs CC3200 that horrible and not worth mentioning?

author: TheAdmiralty
author_rank: Contributor
timestamp: September 25, 2016, 01:31:04 am
content: Yep, at this point we've settled on using an ESP07 module as an access point that will communicate with a PIC32 via RS232, w/ a pair of jumpers to allow an external serial connection to the ESP for configuration. Thanks for all the thoughts - will keep an eye on this, still open to anything else up until the point this thing is actually soldered down and running. Debating between a PIC32 and a Cypress PSoC-5LP, but that's another matter entirely.Is there any information available on the pinout of these things? I've ran into the original in Chinese which is no use to me, and a handful of tutorials on various websites.

author: Mr.B
author_rank: Unknown
timestamp: September 25, 2016, 06:01:10 am
content: http://www.esp8266.com/is a community effort that has a world of information.There are translated datasheets for the modules that contain the actual ESP8266 chip.Some of them are a bit lacking, however the community knowledge makes up for it.A particular warning about the ESP-07 module itself: Some modules have the two I/O round the wrong way for the GPIO that handle I2C.It is not common, but does seem to happen in some batches/suppliers.Edit: I am not sure why you require a PIC32...The ESP8266 is a very powerful MCU for the money.If you need extra GPIO, a GPIO expander is easy to implement.

author: TheAdmiralty
author_rank: Contributor
timestamp: September 26, 2016, 12:06:51 am
content: @Mr. B - Long story short, the project manager that's handling this is a software engineer who originally specified a netduino to control this entire system through a bluetooth low-energy module (both of which were handed to us with a 'take this and make it work' sort of thing), and is going to be generally unreceptive to alternatives to his own design. We've since explained that there would benosupply chain and BLE isn't the right solution, but I'm putting whatever wireless system we'll be using on a mezzanine connector in the event of him turning around and trying to specify something else... I'd rather not have most of the central processing on the wireless module for that reason. Once it approaches actual production we can look into it.

author: mac.6
author_rank: Regular Contributor
timestamp: September 26, 2016, 12:03:30 pm
content: "Production"and "wifi" in the same sentence is a call for FCC certification.So better buy an of the shelf module that is already certified. This will save you a lot of time and hassle...

author: nctnico
author_rank: Super Contributor
timestamp: September 26, 2016, 12:10:23 pm
content: Also have all the electronics on one board. Cobbling a solution together with multiple boards is an interference nightmare waiting to happen.

author: Howardlong
author_rank: Super Contributor
timestamp: September 26, 2016, 01:22:38 pm
content: Quote from: blueskull on September 20, 2016, 05:57:23 pmWhen I last used the CC3200 about 2 years ago, I found it a nightmare to get working on my own board, even before turning on the radio. The problem I had was getting the main and secondary oscillators to even start up, even with the exact parts spec'd on their BoM. I could get everything to work on their ownTivaLaunchpad boards, but I gave up in the end with my attempts after no luck and three re-spins. I suspected it might be to do with the SMPS layout, although my layouts were solidly based on their reference designs and use the same BoM parts, but after burning a lot of time and energy on it I discounted it as an option. There is quite a bit going on that's hidden from you during power up, so debugging options are predominently limited to empirical scratch and sniff methods.

author: Howardlong
author_rank: Super Contributor
timestamp: September 26, 2016, 01:37:19 pm
content: Another option if you're already familiar with the PIC32 might be the upcoming PIC32MZEF Curiosity board (DM320104)... if you have the temerity to suffer the Harmony framework nonsense.I've had two on order for a month from MicrochipDirect, they still have not shipped despite a ship date of 21 Sept.Be aware that typically the WiFi throughput of these devices is limited.I managed a maximum UDP throughput of about 14Mbps with the CC3200, but only about 5Mbps with the 802-11n MRF24WN0MA WiFi module attached to a PIC32MZ and an AP two feet away. Some of this is inherently due to the device's own limitations, and some of it is a bottleneck managing the SPI interface, exacerbated by the overhead of the Harmony framework.Be aware of throughput limitations for all WiFi modules at this level, they might talk about bit rate at the 802.11 interface, but finding real world practical IP throughput expectations is much harder.