Saturday, December 30, 2017

Reverse Engineering a DJI Phantom 3 Standard Gimbal

My dad owns a DJI Phantom 3 Standard. For some reason (probably the multiple crashes into trees), the fragile gimbal got the worst of it. Something in it is broken. When you turn the drone on, the gimbal stabilizes, goes weird, and then goes limp. So something isn't right. But I'm not going to try and fix this. I'm going to try and reverse engineer it. I'm fairly certain that this is a single board computer. So let's take it apart, power it up, and see if we can communicate with it.

Wednesday, December 27, 2017

Designing and Building a File Vault

Actually, make that two file vaults. I'm making a large file vault for myself and a smaller one for my parents. The specs of the machines will be similar, but the biggest difference is the amount of storage each will have. The best part: they'll both go into an almost identical case to the almost complete Game Console (I should really figure out what I need to do to finish that...). The only difference is that these are a little shorter. But I'll still use the power buttons and lights, I'll still remove the display boards (assuming they're still separate from the main logic boards) and I'll do everything very similarly. That's why this probably will be one long post instead of broken up into several posts like it was initially.

Wednesday, November 29, 2017

Making a Smart Speaker - Part 4

In this exciting episode of "Making a Smart Speaker", we'll work on the AI that will do our bidding. We're already using some massive neural networks and pretrained models just do do voice recognition, but here is where we get to be creative about our AI. What do we want it to do? How freeform should we allow input? And, most importantly... how the hell are we going to do hotword detection?

Wednesday, November 8, 2017

A Futile Attempt At Bending a DVR To My Will

One of my favorite places in the world is Gateway Electronics in St. Louis. They're an electronic part and surplus store that never fails to delight with their collection of old electronics. The last time I went, however, I found something newish. It was a DirecTV HR23-700 HD DVR box. I looked at the back and it had several really interesting ports: HDMI, eSATA, and two ethernet ports just to name a few. At $10, it was too good to pass up, so I bought it to see what I could do with it. I don't have any immediate plans for this right now mainly because I don't know what's inside. But we're about to find out.

Sunday, October 29, 2017

GoPro Karma Stabilizer Teardown

I crashed my drone. Really bad. It literally snapped the Gimbal arm in half. So I had to order another one because I was stupid and I didn't get the extended warranty because I didn't think I'd ever fly that close to low hanging trees. Sinking this much money into a GoPro drone is worth it, though, because I've had nothing but good experiences with their products (although they're not great at figuring out what to do when upside down on the pavement. But, like my dad says, there are two kinds of remote pilots: those who have crashed and those who are going to crash. I guess technically I'm in both categories now. The point is is that I have a broken gimbal and I can take it apart now because there is a less than 0% chance I can fix it and I already have another one.

Thursday, October 19, 2017

State of the Blog - Year 2

It has been exactly two years since I started this blog. In the past two years it's become something completely different than what I expected it would be, and I'm not upset about that at all. It's actually been a big source of growth and distraction for me, and I really like that.

Saturday, September 30, 2017

Making a Smart Speaker - Part 3

The Orange Pi Zero came in the mail yesterday, so I guess we're ready to move on to the next part in the design of the smart speaker: audio input and output. We won't cover any of the intelligence behind the AI right now because all I want to do is get audio out of the Orange Pi and into the speaker at a reasonable volume, and maybe get voice recognition to work. By the end of this, we should have something that can play music files and maybe transcribe what I say. We'll see.

Monday, September 18, 2017

Making a Smart Speaker - Part 2

In this installment of Making a Smart Speaker, we're going to work on the non-lowend (mid-high range) audio output. I was disappointed when removing the lowpass filter didn't make the subwoofer output all ranges (the acoustics of the shape are too subwoofer-like), so we need to add another speaker to make this worth anything. In this part, we'll do just that.

Tuesday, August 29, 2017

Making a Smart Speaker - Part 1

Smart speakers are the "next big thing." You can tell because Apple started to make them, and they have such a good track record with the next big thing (not recently, but whatever). There are DIY solutions popping up all over the place, so I wanted to try and make my own as much from recycled electronics as possible. I have the things to make this happen (for the most part), so let's make this happen!

Tuesday, August 22, 2017

Reverse Analyzing PHP Malware

Hacking is a problem. Those who wish to damage things for personal benefit (or for fun) are really just bad people. Alas, hacking is a part of our world today and it is never going to go away. So we have to get smarter than the hackers, which means we have to understand how their code works and what it does. I'm sure they're doing this every day with Russian hackers. Personally, I think it's impressive what they're capable of.

But when you hack my mother's website, you've gone too far.

Sunday, July 30, 2017

Writing a Discord Bot For Literally Anything

I love Discord. It is not only great for gaming chat, but it's awesome for chat in general, supporting arbitrary numbers of people, channels, and voice channels. It's really remarkable how much Discord can do. Discord, being the awesome application it is, exposes an API for you to develop bots with. These bots can do literally anything a regular user can, so we can make some great things with it. So, why don't we make all the things with it? Let's make a modular bot that has hot swappable components and can span multiple hosts monitoring multiple things. Sounds hard right? It's probably not, but as I'm writing this I haven't touched any code whatsoever.

Sunday, July 16, 2017

Running CoffeeScript and Mustache on Google Apps Script

For a very long time, I thought Google Apps Script was quite useless. Then, one day, I found it useful. It's a nice little tool that's actually more flexible than you might think. I wanted to dive into seeing if I could make CoffeeScript and a templating engine like Moustache just to see if it was possible. I realize CoffeeScript is moving out of fashion, but it's still a nice little tool for making easy to read JavaScript. So, without further ado, let's do it!

Thursday, June 29, 2017

Making a Ukulele Tuner with Javascript

)I just got a ukulele and I love it. I play it nonstop. Because of the temperature changes in my room and how often I play it, the instrument goes out of tune quite often. I wanted to write a simple tuning program that could play a solid sine wave at the frequencies I needed it to. I found it very easy to tune off of a loud sine wave instead of the sound of a ukulele string being plucked over and over again like most ukulele tuners. This one is going to be very short because this program is very simple and to the point.

Saturday, June 17, 2017

What Can You Do With A Free Server In The Cloud?

I apologize for the clickbait title, but it's verbatim the exact question I asked myself when I learned about Google's Always Free tier for their cloud computing. This was a step up from what Amazon offered, because Amazon's free tier for computing only lasts 12 months. Naturally, I was really excited to have a free VM in the cloud that never had to be turned off. In this post, we can test the limits of these servers and see what you can do with them. Hopefully this can apply to developers and non-developers alike.

Wednesday, May 31, 2017

Make Something That Isn't A Computer A Computer - Episode 2

This is a cop out because moving to where I'll be living over the summer took more time than I thought it would. So in this episode of "Make Something That Isn't A Computer A Computer", we'll be making a old router into a computer. I know, I know, it's basically already a computer... but we're going to try and benchmark its performance and see what it's really capable of and we're going to try to do more with this than we did with the drone board because this has far more documentation than that drone board did. I guess you could say it was... undocumented code. B)

Sunday, May 28, 2017

A Practical Guide to pthread And Pretty Fractals

Threads. Many programs need them, and they're important on multiprocessor systems (which, recently, is basically every system). Sometimes, they can be confusing, so I've taken the most most important bits and I've distilled them down into the basics of how to do threads in a basic C program using POSIX Threads (pthreads, for short). Let's get started!

Sunday, April 30, 2017

Canon PowerShot A560 Teardown and Salvage

I recently got my hands on a broken Canon PowerShot A560. It's not a very good camera. It's not a very special camera. It's capable of VGA video at 30fps and 7.1MP pictures. I'm not 100% what's wrong with it (other than a broken battery door), but it won't take full resolution pictures. Videos work just fine, but they're not worth fixing the battery door for. So we're going to take it apart the camera and see what we can salvage from it!

Tuesday, April 4, 2017

Make Something That Isn't A Computer A Computer

I asked my girlfriend what I should do for my blog. She suggested that I "make something that isn't a computer a computer." So I looked around for something that I could do that to. I have a router, but that seems too easy with things like OpenWRT and whatnot. How about something a touch more obscure. Why not a drone? I have most of a Parrot Bebop Drone, so we can use different parts of it if we want. I want very much.

Thursday, March 23, 2017

Making a Game Console Part 3 - Operating Systems and Software

Now that the computer is built, it's time to put some operating systems on it. There's a specific order I want to do this in because it's very important. We'll look at how I think I'm going to do this, and compare it to how I actually did this and see how close they come. I can't imagine they'll come close at all. But at least I have a plan, right?

Monday, March 6, 2017

Making a Game Console Part 2 - Parts and Installation

Every computer needs parts. For this one, I'm sourcing my parts from the Sony PCV-RX550 I found in the garbage at my apartment over the summer (and the DVD drive from the other computer because it looks better than the other ones). This was to be computer that ran the game console. Fitting it to the case that I desperately didn't want to cut or damage because it's pretty was very hard, and I had to make some serious concessions. Let's get started, shall we?

Saturday, February 25, 2017

Printer Partout #3 - Yet Another One

Yes, I have yet another printer part out. It was in the "Take a part, leave a part" pile at my maker space so I decided to take a part and restock their hot glue supply in return. I really only needed the scanner light, but I wanted to save everybody the trouble. Basically, this is a very similar printer to the one I last parted out, but this one has wireless capabilities. So we're going to take it apart and see what's running it. Everyone else can have the neat stuff like the motors and whatnot. I don't care about that bit. I just want to see the cool stuff.

Saturday, February 18, 2017

Reusing a VCR Remote

They don't make things like they used to anymore. Technology has certainly advanced, but things just don't last long because they're cheaper to make than to make well. That's why it's so much fun to work with old devices. They're durable and they're simple. I'm going to work with a VCR remote with a jog wheel on it in order to make a sort of handheld video editing control board for some of the programs I use. It's time to get in over my head with USB HID devices!

Thursday, January 26, 2017

Reverse Engineering a LED Display PCB

While salvaging the case for my retro gaming computer, I neglected to take the display board apart. That's because I wanted to trace the pinout of the whole thing so I could perhaps drive it and make it into a clock or something. As always, I'm sure this is easier said than done, but you never know unless you try, right? This isn't a super duper complicated circuit, but with several shift registers, 8 light bars, and 14 14-segment displays, programming something to run it may be the real challenge here.

Monday, January 16, 2017

Making a Game Console Part 1 - Salvaging a Case

Some of my favorite games run on very old software. I'm talking Windows 98 kind of old. Windows 98 is, in my opinion, the best pre-NT version of Windows that there is. It was a release that focused on content from the internet and introduced more and more concepts of what Windows is today. Some of these games wouldn't run on my Windows 10 computer, nor would they run in a VM (copy protection broke that, grumble grumble), so I decided to make my very own game console that runs Windows 98. This will be another long project, so strap in for multiple episodes. What a way to start the new year!