The ESP: A New 1kB Contender Appears

The ESP8266 is officially checking into the Hackaday 1kB Challenge. Doing something meaningful in 1kB of compiled code is tricky; modern SDKs like the ones often used for ESP8266 compile even the simplest programs to nearly that size. If you want to use this hardware in your 1kB Challenge entry, I have a solution for you!

The ESP8266 now has a barebones build environment focused on minimizing code size, as little as 131 bytes to boot up and blink an LED. It also “supports” some new, insane clock rates (like 346 MHz) and crazy development cycle speeds. The WiFi is stuck in “airplane mode,” but it will be worth your time to consider the ESP for the next non-WiFi project you’ll be doing.

Far too often, we follow design patterns that ‘just work’ instead of looking for the ones that are optimal because we’re afraid of wasting time. The benefits of keeping code tight and small are frequently overlooked. When code is small and environments minimal, RAM and FLASH become easier to come by, compiled binaries shrink and time wasted by compiling and flashing can decrease by an order of magnitude! We rarely see just how much value is added when we become a good engineer: being done only when there’s nothing left to remove from a design. Nosdk8266 will let you see what it’s like to test out code changes several times a minute.

Just a month ago, when preparing the ESP8266 for a USB bootloader, I had to make a stripped-down environment for it. It’s not based on the Official Non-OS SDK or the RTOS sdk, but an environment that can boot up and blink an LED. Not just blink an LED, but tweak the clock in some totally unexpected ways and even run the I2S bus (used for espthernet and Color NTSC Broadcast Video). If you’re not at the submission phase for your 1kB challenge, you can even use the mask ROM for printf! Now you can tweak your code and — in under 2 seconds — see what the new code does!

Even in PICO mode, the part still has to use the mask ROM to be loaded, but thankfully, the 1kB Challenge has added an exception for unavoidable bootloaders. No longer bound by the shackles of WiFi, I can’t wait to see what you’ll do with the ESP8266. Just beware that the processor may not work reliably when overclocked at 346 MHz (332.5%,) and you’ll certainly be voiding any warranties you may have. Sounds like fun, right?

Editorial Note: This is a guest article from Charles Lohr, aka [CNLohr]. Although he has written a few other guest articles, he is not a regular contributor to Hackaday and therefore, this article does not disqualify him from entering the 1kB Challenge. We felt it more fair to publish this article which shares the tools he’s using to make code smaller, rather than to keep them to himself for fear of disqualification. While we have your attention, we wanted to mention one of Charles’ articles which was published on April 1st — we still think there’s a lot of people who don’t realize it wasn’t a prank.

Build Your Own YouTube Play Button

The only thing that matters in this world is the likes you get on social media platforms. To that end, YouTube has been sending out silver and gold play buttons to their most valuable creators. [Sean] hasn’t screamed into a microphone while playing Minecraft long enough to earn one of these play buttons, so he decided to build his own.

This play button isn’t just a bit of pot metal ensconced in a frame brought to you by Audible dot com; this YouTube play button actually does something useful. It’s a PCB with 144 LEDs working together as a display. There’s an Atmel SAMD21 microcontroller on board to drive the LEDs, and an ESP8266 to pull data down from the Internet. What data is worthy enough to go on an Arduinofied YouTube play button? The subscriber count for [Sean]’s channel, of course. Go subscribe, it might crash his Play button.

Admittedly, there were a few problems with this Play button PCB. Firstly, the ESP8266 can’t directly communicate with the YouTube API to pull down the subscriber count. That problem was fixed with a Raspberry Pi that could connect to the API, and programming the ESP to pull the data from the Pi. Second, this was [Sean]’s first experiment with double-sided SMD boards reflowed in a toaster oven. The first side to be assembled was easy, but to get the second side on, [Sean] turned to low-temp bismuth solder paste. Except for a small error in assembling the board, everything worked as planned.

It’s a great project, and if you want to check out what the better parts of YouTube look like, check out [Sean]’s video below. Don’t forget to rate, comment, like, unlike, or subscribe.

Continue reading “Build Your Own YouTube Play Button”

ZX81 Connects To The Network

 

[Victor Trucco] makes us wish we spoke Portuguese. He’s done a lot of retrocomputing projects including connecting a ZX81 to the Internet to load programs. The project uses — what else — an ESP8266 to get the WiFi communications. You can see a video below if you want to exercise your high school Portuguese.

It is somewhat ironic that the ZX81’s CPU is kept busy driving the video, reading the keyboard, and running about just over 3 MHz which doesn’t even translate into 3 MIPS on that processor. Meanwhile, the “servant” ESP8266 has a 32-bit Tensilica CPU running at 80 MHz. Times have changed.

Continue reading “ZX81 Connects To The Network”

“Alexa, Make My ESP8266 Do Something”

The Amazon Echo and its diminutive Dot cousin have the handy feature of being able to control some home automation devices. If you own the right manufacturer’s hardware you can bend your home to your will using the power of your voice alone.

The trouble is, if your hardware isn’t on the list of supported devices or if you make your own, you’re out of luck.

