27 May 2006

Home made solar boombox

A while ago I got a pair of computer speakers for free from Newegg, when I bought a wireless keyboard and mouse for 21 USD. Now, I already had 3 pairs of computer speakers, and since we only have two computers, two pairs were just sitting there taking space and having no use.
I had some solar panels just lying around, as well as some rechargable batteries. So one day I came up with the idea of modding those speakers and transforming them into a digital boombox.

The first step was to take the speakers apart, and extract the amplifier and the speakers themselves, while discarding their case and converting them from 110 AC to 7-9V DC.
This step was pretty hard, because being cheap and made in China, they didn't have screws. Instead, they were glued together. With some patience and a small round saw blade I was able to take them apart. I needed to cut the wires because they were sealed with some silicone which was impossible to remove.
To make it even harder, the transformer was in one speaker, and it send AC current to the other speaker, which rectified it via 4 diodes and a capacitor.
Since I didn't want to feed it AC, and I didn't want 1.4 volts being dropped because of the diodes, I removed them and the capacitor, and connected my power cable to where the capacitor was.
The next step was to build an enclosure to house the whole thing (amplifier, speakers, batteries, etc.) Initially I wanted to use some sort of cardboard/polystyrene sandwich material, but cutting it properly with the tools I had was impossible. The polystyrene in the middle was being teared, and gluing the boards together was not that easy either.
Eventually, I've decided to use some wood, as it is stronger and easier to glue, and it looks nicer too. The problem with normal wood (or compressed wood boards) is that it takes special tools to cut, tools I don't have in my apartment. And cutting round holes in the middle for the speakers is not the most simple thing either.
I went to a crafting store looking for some suitable wood and tools, and I was surprised to find sheets of balsa wood for a very decent price (about 2-3 bucks/sheet). I needed only 2 sheets, but got 3, just in case.

For those of you who don't know what balsa wood is, here is a simple explanation:
The balsa wood is the nature's alternative to expanded polystyrene.
It's a very lightweight wood, and pretty strong for it's low density. It's main use is RC planes and gliders, but as you can see it can be used for other projects as well. Having such a low density, it can be cut with an Exacto knife, and cutting portions in the middle is easy as well. Just draw a line, and stab that line with the knife. Eventually you will be able to take that piece away, and then just file and sand the edges so they will become smooth and eliminate the excess material.

Making the enclosure was a relatively easy task, it took only about a few hours. The balsa wood is easy to cut and glue, and the only thing required is patience and attention.
After the front panel was done, I glued the speakers to it. Normally I was supposed to use some screws, but I was afraid the wood might crack, so the glue seemed to be a better alternative. They are small speakers, so I don't have to worry too much about vibrations.

One other aspect when designing the enclosure is to keep in mind that it's main purpose is to prevent the sound waves from the back of the speakers from going back in the room. The sound in the back of the speakers can cancel the sound from the front, so, ideally, the enclosure should absorb all the sound. This is pretty much impossible, but nevertheless, an enclosure that absorbs most of the sound is desirable. Because of this, it should be hermetically closed, so that the air can not escape. Given that objective, I wanted to seal it all with silicone, but that had a small disadvantage: sealing it makes it impossible to replace the batteries after a few years, when they can't charge as well as when they are new.
My first idea was to make a hole in the bottom, and have the batteries externally. This had some disadvantages though, such as making it look more ugly than it already was, and the possibility of the batteries falling out and ripping the wires, which would have required opening the box again.
After some tests with the lid panel closed, but not sealed, I determined that it sounds reasonably well even if not totally sealed, so I just placed the batteries inside. Everything but the lid panel was sealed with the silicone, inside and outside.

Now that the amplifier/speaker system was in place, I had to put a sound source. The best idea seemed to be buying a defective mp3 player off eBay, and fixing it for my purpose. After some search, I found a Samsung YP-T8Z 1GB that wouldn't work unless having the external power connected, for about 40 USD.

When I got it, I noticed that it did work while the power was disconnected, but the sound was just mono, and it had something rattling inside. Opening it was easy. It had no screws or glue, and it could be open with a small flat screwdriver or just with your nails. First I had to detach the lateral panels, and then the middle panels.
The problem was that the stereo headphone jack was broken :/ I had no other alternative but to remove the whole jack, and soldering 3 wires. That was pretty hard, because I needed an SMD soldering tool, and I didn't have one so I had to improvise. Placing a piece of copper wire on top of my soldering gun did the trick.

