Thursday, June 25, 2015

DIY UV Exposure Lamp

I've made a UV exposure unit out of a cheap curing lamp for fake fingernails. Check out the Instructable I wrote!
Those are 7, 6, 5, and 4 mil traces from top to bottom.

Monday, October 27, 2014

Cheerson CX-10 Mod done properly this time around

I accidentally did the coolest paint job. I wanted to spray paint a CX-10 shell and rubbed it with nail polish remover to clean it. It dissolved a bit of the original paint, but that didn't bother me too much. I also gave the spray can only a very brief shake, not the minutes you're supposed to. Next thing I know, it looked like this:
It's got something alien skin like or something.
I also went ahead and removed the switch and added the tape like I said I wasn't going to. I even cut open a new lower shell, but this time I left the bottom in place, which also got a few layers of tape for added stability.
You can still see the piece of wire bridging the switch terminals.

Sunday, October 26, 2014

Cheerson CX-10 Battery Mod

The Cheerson CX-10 is an amazing little Quadcopter that can be had for as little as 15 Euros at your favourite chinese retailer. It's tiny and a ton of fun to fly (with a proper TX, that is). But there is one thing I don't like about it, and that is the battery being permanently mounted inside. What makes matters worse is that the included charger charges the battery too fast, which decreases battery life. Long story short, what I came up with was this:
Maybe a piece of Kapton tape wouldn't hurt here...
The batteries (these, IIRC) I ordered came with plugs that fit the charging connector on the quad. Nice. So all there is to do is remove the built in battery and bridge the switch as in the picture. In case it's hard to see: It's the outermost pads that need to be bridged, but it doesn't hurt if you bridge all three terminals. Of course you could remove the switch, but I didn't bother. Maybe I'll do it when I have to replace the next motor.
The replacement battery fits nicely.
Now I can charge my batteries at a rate that won't kill them after ten cycles and swap them out like on a "real" Quadcopter.

The rubber band adds a bit of DIY charme to it.
I had to add a picture with my Devo, just because the two of them look so nice together.

There is no banana in this picture.
Update: I actually went and did this one properly later that day..

Saturday, October 25, 2014

Devo 8s Multimodule mount

I have a Devo 8s RC transmitter which I adore. What I love most about it, is that there is Deviation, a great open source firmware project for it, which enables you to add transceiver modules for it and (at least in theory) speak virtually any protocol out there.

