Turning Cheap WiFi Modules Into Cheap WiFi Swiss Army Knives

When the ESP8266 was released, it was sold as a simple device that would connect to a WiFi network over a UART. It was effectively a WiFi modem for any microcontroller, available for just a few bucks. That in itself is awesome, but then the hackers got their hands on it. It turns out, the ESP8266 is actually a very capable microcontroller as well, and the newest modules have tons of Flash and pins for all your embedded projects.

For [Amine]’s entry to the Hackaday Prize, he’s using the ESP8266 as the ultimate WiFi Swiss Army knife. The Kortex Xttend Lite is a tiny little WiFi repeater that’s capable of doing just about anything with a WiFi network, and with a bit of added hardware, can connect to Ethernet as well.

The hardware on this board sports an ESP8266-07S module, with two free GPIO pins for multiple functions. There’s a USB to UART in there, and a voltage regulator that’s capable of outputting 600mA for the slightly power hungry radio. There’s also an integrated battery management and charge controller, allowing this board to charge an off-the-shelf lithium cell and run for hours without any wires at all.

So, what can this board do? Just about everything you would want for a tiny little WiFi Swiss Army knife. There’s traffic shaping, port mapping, packet sniffing, and even support for mesh networking. There’s also an SMA connector on there, so grab your cantennas — this is a great way to extend a WiFi network, too.

This is a well-designed and well-executed project, and what makes this even more amazing is that this was done as one of [Amine]’s high school projects. Yes, it took about a year to finish this project, but it’s still amazing work for [Amine]’s first ‘high-complexity’ design. That makes it an excellent learning experience, and an awesome entry to this year’s Hackaday Prize.