One additional problem with that mp3 player is that it can not be charged with solar panels. For some reason, it always reported that the battery was full, so it didn't want to charge it. This is strange because the solar panels had a 5.5V output, which was lowered by a diode, so in theory it should have worked, but it didn't. Most likely a software problem which requires a very specific voltage and current.

So what I did was open it again, remove the Li-Ion battery and replace it with 3 NiMh batteries, which I am charging independently (directly from the solar panels, not through the mp3 player). The pictures above show the mp3 player being tested from some AAA batteries. It worked just fine.
This system has a few advantages:
1. About 50 hours of playtime, rather than 20 (the current draw is 50 mAh, the batteries are 2500 mAh)
2. Easier to replace.
3. Easier to charge.

As you can see, I am using 6 solar panels. Each is 6V, 90 mA. The amplifier battery is 7.2V 4A, and the mp3 player uses 3 NiMh batteries. So the big battery pack is charged from 4 solar panels (2 in series, to in parallel), while the small battery pack is charged by 2 solar panels in parallel. The diodes are on the back of the solar panels, and their back is glued on the lid.

The final step was connecting all the wires inside, gluing the batteries and performing some final tests.

Project overview
This project took about 20 hours and cost about 90 USD.
It looks ugly, but there can be some improvements, such as a plastic faceplate, or the wood being painted.
It is actually cheaper, if you just buy a commercial stereo system and attach an mp3 player to it, although it won't charge from the sun. However, doing it yourself is more fun, and you can learn some stuff from it, such as how to build a good speaker enclosure, how to work with balsa wood, etc.

Here are some more pictures of the project.

Amp. battery glued, but not connected yet.

The lid, with just the panels for the amp.

Preliminary version, testing with a different mp3 player.

All the wires connected, ready to go. Notice the two battery packs, one for the amp, one for the mp3 player.

Same, just a different angle.

25 May 2006

The new items for the update

We are planning to release a RC (release candidate) for this comming Monday. The purpose of this RC is to find bugs and problems in the client, so that we can fix them before the actual update.
So far, there is a bug that bothers me, which causes some crashes because of some new model data (we do not know yet which model is responsible for that). Once that bug is fixed, most of the programming work is done.

Now I am working at the new items, such as armors and swords. Yesterday I've finished implementing them server side, and now I am working at the damaged version of each new item, which will be pretty much identical to the new item, but it will dissapear when damaged. After they are done, I have some ideas about adding a few special armors (will look identical with the normal ones), which will be created accidentally in the manufacturing process (in the same way you can obtain an enriched essence while making a normal essence).

23 May 2006

USB hard disk enclosures

Maybe I am an unlucky guy, but I think those enclosures have this nasty tendency to destroy HDDs.
I had two different enclosures, and two different hard disks. One was brand new, a 250 GB WD I got two weeks ago from Circuit City.
I placed it in my old enclosure, and it started making strange noises a few hours after. Then I thought that enclosure might be bad, since it did that with a previous HDD, so I got a new one. Well, the new HDD with the new enclosure seemed to work great, and for about 5 days, it actually did. And just after I ripped 6 DVDs (which I own) on the hard disk, today it just stopped working. Making strange noises and not reading it. Turning it on and off didn't help a bit, so now I am going to return the god damn HDD to Circuity City and ask for a better one.
Sometimes I wish I had a desktop, to avoid hacks like this.

I was wondering though, am I the only one that has this problem? Did it happen to anyone else? If so, did you solve it? How?

18 May 2006

Some unexpected problems with the hydrogenium

Well, we were supposed to have an update this week, to introduce the hydrogenium ore and bars.
Unfortunately, this is not possible because someone pointed out to me, in a PM, that there is a 'shortcut' to the ore, using the teleport to range spell. This shortcut not only that reduces the time taken to go and harvest, but it also greatly reduces the danger, as the dangerous PK map can be avoided.

What can be done is to modify the map a little, so that the distance is too far, and the teleport to range spell will fail. Unfortunately, although it is possible to autoupdate the maps, we have too many files already that are autoupdated, so we are waiting for the next client update, which should be in mid to late June. The hydrogenium ore is pretty useless until then anyway, because there is nothing that can be done with it prior to the update.

14 May 2006

Some things to expect in EL soon.

I am almost done with the new harvestible stuff (the hydrogenium ore, for the time being), and tomorrow it should be done, so expect it in the game this week.
Now, what's so special about the hydrogenium, and what is it?

