Cheap Minimal ESP8266 ESP-7/812 Breakout Board

ESP-12 modules are great for integration to custom product as they fit nice on a PCB. However the prototyping process can be painful due to the incompatibility with standard 2.5 mm pin headers. You can use a full development board like NodeMCU with all its imperfections (size, high current consumption1 compared to ESP sleep states, mismatched pin names 2, etc.) or you can take a soldering iron, wire and do all the necessary wiring as a “3D post-modern artistic piece from a copper wire”. To remind; ESP8266 requires several GPIO pins to be pulled-up or pulled-down in order to boot from flash memory or to enter a bootloder (see ESP8266 Wiki for details), so a little bit of wiring is unavoidable. In some cases you might want to attach a voltage regulator.

Continue reading “Cheap Minimal ESP8266 ESP-7/812 Breakout Board”

Random mess on ESP8266’s UART with Arduino

A few weeks ago I run into a strange problem — when I was playing with ESP8266 and Arduino Libraries, suddenly my program stopped working. Random characters were appearing on UART (Arduino Serial). Also it was almost not possible to flash the chip via the UART. “Ok, I blew up the UART somehow,” I thought. Today, the problem appeared again, so I replaced the module with a new one. After few minutes, the I observed the same strange behavior – random characters appeared again. What?

ESP8266 Modules

Because I didn’t touch the module, I started inspecting what’s going on. I revisited all the connections and all the Dupont cables. Everything was fine. As a last desperate try I lowered the upload speed from 921600 Bd/s to 57600 Bd/s. The chip came alive!

I haven’t inspect properly, what is the cause, yet. It seems to me like there might be an interference on a the cheap Chinese Dupont cables during high speed upload and the uploaded program can get corrupted (and so the ESP might be stuck in a loop of fault handlers).

Next time, when you think you blew your ESP8266, try lowering upload speed first!

Squeezing Accuracy out of a Cheap GPS — Taking the Naive Approach

GPS is a really nice and quite cheap technology – unless you want accuracy in orders of decimeters or centimeters. Yes, there are high-accuracy GPS receivers which can achieve such an accuracy, however the price of the cheapest one is starting at $500. Not really a something a hobbyist can afford/is willing to pay for.

For many application there’s no need for absolute position, a relative position of 2 or more GPS receivers is sufficient. Take an autonomous robot moving in outside area as an example. You can setup a fixed ground station and navigate it relative to it. The intuition tells you that measuring relative position should be more accurate (when we’re talking about station less than 500 m away from each other) that measuring the absolute position int the WGS-84 system.

Why? The most of the GPS receiver’s accuracy depends on the atmospheric delay (the time the GPS signal travels through air) and it should be pretty much-less the same in a small ground area. So, having two the same GPS receivers, which uses the same antennas and algorithms for position measurement, should produce the same results, right? Well, kinda.

There are many papers out there about relative GPS position measurements. I’ve read several of them and none of them and I have to say they were bad. All of them were very shallow with lots of motivation and no results (don’t even think about public implementation!). I gave up reading (for now).

4$ u-blox NEO-6M GPS receiver
4$ u-blox NEO-6M GPS receiver

Continue reading “Squeezing Accuracy out of a Cheap GPS — Taking the Naive Approach”

About The Blog

Almost daily I come to problems I’ve seen before. Usually I have solved them successfully, but I struggle to remember the correct and effective solution when I need it again. I have also created lots of gadgets and devices, which usually after some time end up stacked in a box. And no one, even myself, think of them again. I think it’s a pity.

This is why I decided to start this blog, called “mind.dump()” – to make a dump of my mind, thoughts, ideas and experiences. To archive them, make them searchable and also to share them. I profit a lot from others’ experiences, they shared, in my work, so I think it’s right to do the same and possibly to help others.

Expect posts about programming, electronic, computer science, robotics, CNC machining and others.