Kacang Bawang

Latest AT Firmware for ESP8266 with 512k Flash

The AT firmware is the default firmware for ESP8266 and provides AT style commands for actions such as join access point and send tcp packet. It is distributed in binary form by Espressif, but it can also be built from source (binary blobby as it may be). Typically one can find a new version of AT firmware in each release of Espressif’s SDK.

Since SDK version 1.0.1 the binary distribution of AT has become too large to fit on a 512kB flash. However, at this point in time (end of May 2015) most of the ESP8266 units out there are of the 512 kB variety. Thus begging the queston: how can one update their AT firmware to the latest version?
Read more »

Breadboarding an ESP-03

Here is my method of mounting esp8266‘s, specifically ESP-03 on a breadboard without the use of a breakout board. Details inside.

breadboard esp8266 esp03

Read more »

Uncle Lao’s Surprise

I have a ATX power supply that I use to power my electronics creations, and I noticed that I’ve been getting shocked with electricity 😯 whenever I touched it! How could it be!? I used a grounded plug, a grounded wall socket, and still… I went on like this for a while, not wanting to shut down my device zoo, until one day there was a power outage and that left me no choice but to finally get around to diagnosing the issue.

Read more »


If you’re reading this, chances are you are in the same boat I was in before writing this text – I wanted to save some data to EEPROM on a PIC24F and … it doesn’t have one. (The manual claims that PIC24F has EEPROM, but that is not fully so – only select models, namely PIC24F___K_, do). What to do? Well, there is this nice lib (AN1095) from Microchip that implements software EEPROM. The lib is well written, lots of docs, but alas – it does not run out of the box. This post is about the additional steps that it took to get it running.
Read more »

Encrypting Stored Email with Postfix

This post is about something that has been on my mind for a while, but somehow always seemed too complex, too far from a practical implementation. Until now, bwa-ha-ha. Encrypted email. Before you get too excited, let me first say that we’re not talking about a mathematically perfect system, and it is certainly not NSA-proof. But! It is about as practical as it gets. We get a system where all email is stored on disk in encrypted form. This is a Big Deal. If your VPS falls to a 0-day for a few hours, the evil hacker won’t be able to grab a dump of your naked pictures email. Really, in any situation where an adversary gains temporary control over the server, this scheme will keep the contents of your emails secret. Just remember: IMAP messages tend to build up and stay on the server indefinitely… I mean, when did you last clean your inbox 😉

Read more »

Pitfalls While Setting Up esp8266 ESP-03

Here are some obvious and not-so-obvious pitfalls you may encounter while trying to communicate with an ESP-03 over UART. We will be using a USB-Serial device to connect directly to the ESP.


Read more »

JSON RPC lib for microcontrollers released!

I have just released my JSON RPC 2.0 implemenation under MIT License. It is built on top of JSMN JSON parser and is meant for use in microcontrollers. At least that’s where I’m using it. Note: you will need to use my branch of JSMN.

The features are:

  1. simple API (only 3 functions!)
  2. low memory requirements
  3. minimal dependencies (other than JSMN)
  4. ability to call pre-defined C functions directly from JSON strings (I guess that’s the RPC part)
  5. parameter type checking

Take a look here.

OpenWRT Configuration Hacks [Part 2]

In the previous post from this series we talked about customizing the dropbear startup scripts. This time we will direct our attention to dnsmasq, an all-in-one DNS-DHCP service. I will show you how to improve the configuration for a WAN/LAN/WIFI setup (as opposed to just WAN/LAN). We will get – hostnames such as router.lan, router.wifi and plain router for the router, and we will have clients get the appropriate client.lan or client.wifi name depending on which method they used to connect to the router.

Read more »

OpenWRT Configuration Hacks [Part 1]

In this post I will talk about some configuration optimizations to OpenWRT 12.09 “Attitude Adjustment”. It is the first in a two part series (part 2). In this part we will deal with dropbear configuration.

Read more »

BeagleBoneBlack RevC Debloat [Part 1]

There are literally a million articles on the internet comparing BeagleBone vs RaspberryPi. People talk about all possible features, except one – bloatware. BeagleBone is absolutely stock-full of it. I found this out the hard way when I purchased the BeagleBoneBlack. All my searches about the topic turned up a few requests for debloat instructions with a few answers showing how to disable services via systemd, but none about how to permanently remove the programs in question. So, without further ado, let me show you how I removed the most egregious offenders.

Read more »