Metastable metallic hydrogen (MSMH) is a hypothetical degenerate state of matter, where after being exposed to a very high temperature and pressure, the hydrogen becomes metallic, and it retains it's metallic form even after the pressure and temperature returns to normal.
So far, due to technical limitations, there is no known MSMH, but some people speculate it might exist inside Jupiter, for example. And maybe inside some stars? Who knows?

The advantage of having a video game is that you are not bound to the reality, and you can invent and distort stuff. It's called an artistic license :)
So in EL, the hydrogenium is MSMH, which is very lightweight, and pretty strong. And it's readily available for mining :)

The mining, however, will be extremely difficult. Not only that it is in a very inaccessible places, past a cave full of dangers with extreme heat areas that can kill weak players in a second, in addition to being a PK map. Not only that you will need a high harvesting skill (to be determined). But the worst of all, which will make the hydrogenium ore very expensive indeed, is that it will require a 'consumable item' to be harvested.
The consumable item is a new and sadistic addition to the game, that only my evil mind could conceive. Basically, from now on, all the rare harvestible stuff will require an item to be sacrificed in order to harvest the ore.
And what better item can be used to harvest hydrogenium than a Steel Two Edged Sword? :)
Again, you will not be required to WEAR it to harvest the hydrogenium, you will be required to have one in your inventory. And for each hydrogenium ore you TRY to harvest, whether you fail or not, whether you are full or not, a Steel Two Edged Sword from your inventory will disappear.
Does this makes sense? Hardly. But don't forget that this is a game, and the real life rules do not apply here. And if you think that the real life rules make sense, try to explain the mechanism behind the quantum entanglement :)

Now, what will the hydrogenium ore be used for? Hydrogenium bars, of course. How many? 10 for one bar (subject to change).
The bars will be used in combination with other metals such as steel and titanium to create the new armors/shields.

In case you are wondering why the requirements are so excessive, they are so for a few reasons:
1. To encourage people to manufacture and sell their bounty of Steel Two Edged Swords.
2. To prevent macroing and overproduction of the hydrogenium bars, and, implicitly, the new armors. (keeping them rare)
3. To remove some of the mindlessness of harvesting.
4. To encourage people to go to the new continent.
5. To encourage some politics, such as guilds guarding the entrance to the hydrogenium cave, protection fees, and so on.

12 May 2006

The VEX robotic kit, a newbie review

As I've mentioned in a previous entry, I bought the VEX robotic kit from Radio Shack, for 150 USD. The normal price is 300 USD.

I've always wanted to build a robotic tank with an autonomous mode, where it can act like a primitive living being. I mean, simple stuff such as hide from the light, navigate through a room, run from sounds, and so on.
This seemed to be very possible with the VEX kit, and it is indeed possible if you are willing to make a few concessions.
The first concession is that the price is very high. For example, you will need the following:

a. The starter kit (150 USD from RadioShack, or 300 USD from VEX). Radio Shack has them on sale until June, I believe.

b. The basic programming kit is on sale for 50 USD from RS, but you can't find it in stock, so you'd have to buy it from their site, for 100 USD, or from eBay, for about 70 USD. However, from reading their tech support forums, it seems that unless you are content with their EasyC*, you will need to buy a prototype kit from them. They do not display the price for the prototype kit, you will have to call them on the phone to order. That kit has the same price, of 99 USD. I just ordered it now, and should have it here next Friday.

*The EasyC thing is an interface where you don't really write C code, but just use some diagrams, and it builds the code for you. That's nice for the beginners, but for advanced programmers it's unacceptable, as you can't write your own custom code, can't have your own functions, and so on. They have a version of EasyC 2, which is an additional 50 USD(!), and it's supposed to be better, but since I didn't try it, I can't comment.

c. You will also need a track kit and a few sensors, which can be over 100 USD in total.

So the total cost is about 500 USD, and more if you want more sensors and motors. As a side note, the max combined output is only 4A, so since a motor can use 2A it makes no sense to use for example 2 motors on each track. So only buy motors if you plan to use them independently.

The documentation for the track kit is sublime, but completely useless. It doesn't describe the most important feature, which is how to connect the god damn gosh darn motors in a reliable way. Looking on their forums, some people also complained about it, and had the same problem I had: When taking turns, the axis connecting the motor to the wheels was slipping out off the motor...
Reading an article on botmag.com helped, because those guys are experts and had the same problem had. They solved it by adding a second support rail. Unfortunately that article is not very detailed about how the bot was constructed, so I had to look at the pictures and steal some of their ideas. However, the pictures do not show all the angles, so I had to do some trial and error tests. Right now, I came up with a very good idea, and the preliminary tests are promising. My tank is almost done, and you can see some pictures of it. The receiver is not placed properly yet, because I want to put some solar panels on top of the tank, and the antenna might get in the way, which is why it will be placed at the end of the project..

