In Adam's hand here is an ESP8266 hooked up to a single WS2812 LED and a little Hubsan
battery pack. This is a battery powered ESP8266 now. While the ESP8266 can tell RX power,
I'm not using it for that. I'm actually causing my computer to connect to it and ping it,
and there's an application on my computer that looks at RX power of those pings and
send a color to the ESP8266, so as Adam moves around in 3 dimensional space, you can see
the realtive strength changing. This looked kinda random to me at first until I started
to actually play with it, and then I realized it's not random, it's really telling you the
actual RX power in every point. So, as he moves through the same area, you can see that
it turns red to green to blue. There's a nice solid blue. You can see the variations to
quite the degree. It's crazy how quickly the RX power can change from just a little bit,
moving just a couple inches in one direction or another causes massive changes in the RX
power. I decided to do a couple things with this, one of them was to go play with a really
long exposure on my camera. First I configure a camera pointed at the area I'd like to check,
I set it to the lowest ISO possible and a relatively large aperature, and uuh 60 FPS
recording. Then I try to make it as out of focus as possible and manually scan the entire
area. I then copy over the file into this tool I have, superlongexposure and I start
processing it. This takes a while, so better find something else to do. Once it's done
processing, you can take a look at the output. You can see very clearly the blue, where the
signal is powerful, it's great... But there's also these bands and areas where ts he signal
is very poor. This shows that we're not just seeing random noise. I also did this at my
parent's cabin with worse camera settings but similar results. And all this had me wondering:
do I have a better way to do this? And then I realized OH YEAH, I DO, THE MILL. So, I
have the mill following a basic zig zag pattern, while I'm running the same software that determines
signal strength. I had to unplug the other antenna from this laptop because it was using
diversity because it was messing up all my results. But as the mill goes back and forth,
I record the position of the mill and the wifi strength at the same time in order to
see if I can composite this into an image. Look at that interesting stuff going on. Just
look at it. Yaaaaaaaaaa. I took the data that the mill produced, going back and forth and
back and forth over a square meter. One row every centimeter and composited it into this.
You can see there's a lot of interesting stuff going on at the mill, and that was neat, but
I don't think that was as neat as it could be. So, let's zoom into a little area, a little
smaller, maybe a third of a meter by a third of a meter and now, let's add Z. We're gonna
bring this thing into the third dimension.
What we're seeing right now is frame-by-frame, the data from this set Z is the frame-by-frame
and the X and the Y are on the mill table, and the intensity is how bright the signal
is there. That's not really 3D at least not by my definition. I'd rather view it in a
much more... Okay, I don't know what you'd call this, but a cooler way. So, this right
here is actually the same engine I used on my no-euclid, my non-euclidean ray tracing
game. So, as you might guess this is actually being ray traced right now on my GPU. And
it's ported to WebGL, so it can run inside my browser... and if you're interested it
can run inside your browser too. So, this right here is a representation of that data
in 3D. Each one of these slices, all the way down is a different layer on the mill. The
areas that are more dense, the areas that you can actually see are the areas where the
signal was particularly good. All the open areas are the areas where the signal was not
particularly good. So, the data here is representative of the real data we're seeing in real life.
This absolutely surprised me. I did not expect to see this much detail in a 360x360x180 millimeter
area. It just blew my mind. But, it's here, and you can see the distance between these
features is roughly the same as one wavelenght of 2.4 gigahertz, or half a wavelength, I
guess. That just totally amazed me. You can play with these settings some, such as coloring
it so everything is in absolutes, blue and purple being the best, and red being the worst.
We can open up the range by which it looks at, so now we can get a much more solid picture
of where the signal is good, again the open areas is where it's bad. We can also flip
this around so, where the signal is bad is most opaque, and wherever the signal is good
is the clearest. So, I can open this up some and we can see some the internal structure
of how that whole area inside that part that I was measuring is shaped in the RF spectrum.
Who knows, maybe people will take this and do something else with Minecraft or something
else. As far as I'm concerned, so, hope you liked it! Like this video if you did -- and
don't forget to subscribe! Whoah, it kinda uuh looks like Minecraft.