There is one slight little inconvenience though. The maximum of modules you can add at this time is three (actually it's only two but there is a way around that), which makes for a total of four. Which means, you have to have four antennas somewhere. Which in turn drove me into learning how to use 3D CAD software (which is a totally awsome experience, btw).

What I tried to do was create a reversible way to mount those four antennas as well as the quite chunky Multimodule itself (although I didn't think of that until later, of course). If you remove the stock antenna mount, you are left with a 20mm diameter hole with a 4.6mm rod going through in the middle. So I came up with a disc a little wider than the hole to mount the antennas on, and a little clamp that would be used to anchor it on the rod. The whole thing was intended to be laser cut out of 3mm acrylic with two clamps back to back for added stability.
The very first incarnation still without the module mount.
It actually kind of worked but I still hadn't figured out how to mount the module yet. I wanted some kind of mounting plate with holes in it so I could just ziptie the Multimodule to it. So what I came up with was this:
These are the 2D exported parts in Inkscape for the first version with the module mount.
This is the version I am using right now and so far it works great.

Mounting the Multimodule with a ziptie worked out pretty neat.
I didn't mount the fourth antenna yet because the A7105 module came with a piece of wire instead of a U.FL connector. But then, anything I would fly with that particular module, I wouldn't fly very far anyway, so I didn't bother to either order and wait for a connector to put on there or just botch a cable on there.

Originally the whole contraption was meant to be press fit, but I soon realized that was never going to happen. Not with the laser cutter at our hackerspace and my patience, at least. So a liberal amount of high viscosity superglue did the trick instead.

The gap between the enclosure and the antenna mount is intentional. The nuts on the SMA connectors wouldn't fit inside.
I was still a bit worried about stability, as there is no anchor for the antenna mount on the outside, so I altered the design another time and came up with this:
The very last incarnation. Untested so far.
On this one there are only two parts instead of three and the module plate protrudes from the antenna mount. It also has a little hole to put a tiny steel rod through, instead of the slit that didn't really work out. That and (again) a generous squeeze on the superglue bottle should make up in stability for the reduced thickness of the joint.

I haven't built that one yet and I just never might, because the current prototype works for me, but maybe somebody else will. Here are the files.

Friday, October 10, 2014

RCExplorer Tricopter v2.5 Build

Over the last year or so I've picked up flying RC multicopters. I started out with micro and nano sized toy quads like the Hubsan X4, which are great for learning the basics about flying such a thing, but eventually I wanted something more "Hobby grade". Something I will have to build myself. Something "real". Also something intimidatingly large, as it turned out.



I used the original arm length of 48cm and the thing is humongous! Those are 11" props on there (not screwed on of course, just for scale). And please excuse the unit confusion. We have the metric system where I live, but some things like screen sizes or propeller diameters are commonly measured in inches.
 So I decided to build a Tricopter design conceived by RCExplorer's David WindestÃ¥l, v2.5.

My take on David's "Coffin Body"

Frame and Landing Gear

 David's original design features an arrow shaped frame, but there is also an alternative version which he called the coffin body, for obvious reasons. That was the frame I wanted to use, but I didn't know where to buy and/or cut carbon fiber or fiberglass. Except for PCB fab houses, of course, so I went and designed a board in Eagle. While I was at it, I played around a bit and added a power distribution system and a bit of "coffin art in copper, tin and solder mask". And yes, I know, this would have probably looked a lot cooler with black solder mask, but the boards were expensive enough as is, and I didn't want to spend another 16 or so Euros for black soldermask before I even know if my concept worked.

The landing gears are also just PCBs designed in eagle. They have footprints for 1206 LEDs and 0805 resistors on them. Oh, and little skulls, of course!

Power distribution

Originally I had planned to put the wiring on the inside of the sandwich, but that didn't work out due to too short battery leads on the ESCs. And I had a hard time unsoldering the original leads. As a matter of fact, I eventually gave up on it after repeatedly failing to remove the leads even with the whole solder joint liquefied. It felt like they were spot welded or glued on there somehow. Anyway, I was afraid to completely destroy the ESC boards, so the original leads stayed on, end of story. Also, I soldered the battery connector directly to the board because I didn't have any beefy cable handy at the time, but I'm not sure it's a good Idea. it looks like it's just waiting to break off in a crash.

Those solder joints don't look too good. I should probably redo them before something bad happens.
Also the screws are way too long and I didn't have lock nuts, but I hope that the generous amount of thread lock I applied after taking the picture will hold everything in place.

Just a cheap Arduino clone. Please move along.
Electronics
I used a Frsky D8-Something RX with PPM output and a Chinese Arduino pro micro knock off running MultiWii with a MPU6050 sensor board, for now. I'm planning on replacing it with a Chinese CC3D knock off later.

From left to right: Servo/ESC interface board, FrSky RX, MPU6050. And yes, I know the wiring looks like shit.

I used a bit of protoboard to interface the Arduino with the ESCs. This might go into a later version of the frame, along with an I2C Bus, to ease playing around with different kinds of sensors. Oh, and a voltage divider wouldn't hurt either, I guess.

Setup/Test flight

I've begun setting up MultiWii, but so far the copter wont behave itself. I suspect the PID values are way off, but I just don't have the experience to tell exactly what is going on. I've even got it off the ground for a few seconds once, but I don't consider that a successful flight, even though it stayed in one piece, because I couldn't really control it.

The beast folded up. The original frame design leaves a bit more space for zip-ties closer to 

After the crash...

There's no point in pretending that I won't involuntarily destroy this thing rather sooner than later, so I already have a few things planned to do after the first fatal crash:
  • Try again to desolder the original power leads from the ESCs and put custom length leads on them. Don't chicken out prematurely this time
  • Mount the ESCs as close as possible to the motors
  • Put the power distribution side of the board on the inside of the sandwich.
  • Buy the right length screws and lock nuts for the frame
  • Build the Battery/Camera mount from David's design
  • Try shorter and maybe thicker arms
  • Put the LEDs and resistors on the landing gears before mounting them to the copter
  • Redesign the frame board to use the original arrow shape and put signal distribution, a voltage divider and an I2C bus on it. Hell, maybe even a few LED drivers if I feel like it! After all there is one completely unused layer of copper on there (unless you count the skull doodle)
  • Something I don't know yet. Perhaps something dangerously stupid.

Toellner Lab Bench PSU Repair

For quite some time I wanted a "real" bench power supply. The problem is, the good ones are expensive and the cheap Chinese ones are usually crap. So I bought an old Toellner TOE8433 on Ebay.



According to the seller the left instrument was broken and always on full tilt, the cause being "probably just being a bad solder joint". That wasn't it.

The PSU has three outputs: A 3-6V output and two identical 0-30V 0-1A outputs, one of which was broken and put out about 44V, no matter what. The instrument itself, on the other hand, was completely fine. There just wasn't any scale left.

A first try to repair it without schematics didn't work out so good. I found a few broken components but I didn't find the cause of the fault. So I went hunting for schematics on the net, without success. There was one guy selling the schematic I needed but he wanted 10 € for the PDF. That couldn't be any more than a last resort. So I tried contacting Toellner themselves. I knew that was a long shot, but since I was reluctant to give somebody 10 € for a PDF, I had to give it a try.

I wrote a mail explaining that I bought an out of production PSU on the net, that I was on a tight budget and asking nicely for the schematics. I didn't really expect an answer at all, but two hours later I had a mail in my inbox, reading something along the lines of "Dear Sir, enclosed you'll find the files from the years 1984 and 1992. Please recommend us. Best regards...". Attached were complete schematics, BOM and a description of how the circuit worked (which I didn't entirely understand, even after reading it ten times - more than three transistors interacting with each other still make my brain hurt).

With the schematic, repairing the thing was a piece of cake. I soon found out that an internal supply voltage was missing and found the fault in the generation of that voltage, so after fixing that, everything worked perfectly again.

The only question remaining is, how did the previous owners manage to break the thing in the first place? These devices are widely in use in educational workshops, so they can take quite a bit of abuse. Shorted outputs and even hooking up voltages shouldn't be able to damage them. Hooking up mains could do the trick, though, I suppose.

So I want to thank Toellner for supplying me with the schematics, and no, I won't share them. They have been nice to me and I don't want to piss them off by publishing their stuff on the net. I value open source a lot, but these files aren't open source or public domain, and I have to respect that. If you want them, go and ask for yourself.

Tuesday, March 4, 2014

TP-Link based DLNA Music Player

Everybody is building some kind of multimedia stuff with a Raspberry Pi these days. I'm no exception as I also have one connected to my (really shitty Philips) TV, running RaspBMC. But that's not what this post is about, and it's also pretty lame, since there isn't really that much to it.

Objective

I also wanted something to connect to my stereo to play music, but I didn't want to use a Pi for that for these reasons:

  • It's rather wasteful. The Pi including a power supply and an SD-Card costs about 50,-€ and I wouldn't even use most of the hardware it comes with.
  • The SD-Card will break eventually. Depending on how much logging I would forget/neglect to disable, rather sooner than later.
  • It doesn't have wifi and I have no ethernet in the dining room where the stereo sits.
  • The audio output of the Pi sucks. Plain and simple. It's about as far from HiFi as Fox News is from being a news network. So I'd have to use an external DAC to get decent audio output from it.
  • It's about as lame as using a Pi for video playback. Perhaps even more so.
Now that we have established that a Raspberry Pi just isn't the right tool for the job, what is? A cheap chinese wifi router seems to be a perfect fit, provided it has enough power to decode MP3s, OGGs, and FLACs (and it has). The only thing missing is the audio output, but that can be added as a USB device, the same way it would have to be done with a RasPi. Also, it obviously has wifi and it's a lot cheaper than a RasPi.

Hardware

I went for a TP-Link WR841N V7.2 because that's what I had lying around. I also had a Behringer USB DAC collecting dust. If anyone wants to replicate this project, I'd recommend getting another kind of router, since the WR841N doesn't have a USB port. The processor does, however, but I had to solder the D+ and D- wires to some tiny ass resistors on the board and generate the +5V from the routers 9V supply voltage myself. Any version more recent than 7.2 of the router doesn't even have traces for the data pins and the processor comes in a QFN package, so you'd have to cut away part of the processor package and solder the data lines directly to the processor pins. Some people have done that, but I'm just not that sick. I might be a cheap bastard, but putting a Dremel to a QFN package is where I draw the line.

Somewhere left of the processor are R601 and R602 where D+ and D- surface
Other than adding those data lines the hardware side of this build isn't too interesting, so I will spare you the details.

Botched up a 7805 voltage regulator and a few caps on a piece of perfboard
OpenWRT

Since these cheap routers only have a few megs of flash, they can only run special embedded Linux distributions like OpenWRT, which is what I am using. But even with that, there was no way of fitting all the needed packages in there, so I added a flashdrive to deal with that. Since the processor only has one USB port a USB hub was also needed. That was actually the only thing I had to buy for this project.

The OpenWRT project provides lots of documentation about building minimal images and putting its root filesystem on an external storage, so I've done just that. With plenty of storage to install the needed packages, it's for the hard part: Building the software.

GStreamer and gmrender-resurrect

There are quite a lot of projects out there that achieve a similar goal, but it seems that all of them use mpd for streaming. Frankly, I don't like mpd very much, mainly because all clients I've seen so far lack in usability. Also, it seems to me that while it even supports gapless playback, it's unlikely to be adopted by manufacturers (if it were, there would be a few commercially available players by now). DLNA on the other hand looks like it's quickly becoming a de-facto industry standard as it already has been adopted by some very reputable HiFi manufacturers like Linn, Marantz, Denon and others.

For DLNA-Support there is a project based on the gstreamer framework, called gmrender-resurrect, and also an OpenWRT port of it. OpenWRT packages can be built using either the OpenWRT SDK or the OpenWRT buildroot. If you can live with the hopelessly outdated gstreamer packages provided by OpenWRT, it's just a matter of building the gmrender-resurrect package and you're done. I couldn't, however, so I built packages for the current version of gstreamer, too, which took me forever.

I'd like to point out that no real coding or porting work was done on my part. I just updated and fixed a few Makefiles to make it build. All the real work was done by other people.


The finished thing: Router, USB-Hub, Flashdrive, USB-DAC
All patches needed to compile gmrender-resurrect and gstreamer (including plugins) are available on my github.

What it can do

These little routers are really amazing. With this I am now able to play music from any DLNA source (fileserver, phone, tablet, laptop, you name it...) to the stereo in my dining room. I'm using BubbleUPNP on Android as control point and it really works great! Also, it still acts as a WDS-router.

Where to go from here

There's a lot more that can be done, given that all the LEDs and buttons in the router are actually GPIOs. So adding a LCD and putting it in a nice enclosure (like an old CD-Player) with Play/Pause/Skip-buttons should be pretty easy.