The technical support is very... unique. They do have a forum, and they do respond the questions in a timely manner. Usually they respond to them in the same or next day.
However, most of the answers are a little bit ambiguous, so to say. For example, I've spent a few hours last night to find if I can program it in assembly, using the standard programmer kit. There was no definite answer, so I had posted my own question. As you can see, the answer is more or less: "Ask the company that made the compiler".
I mean, WTF, the starter kit + the programming kit is 400 USD, I'd expect a little bit more descriptive answer.
To make things worse, their policy is to not let anyone but the admins respond to the posts, and once a post is answered, it is locked, so no follow ups are possible.
I personally believe having an open forum, where the community can interact would be a very good idea.
One other bad thing, IMHO, was that some technical questions posted by various people were answered with: "That's confidential, sorry". That is, IMHO, doubleplusungood, as it is an anti innovation practice. I believe they should open source their protocols so that people can hack those bots and create things that are otherwise not possible, such as connecting the transmitter to a computer.
The questions, however, are answered by their engineers, which is a good thing. I hope that in the future they will have better technical support, and a forum where people can interactively discuss about their projects and share their knowledge.

The starter kit is very nice, (especially if you buy the tracks kit, which is on sale at RS for 15 USD) and it's well worth 150 USD. But I wouldn't buy it from their official store, for 300 USD. That's a lot of money, and there are better kits out there.

a. Very versatile kit, you can do a lot of stuff with it.
b. Lots of add ons.
c. There are new things in development, such as new sensors and new hardware.
d. Newbie friendly, but powerful enough for the intermediate and advanced user.
e. The programming kit is easy to use for the beginners (also see cons).

a. Pretty expensive.
b. The documentation is lacking.
c. Tech support could be a little better.
d. The standard programming kit is not good enough for the advanced programmers, but they can buy the prototype kit for the same price.
e. Some information is confidential.

10 May 2006

Some thoughts on Linux

The first time I used Linux, it was back in 1998, when I got Slackware from a CD-ROM in a magazine. I don't remember which version it was, but I was pretty disappointed.
The GUI was rudimentary and unpleasant, and the applications were few and not so impressive. I did however learn a thing or two about Linux, such as the basics about directories (where to look for files), how to edit fstab to mount a drive, and so on.
At that time my HDD was only 1GB, so I had to delete the Linux partition just after a week or so.

My next contact with Linux was in 2000, when I had a job that required me to use it. In fact, I wasn't REALLY required to, but other coworkers had it, and I wanted to become better at it, so I installed it on my work computer.
That time I was using RH 6.2, which had a considerably better GUI (KDE 1.something).
One other coworker was using Gnome, but at that time I didn't like it at all.
My experience with KDE 1.something was a mixed one. One one hand, it looked decent and had many useful programs, but on the other hand many of those programs were instable, hard to install, and lacked functionality.

By the end of 2003, I was using Win98 SE. I didn't really want to upgrade to XP, because, although I was pretty frustrated by the system instability, I was too lazy to reinstall all my software again.
One day, my Win98 got corrupted, really badly. I mean, to the point where I had to reinstall another OS.
I did try WindowsXP, but it had a lot of problems, such as not being able to use my sound card, and flooding all the computers in the LAN with packets to the point that the whole LAN was unusable...
So I was thinking, maybe I should give Linux another chance. A few hours later, I had SuSe 7.2 installed. For a week I've struggled with it, but it was the most frustrating experience ever. There were tons of problems. For example, my KDE preferences were NOT saved at log out. Doing some investigation, the problem seemed to reside in the fact that at start up, the directory where the KDE preferences were set was being overwritten by a default directory with the default preferences(!)
I did solve that problem, but it was only the first in a chain of many. The next problem was installing the video drivers (the OpenGL drivers).
That was a huge pain, because that particular SuSe version was using a relatively rare kernel, so I had to do many hacks to get it installed.
Installing Kdevelop (or whatever name it has) was a total failure. The RPM system gave some errors on some dependencies, and the errors were obviously cryptic.
Manually installing libraries (tar, configure, make) was by far the most frustrating thing ever. For example, a library was installed, but other programs couldn't find it, or couldn't find the right version, or couldn't find the headers, and so on.
Eventually I ended up using mcedit and make to compile and edit my projects...
Suffice to say, SuSe lived on my HDD for just a few days, and then it was gone.
I had to go back to Windows, XP.

