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.