22 thoughts on “Turning Cheap WiFi Modules Into Cheap WiFi Swiss Army Knives

  1. Okay, nice, but let’s talk about the real issue here: who designs a new device with a Mini USB connector in 2018? Is there something morally offensive about being compatible with my drawer-full of Micro USB cables and chargers? Is it an act of principled defiance against the government overreach that standardized phone chargers, or just nostalgically misguided affection for a connector that died with the W. Bush administration? We need to know!

    1. Well, I’ll throw my hat in the pro-mini USB ring. I’ve had to fix too many micro-USB receptacles on field demo hardware. They just pull off of the board eventually, since most of them don’t have through-hole mounting stakes. Even the full-SMT minis are better since they have room for more, larger tabs. Epoxy helps a little, but it’s really only adhering to the soldermask. Best is a properly designed enclosure that keeps the receptacle held in place, but demo hardware is often just a bare board.

      I’ve seen a couple of micro receptacles with a big jumper wire soldered up and over them to make a stake, and that seems OK but so hacky.

      1. They’re probably low quality micro USB ports. Micro USB connectors although far from perfect (especially when higher current supply is involved) are a lot better than mini ones. I mean really A LOT better.

    2. Don’t ever buy a “mini clip MP3 player” from eBay. They’re cheap, they’re awesome (if you use them right) — but they have the USB Mini-B connector that you love to hate on for no real reason.

      In fact… don’t ever buy much of anything with USB in it from eBay (except maybe a cell phone). eBay’s HK/CN side is basically one huge love letter to that particular type of port.

      There’s actually a reason for that. Those connectors are used almost exclusively as *charging* ports. You’re not typically expected to plug ’em to a computer (although that’s not to say you can’t — and those players double as card readers when plugged in, because they require a MicroSD (aka “TransFlash” or TF) card to function anyways, so why the heck not) and if you stick a MicroUSB port on something, that port, per the USB specifications, ABSOLUTELY FRIGGIN’ MUST support USB-OTG (or else!), because, hey, what are you ever gonna use *that* port for other than a cell phone? (That was such a ginormous brain fart on the part of the USB Consortium that it very likely registered with seismologists all over the globe.) Which means the manufacturers have to stick extra code in the firmware that nobody will ever, ever use, because it doesn’t make sense to have (eg) a USB-OTG enabled MP3 player that doesn’t even use USB for storage, FFS — and of course they can’t charge extra for it because it’s a completely meaningless feature, adding absolutely no relevant functionality, on 97%+ of what it would be attached to. So, rather than make extra work that cuts down on profits and doesn’t help anyone because it’s utterly useless in the application it’s going into, they use a different connector that doesn’t have that stupid, thoughtless requirement.

      …and if you don’t have that cable, eBay will happily get one to you in a few days, for about the cost of a Happy Meal — a little less if you’re willing to wait two weeks or so for ePacket shipping, and even less than that if you’re willing to wait a month or two for “someday maybe” shipping (as I prefer to call it — that’s the “throw it on a boat and hope it doesn’t sink” tracking-free and arrival-guarantee-free “economy international shipping”).

      tl;dr it isn’t that bad (or that dead), and MicroUSB has stupid stuck to it in an odd place, so quitcherb!tchen.

      1. Mind citing where in the USB specification that OTG requirement comes from? Because as far as I can see (Universal Serial Bus Micro-USB Cables and Connectors Specification revision 1.01, section 3.3), it only applies if you put a Micro-AB receptacle on your device (because why would you put a socket that accepts the host end of an OTG cable on a device that can’t be an OTG host?). Stick to Micro-B (like everybody does) and the normal peripheral-only rules apply.

      2. I have a Galaxy Tab 3.0 7″ with micro B connector, and it does not have OTG support. Dunno if it’s disabled in the software or if Samsung went to extra effort to not include it in the hardware.

    3. Because Micro USB doesn’t live up to the claims, especially the cables. I never ever had to replace a Mini B cable but I have had to replace several Micro B cables. #1 failing is the retention tabs that lose their spring and collapse, or break off. #2 failing is the contacts that are super tiny and wear or collapse, causing iffy contact.

    4. We’re having the USB mini / micro argument on the other article about USB-C. The summary is, some like one, some like the other, but it doesn’t matter because mini is dead anyway and nobody’s made anything with them for a couple of years now.

  2. The firmware is very nice, but the ESP8266 is pretty slow as far as networking goes. 5mbps is pretty low for something you use as a network extender. To me it’s more like a showcase of what can be done than anything actually useful.

    1. Depends on usage. Although that said, for something like a sensor network with a low datarate, the enormous power consumption would make it impractical. I suppose 5Mbps falls between being faster than sensors need, but not up to full-speed modern Internet.

      Then again, how fast do you need your web browsing to be? If it’s only a few users, there might be situations where this is just the ticket, particularly since it’s not expensive. We got by with 28 KILOBITS in my day, Junior!

      Is the ESP32 any faster?

  3. This has to be the best project documentation I have seen at hackaday.io. My suggestions for figure revisions. I have to feel most would want to mount this in an enclosure. Save a few cents and eliminate the power switch and receptacle , along with the LEDS. Have solder pads so the user can install their preferred parts and assembly method. MFJ Enterprises needs to notice this and wed it to the TNCx into one product. That should go long way in the Amateur radio community to modernize digital network and st enable hams to resist relying on the internet for digital, telephony, and video networks. Cantennas can and do fill a need, but in a mesh network stand alone nodes can be better served better omni- directional, and directional arrays with down tilt patterns designed in. Perhaps Al Williams or any other HAD contributor could work that topic in the educational series In regards to the data connector the Type A is physically robust and fast enough to suit the needs of most, IMO.

    1. Interesting, albeit a conversation for elsewhere. The hardware and firmware is pretty simple for the serial server side to put a TNCx on the local LAN, the drivers for the plethora of packet programs out there to access the ESP/TNCx on the LAN are where the work would need to be done.

  4. Can’t help but think this device is not going to be very efficient in terms of networking. Something like AR9331 would be better, run Linux and have an actual Ethernet port that’s not constrained by SPI, as well as support USB modems – and with Linux, you can do all kinds of filtering/routing, not just the type the firmware was written for.

  5. All I can sat is WTF happened to the world – building an electronics project in high school for me was a audio intercom built on a lump of pine, and an attempt at an nitrogen LASER for a science fair project with the electronics built on a piece of laminex with holes drilled in it because I couldn’t afford vero board (Proto board or what ever name you call it)

    Now kids are pumping out projects that handle network connections mesh networking built on double sided silk screened PCBs out of and components that looks like a professional piece of kit and people are bitchin’ cause it’s got a mini usb connector and the esp8266 can only handle 5Mbps…

    For an IOT device module 5Mbps is currently plenty fast enough for most applications.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.