Last year, I've discovered Mepis, which is a very nice and user friendly Linux distro. Unlike most of the distros, it comes with a live CD that can be installed on the HDD. It also comes loaded with many non GPL/Open Source applications, such as Skype. It has detected all of the hardware on my laptop, and on another computer it detected most of the hardware, except for a wireless network card. The USB PCI hub card wasn't detected either.
The latest Mepis version that I've tried (was labeled as stable) had some really big problem with it's packet manager, which was unusable. apt-get was unusable as well. That really put me off..
Another thing that put me off was the fact that KDE 3.2 (as well as the other KDE versions) is way too bloated. So many icons on the taskbar, the task bar is big, a lot of unneeded applets are installed by default.. And when you maximize a window, the borders are still there, so in many cases if you try to use the right hand scroll bar, you drag the window margin by mistake, which is very, very annoying.
The no matter how much you try, you can't make KDE to look and feel like Windows.
Yes, I know, the windows look and feel isn't necessary, since the KDE fans like KDE as it is.
Me, however, I like the windows interface, and it is a prerequisite for me to adopt Linux as my primary desktop OS.

So far, I plan to stay with WindowsXP for about one more year, until most of the applications will require Vista. When that happens, and WinXP will become obsolete, I would rather switch to Linux than buy and use Vista.
One year might seem to be a long time, but I'd rather prepare in advance.
Which is exactly why today I've tried an Ubuntu LiveCD.
I didn't really play with it a lot, just looked at Gnome, mostly.
Gnome has sure improved in the last 6 years :) Now it looks less bulky than the last time I've seen it, and it is, IMHO, much more customizable than KDE. It is also so much cleaner. You have the whole task bar for your applications, and adding or removing tabs is easy and straightforward, unlike KDE.
I like it, and I am reasonably sure that I could use it as my main desktop system, in the near future. Combined with Wine, it should be relatively easy. At least much easier than 3 year ago.

07 May 2006

Some cool and not so cool RadioShack toys

I got a 'wireless soldering tool' from RS a week ago, and when I got home I was surprised to see that the tip was broken, so the tool didn't work...
Today I went there to complain and they gave me a new tip, for free.
So armed with that tip, I've decided to test and see if and how it works.
Well, they claim the tip cools down in seconds. That's simply not true at all. It was very hot after 10 seconds, and pretty damn warm a minute later.
In fact, it even melt the plastic on the edge of the tool...
It's effectiveness is pretty much 0. It's impossible to do anything even remotely useful with it, and the whole thing either got broken or it ate my batteries in 5 minutes. They claim you can solder 1K times with a set of batteries. Bullshit!
So if you are thinking to buy one, my advice is to just pretend you bought one, and donate 20 USD to whatever charity you want.

