Hackaday Prize Entry: WiFi Game Boy Cartridge

[DaveDarko] has entered a unique project into this years Hackaday Prize a WiFi Game Boy Cartridge. If you are active over at Hackaday.io I’m sure you’ll have run across Dave at some point or other, maybe we need to start charging him rent.

The aim of this project is to create a WiFi enabled Game Boy cartridge using an ESP32 which would then enable the user to do a number of different things. For example, it could be used as a portable war driving device. You could drive around scanning local WiFi networks all from the comfort of a classic Game Boy bringing back fond memories of your childhood.

This WiFi Game Boy cartridge may even be capable of some extremely light web browsing or be used as a unique controller for all your Internet connected things. Either way this project looks promising, We look forward to seeing how this progresses in the coming months.

Hands-On The Hot New WeMos ESP-32 Breakout

Just two weeks ago our favorite supplier of cheap ESP8266 boards, WeMos, released the long-awaited LOLIN32 ESP-32 board, and it’s almost a killer. Hackaday regular [deshipu] tipped us off, and we placed an order within minutes; if WeMos is making a dirt-cheap ESP32 development board, we’re on board! It came in the mail yesterday. (They’re out of stock now, more expected soon.)

If you’ve been following the chip’s development, you’ll know that the first spin of ESP-32s had some silicon bugs (PDF) that might matter to you if you’re working with deep sleep modes, switching between particular clock frequencies, or using the brown-out-reset function. Do the snazzy new, $8, development boards include silicon version 0 or 1? Read on to find out!

Continue reading “Hands-On The Hot New WeMos ESP-32 Breakout”

ESP32’s Freedom Output Lets You Do Anything

The ESP32 is Espressif’s new wonder-chip, and one of the most interesting aspects of its development has been the almost entirely open-source development strategy that they’re taking. But the “almost” in almost entirely open is important — there are still some binary blobs in the system, and some of them are exactly where a hacker wouldn’t want them to be. Case in point: the low-level WiFi firmware.

So that’s where [Jeija]’s reverse engineering work steps in. He’s managed to decode enough of a function called ieee80211_freedom_output to craft and send apparently arbitrary WiFi data and management frames, and to monitor them as well.

This ability is insanely useful for a WiFi device. With low-level access like this, one can implement custom protocols for mesh networking, low-bandwidth data transfers, or remove the requirement for handshaking entirely. One can also spam a system with so many fake SSIDs that it crashes, deauth everyone, or generally cause mayhem. Snoop on your neighbors, or build something new and cool: with great power comes great responsibility.

Anyway, we reported on [Jeija]’s long distance hack and the post may have read like it was all about the antenna, but that vastly underestimates the role played by this firmware reverse-engineering hack. Indeed, we’re so stoked about the hack that we thought it was worth reiterating: the ESP32 is now a WiFi hacker’s dream.

ESP32’s Dev Framework Reaches 2.0

We’ve been watching the development of the ESP32 chip for the last year, but honestly we’ve been a little bit cautious to throw all of our friendly ESP8266s away just yet. Earlier this month, Espressif released version 2.0 of their IoT Development Framework (ESP-IDF), and if you haven’t been following along, you’ve missed a lot.

We last took a serious look at the IDF when the chips were brand-new, and the framework was still taking its first baby steps. There was no support for such niceties as I2C and such at the time, but you could get both cores up and running and the thing connected to the network. We wanted to test out the power-save modes, but that wasn’t implemented yet either. In short, we were watching the construction of a firmware skyscraper from day one, and only the foundation had been poured.

But what a difference eight months make! Look through the GitHub changes log for the release, and it’s a totally new ballgame. Not only are their drivers for I2C, I2S, SPI, the DAC and ADCs, etc, but there are working examples and documentation for all of the above. Naturally, there are a ton of bugfixes as well, especially in the complex WiFi and Bluetooth Low Energy stacks. There’s still work left to do, naturally, but Espressif seems to think that the framework is now mature enough that they’ve opened up their security bug bounty program on the chip. Time to get hacking!

Continue reading “ESP32’s Dev Framework Reaches 2.0”

A Simple, Easy To Use ESP32 Dev Board

The ESP32 is Espressif’s follow-up to their extraordinarily popular ESP8266 WiFi chip. It has a dual-core, 32-bit processor, WiFi, Bluetooth, ADCs, DACs, CAN, a Hall effect sensor, an Ethernet MAC, and a whole bunch of other goodies that make this chip the brains for the Internet of Everything. Everyone has been able to simply buy an ESP32 for a few months now, but the Hackaday tip line isn’t exactly overflowing with projects and products built around this wonderchip. Perhaps we need an ESP32 dev board or something.

The Hornbill is the latest crowdfunding campaign from CrowdSupply. It’s an ESP32 dev board, packed with the latest goodies, a single cell LiPo charger, and a USB to serial chip that will probably work with most operating systems. The Hornbill comes in two varieties, a breadboardable module, with a breakout board that includes an SD card slot, sensors, an RGB LED, and a bunch of prototyping space. The second version is something like an Adafruit Flora with big pads for alligator clips.

While this isn’t the first ESP32 breakout we’ve seen — Adafruit, Sparkfun, and a hundred factories in China are pumping boards with this chip out — it is a very easy and inexpensive way to get into the ESP32 ecosystem.

Enabling Ethernet On The ESP32

The ESP32 is the latest and greatest wonderchip from Espressif. It’s a 32-bit, dual-core chip with WiFi, Bluetooth, and tons of peripherals such as CAN and Ethernet. For most of these peripherals, Espressif already has a few bits of example code, but [Frank Sautter] didn’t like the Ethernet implementation. The ‘stock’ code calls for a TLK110 Ethernet PHY, but that’s an expensive chip when bought in quantity one. A better chip would be the LAN8720, so [Frank] built a board to enable Ethernet on the ESP32 with this chip.

The ESP32 only needs a few components to wire it into an Ethernet network. Just a few resistors, capacitors, and an RJ45 jack will take care of most of the work, but because he’s taking the Ethernet ‘shield’ route, he needs to add his own Ethernet PHY. The Waveshare LAN8720 is the chip for this, but there’s an issue with the pin configuration of the ESP32. GPIO0 on the ESP32 has two functions — the first is pulling it low during startup for serial programming, and the second is the clock input for the EMAC function block. Some bit of circuitry must be devised to allow for both conditions to enable Ethernet on the ESP32.

[Frank]’s solution is to add a few pull-up and pull-down resistors to a breakout board, and use an unused GPIO pin to switch GPIO0 high during startup, but allows a crystal to grab it a bit later. It’s a hack, certainly, but it does allow for some much cheaper chips to be used to give the ESP32 Ethernet.

ESP32 WiFi Hits 10km With A Little Help

[Jeija] was playing with some ESP32s and in true hacker fashion, he wondered how far he could pull them apart and still get data flowing. His video answer to that question covers the Friis equation and has a lot of good examples of using the equation, decibels, and even a practical example that covers about 10km. You can see the video below.

Of course, to get that kind of range you need a directional antenna. To avoid violating regulations that control transmit power, he’s using the antenna on the receiving end. That also means he had to hack the ESP32 WiFi stack to make the device listen only on one side. The hack involves putting the device in promiscuous mode and only monitoring the signals being sent. You can find the code involved on GitHub (complete with a rickrolling application).

Continue reading “ESP32 WiFi Hits 10km With A Little Help”