[Xose Pérez] had been sidestepping this problem by using a server running a set of scripts emulating a Belkin WeMo device, which Echo supports. The server could issue commands to his microcontrollers, but he wanted more. Why not cut out the middle man to incorporate the WeMo emulation directly on the ESP8266 that did the work?

He took the Fauxmo Python WeMo emulator he had been using, and ported it to an ESP8266 library that can be incorporated in existing code to make it appear to the world as a WeMo device. With the code itself he has provided full instructions on its BitBucket page as well as on the page linked above.

He admits that he is not the first person to have achieved this aim, and points to this earlier project. However his requirement for a library to be incorporated in another piece of software were not satisfied by it, hence his work.

We like this project, but it’s probably worth reminding readers that Alexa does have an SDK in the form of the Alexa Skills Kit. You can use it to do all sorts of clever things with your Echo or Dot… or you can make it the brains of a Big Mouth Billy Bass novelty ornament.

Jenkins And Slack Report Build Failure! Light The Beacons!

When you have a large software development team working on a project, monitoring the build server is an important part of the process. When a message comes in from your build servers, you need to take time away from what you’re doing to make sure the build’s not broken and, if it’s broken because of something you did, you have to stop what you’re doing, start fixing it and let people know that you’re on it.

[ridingintraffic]’s team uses Jenkins to automatically build their project and if there’s a problem, it sends a message to a Slack channel. This means the team needs to be monitoring the Slack channel, which can lead to some delays. [ridingintraffic] wanted immediate knowledge of a build problem, so with some software, IoT hardware, and a rotating hazard warning light, the team now gets a visible message that there’s a build problem.

An Adafruit Huzzah ESP8266 board is used as the controller, connected to some RF controlled power outlets via a 434MHz radio module. To prototype the system, [ridingintraffic] used an Arduino hooked up to one of the RF modules to sniff out the codes for turning the power outlets on and off from their remotes. With the codes in hand, work on the Huzzah board began.

An MQTT broker is used to let the Huzzah know when there’s been a build failure. If there is, the Huzzah turns the light beacon on via the power outlets. A bot running on the Slack channel listens for a message from one of the developers saying that problem is being worked on, and when it gets it, it sends the MQTT broker a message to turn the beacon off.

There’s also some separation between the internal network, the Huzzahs, and the Slack server on the internet, and [ridingintraffic] goes over the methods used to communicate between the layers in a more detailed blog post. Now, the developers in [ridingintraffic]’s office don’t need to be glued to the Slack channel, they will not miss the beacon when it signals to start panicking!

Slow 3.5″ Raspberry Pi LCD Hacked To 40 MHz With ESP8266

As microcontrollers become more and more common, we see more ways to get a lot of performance out of one chip. A great example of this was the ESP8266 which was originally seen as a cheap WiFi card but has since blossomed into its own dev platform thanks to the horsepower hidden within. To that end, [Martin] is trying to push the now-ubiquitous WiFi chip even further by rolling out his own LCD driver for it from scratch.

The display of choice is the KeDei LCD 3.5″ module which was originally intended for use with a Raspberry Pi. [Martin] points out that this display isn’t optimized for speed, but after everything is said and done he has its clock line running at 40 MHz. To get this kind of speeds from the LCD, he depopulates the first shift register and adds his own fast-propagation circuit to establish a more-traditional serial addressing mode. With use of a WLCD driver that [Martin] also wrote, it is now relatively easy to draw on the screen very quickly with an ESP module. Check it out in the video below.

If you’re looking for your own tiny, cheap, fast display, this is one cool way to do it but we would suggest spinning a carrier board for both the ESP and the added circuitry. We’re looking forward to future projects which puts devices like these inside of really tiny magic mirrors, or uses them in other places where a small graphical display would be handy.

Continue reading “Slow 3.5″ Raspberry Pi LCD Hacked To 40 MHz With ESP8266”

Another Kind Of Cloud: The Internet Of Farts

It’s taken as canon that girls mature faster than boys. In reality, what happens is that boys stop maturing at about age 12 while girls keep going. And nothing tickles the fancy of the ageless pre-teen boy trapped within all men more than a good fart joke. To wit, we present a geolocating fart tracker for your daily commute.

[Michel] is the hero this world needs, and although he seems to have somewhat of a preoccupation with hacks involving combustible gasses, his other non-methane related projects have graced our pages before, like this electrical meter snooper or an IoT lawn mower. The current effort, though, is a bit on the cheekier side.

The goal is to keep track of his emissions while driving, so with a PIC, an ESP8266, a GPS module, and a small LCD display and keyboard, he now has a way to log his rolling flatulence. When the urge overcomes him he simply presses a button, which logs his location and speed and allows him to make certain qualitative notes regarding the event. The data gets uploaded to the cloud every Friday, which apparently allows [Michel] to while away his weekends mapping his results.

It turns out that he mainly farts while heading south, and he’s worried about the implications both in terms of polar ice cap loss and how Santa is going to treat him next month. We’re thinking he’s got a lock on coal — or at least activated charcoal.

Our beef with this project is obvious – it relies on the honor system for input. We really need to see this reworked with an in-seat methane detector to keep [Michel] honest. Until then, stay young, [Michel].