On the other hand, I've seen something really cool at RS: They have some non RC planes, which are supposed to fly up to 91 meters. They were on sale for 5 USD a piece, so I bought 2.
What I really wanted was their motor/propeller set. I assumed they used some battery, but it turned out I was wrong. They had a super capacitor. It didn't have any markings, but after looking on Google some people claim it is 3.3F capacitor.
I am not sure about the polarity, there are no markings or dents to indicate it. I did charge it both ways and it seems to work, but I am not sure if doing so is good.
The only symbol I could find on it was a -(-- thing on the back. Google returned no match for such a symbol (I searched for all kind of capacitor symbols).

What I plan to do with them is use them is connect them with a solar panel and a diode so they will power one of those wireless weather stations, with a remote sensor. This way, I won't have to worry about batteries ever again :)

One of the planes was cannibalized (the other is still in one piece, I want to try and see how it flies first). I took it's motor, and placed it on a rubber band powered plane that I got for like 3 bucks from a crafting shop.
The motor was connected to a 50F capacitor, through a switch, so that I can turn it on and off at will. The original plane had no such switch, and you were supposed to charge it while it was on. I think that was a very stupid idea.

The flight performance wasn't that great. My 50F capacitor charged to a max of 3.5V, open circuit voltage, and it was quite heavy (I think about 15 grams) for the plane to fly properly.
Then another issue is that the center of mass needs to move in order to compensate the capacitor discharge (the motor doesn't spin at the same constant rate).
So what I am going to do is connect 4 small NiMh batteries to that plane, and see if and how it works. If they work fine, I'll post some pictures.

04 May 2006

IPB <=2.1.5 critical security hole

As if we didn't have enough problems in the last past days, we've just discovered that our forums have been compromised.
We were using version 2.1.4, and, in all honesty, I did get an e-mail from IPB a few days ago, recommending us to upgrade and apply a patch. :/
Today we've noticed a post in the newbie section, which looked like a hack (a strange series of characters).
Upon further investigation, we've found this:
Later on, one of our forum admins (Soldus) have found a new admin, named aaa1, from the IP, using the e-mail janerds@yahoo.com
That IP is from Vietnam, and a google search after the e-mail address returned some Vietnamese forums.

From our investigations, it appears that our new admin didn't do anything, at least it's not in the logs. However, it is possible that the hashed forum passwords have been compromised, which is not really good. We've advised our players to change their forum passwords, and if they use the same passwords for other sites they were advised to change those passwords as well.

Upon updating to the new secure version (2.1.5 patched) we had some problems with the forum, but they should pose no security threat. We've contacted IPB and asked them to solve the problem for us (hey, we are paying 30 USD/year for customer support, and we used it before only once).

You can find the IPB security note here.

P.S. While we did receive some DDoS threats recently, we don't have any reasons to believe this incident is related to those threats, which were of a different nature.

01 May 2006

Solar USB charger

Many devices today, especially the MP3 players, video cameras and PDAs support USB charging.
Those devices, being designed to be very portable and small, can often run out of power if you are away for an extended period, or if you forgot to charge them before leaving your home or office.

There are multiple solutions for this problem. Most of them involve expensive additional batteries, which can be used to charge our devices.
There is however a relatively inexpensive solution: A solar panel charger.
If you look on eBay, you can find some suitable solar panels (6V, 225 mAh) for about 10 USD, sometimes cheaper if you buy more. I bought mine from here, but feel free to look around and see if you can find better deals.

A solar panel charger is nice, but not all the days are sunny. And what do you do if you want to charge your device at night?
The answer is simple: Use some rechargeable batteries with your solar charger.
With a 6V panel, you can recharge 4 AA NiMh or NiCd batteries. Some NiMh batteries are rated 1.2V @ 2.5 AH, which is enough to charge even the most energy hungry portable device. They need to be placed in series with eachother, and in parallel with the solar panel. They will generate a little over 4.8V when charged, which is within the USB specifications.

So here is what you will need:
A. 1 or more solar panels. My design includes 2, but you can use as little or as many as you want. Of course, the more you use, the less portable your charger becomes.
B. A battery holder for 4AA batteries.
C. A blocking diode (RadioShack, old electronics, etc.)
D. Suction cups (optional)
E. Soldering iron/gun and solder.
F. An USB female connector (cannibalized from some broken device, or from an USB extension cable)
G. Copper tape (optional, you can use wires if you want).
H. Some strong glue.

The construction is very easy, and it takes only about 1 hour. I will assume you are going to use a two panel charger, like mine.

The first thing is to glue the battery holder between the solar panels, to hold them together.

Then cut the wires from the solar panels just above where they come out (you can't solder on panel directly, it has some plastic to protect it from water).

Place the copper tape as shown in the picture (you want to connect the panels in parallel).

Place the blocking diode as shown in the picture (a multimeter can be very useful, to determine the diode placement). The idea is for the electricity to flow from the panel to the battery, and not the other way around.

Glue the USB female connector somewhere on the panel, and connect the red wire to the plus of the panels, and the black wire to the diode, just as it comes out of the battery (on the - terminal). Again, look at the picture.

If you want, you can glue two suction cups on the surface of the panels, to be able to place them on a window or windshield.

To test it, place the least expensive rechargeable USB device into the USB female connector, and see if it works fine.
Ideally, you should measure the voltage and polarity, to make sure everything is OK. Otherwise you might burn your device.

That should be it. The total cost should be around 30 USD.
You can build it for less if you skip the whole battery thing (no need for a diode, batery holder and 4 batteries.

Some warnings:
1. This is a very simple construction, and as such, there is no special charging circuit for the batteries. It might shorten their life if charged excessively. So don't let that thing sit in the sun all the time.
2. Remove the batteries while not in use, because if a wire comes lose it can shortcut the whole thing and set your place on fire.
3. Ideally, you should be near it while you use it.

If you have questions, comments, suggestions, please leave a comment.