Since I’ve got some homebrew development boards ready, it’s time to get hacking.
I stocked on coffee and gave esp8266 SDK a deep dive this weekend. The code is really weird, lots of things are unknown, API is shitty, blobs all around the place. First of all, to make things clear – I’m not going to fix or do anything with AT-command firmware. It sucks. Period. Sucks so much it can’t even prove useful as a reference most of the times. So… we need a replacement.

This is what I’m working on and that is now, after a weekend of hacking is in early alpha stage.

Say hello to Frankenstein Firmware for ESP8266.

Continue Reading

As you might have seen, I’ve made a few projects with PL2303HX, namely that little nifty esp8266 developer board. I plan to dive in esp8266 firmware development soon and my goal will be a nifty mysql client, so that I can run mysql queries via UART! The only bad thing (apart from eeprom never working, and occasional freezes that I’ve later fixed with a 10uF SMD capacitor) – I had to press the buttons to reset the ESP8266 module to bootloader mode. So I’ve made a ‘dark green evil sister’ twin of that red board with a little bit updated schematics:

  • GP0 and GP1 lines are now rigged to reset and bootloader buttons respectively, resistors protect those against logic level conflict.
  • I’ve ditched EEPROM. It doesn’t work anyway. Screw that!
  • Proper decoupling – no more freezes!
  • SMD LEDs on GP0 and GP1.
  • Nice dark greenish design and clear urethane coating FTW!


Continue Reading

ESP8266 took a hell of a time to arrive, so meanwhile I got a dev board ready. Nothing really too fancy inside – just a PL2303HX, a few LEDs, buttons and connectors… But I couldn’t resist making some nice artwork on the silkscreen:



The board is made using my usual tech involving a color laserjet printer, toner transfer machine, and and some urethane coating for durability. Now, it’s high time to port antares to support esp8266 CPU!

TL;DR; Ported Debian on Dlink DNS-327L with fresh kernel, mybranch’s here‘е. Inside stock firmware there lies madness!

Now, the long read:

You might have noticed that my dull engineering blog has been lagging recently, occasionally throwing the nginx 500 error. That’s because of the ongoing cursed hardware adventures I’ve been having for the past 2 weeks.

But let’s start from the very beginning, and it will be a very long story. It all began with an HDD crashing in my RAID-1. Since the motherboard serving as the NAS storage box was pretty old and laggy, I decided I would get a nice and shiny small NAS box as well. The criteria was simple: cheap, supports nfs, small, RAID-1 supported.
So I picked Dlink DNS-327L and a spare HDD, I knew the box might be a Debian/OpenWRT target once the warranty’s void. Having dealt with some dlink hardware in the past (or, better to say, raising that hardware back from the dead) I ditched the stock power brick and used my own. I wanted to live on stock for a few months, just to make sure that no hardware is faulty…

Yep, I found use for that free sticker HaD sent me!

Yep, I found use for that sticker HaD sent me!

Continue Reading

As you might remember, buspirate is a pic24-based device with a pic24 + ft232 for usb connectivity. pic24 runs (according to datasheet) at clocks up to 32Mhz. The price tag for my bpv3 hardware was something around 30$ at places like seeedstudio.
uISP on the other hand is way cheaper and simpler and contains only an atmega8 + a handful of passive components. It’s less than 5$ worth of components (and board!) and was designed by me a very long time ago as a super-cheap ISP programmer/devboard. Something I can give out to students to get started in electronics.  uISP has NO HARDWARE USB. It just uses vusb stack. Yep, simple as that. The clock is 12Mhz on most boards and for this test I also made a super-special version with a 20Mhz crystal.


Now, can this cute little thingie outperform a much faster buspirate with hardware serial interface IC? Turns out it can, after all!

Continue Reading


It was a busy month, but I finally managed to find a minute and update the rf24boot. Yes, the very thing that can push firmware updates via nRF24L01 wireless modules. Along is a regular bunch of updates to rf24 library in antares. One of the big news I finally took some 20 minutes and layed out a proper programming dongle. Since I didn’t have a cheap stm32 with usb around, and stm32f103ret6 looked like an overkill for this purpose this dongle still uses avr, vusb, but has a 16M (20M is possible as well) crystal. The lengthy changelog’s under the cut, but it’s big.

Continue Reading


It took me a very looong time get my lazy ass down to making this simple yet so needed thing. Every damned time I had to upgrade a router or unbrick something with SPI flash I told myself: time to get it done. Well, that time has finally come, besides I really wanted to try out that nice art on copper. (Azura from TES, but with a drill bit and a wrench. Awesome work of Vemarish)

Continue Reading

Apparently I’ve come up to a point, when I want to do firmware upgrades for my home automation ‘over-the-air’. Since I’m using nRF24L01 dongles, I decided to write a bootloader for that.
While my pet antares project is slowly progressing towards the 0.2-rc2 release (honestly, really slowly), I’ve added the nice and shiny RF24 library (A port of maniacbug’s arduino library to pure C with no arduino dependences) to interface with nrf24L01 2.4Ghz dongles. I also fixed a few nasty race conditions out there on the way, but those are totally a different story.
So, what’s inside:

Continue Reading

If you follow up my progress, after [getting the hardware ready], [getting first awesome results] and [throwing up an ultimate test], I decided to see if I can go true color. Although black looks cool & gothic normally you want silkscreen to assist you while populating the board. So I got myself a nice’n’shiny Samsung CLP-365. I decided to stick to samsung for a reason. My ML-2167 toner is mostly dielectric (e.g. I couldn’t measure any noticeable resistance), it has a known melting point, etc. In other words – it is well-tested by me. If you are willing to do the same with a different laser printer, I suggest following these tests:

  • Print a thick layer on a sheet of paper, and press on multimeter probes. If you can’t measure any noticeable resistance – you’re good.
  • Take a magnet from an old HDD, and see if toner sticks to it. If it does – I’d better not use it.
  • Take a wire coil, hook it to inductance meter and see if inductance changes noticeable when you insert a piece of paper covered by toner into it.

In my case all three tests passed.
Unfortunately CLP-365 wasn’t as good as ML-2167. First, it didn’t like the toner transfer paper, so I had to stick a piece of it to a sheet of usual paper or stick a piece of duct tape to the place where it grabbed the paper. Second – it proved to be quite greedy. Even with ECO mode off it would produce the layers way to thin to stick while laminating. The following is what I got with it. I used my old ML-2167 to provide the mask for the etching phase, and the solder mask and silkscreen are created with CLP-365

Second test was actually printing two times on the same sheet of paper. That proved stick better.

Unfortunately I couldn’t apply the silkscreen, since this was the time the motor of my lamination machine stopped working. I totally forgot about it and left it working for over an hour heated to 176 degrees and that looked like the end of it. Some of the plastic casing melted… But the last board it produced looked sexy even without the silkscreen:

So on my TODO list is the following:

  • See if I can revive the lamination machine or get yet another one.
  • DO implement auto-shutdown in the firmware to avoid such fails in future (Really, that makes the whole thing worth the Hack-A-Day FAIL_HARD section!).
  • See if I can hack the CLP-365 in software or hardware way to use more toner while printing. foo2qpdl sources look like a nice place to start.
  • Get alternative firmware for my printer that allows cartridge refilling and stock on toner.
  • Grab some of that white toner from ebay, see if I can get it to work with the hardware I have around.
  • Clean up the software, and post the rest of it to github.

Oh, and BTW, I started posting the sources right in here on github
And have a look at more hi-res pics here

So far I’ve opensourced the hardware designs of the laminator control board and the firmware. Userspace stuff and web-ui will follow soon.