I was first thinking using eMashineShop, but now I'm leaning towards buying a 3D printer instead! First I was planing to buy the RepRap Huxley, but after some discussion on IRC in the #reprap channel, the good folks there recommended me the newer Prusa Mendel model. Somewhat more expensive, but have a bigger working area, better extruder, and bigger community too apparently. There is also this Thing-o-matic, but it's more expensive and sounds more:
What is cool with these RepRap (Replicating Rapid-prototyper) printers is that everything is open. Both software and hardware. You can buy the parts separately or, as I will probably do, as a kit at MakerGear. That way, I know I get all I need, and also, don't have to pay extra for several shipments. You can even build the better parts using the printer itself later, which is quite handy.
Also, for me, having my own printer I will learn a lot, and also, I will be able to experiment and fail with the enclosure more without it being too costly. I can be more creative with the design, and basically be more personal with the device I'm making. The software also support adding up a few of the same on the board, so mass-producing shouldn't be all that much of a trouble. Although, I will need to spend some time to fine tune everything so the end-product enclosure looks good! It will probably not be as excellent as made by the bigger more expensive machines, but from what I've seen, it's not all that bad. Just look at these examples:
Also, look at Thingiverse site for more awesome things one can create!
Short introduction:
Longer presentation:
This is still all in early stages, and there seem to be a lot of improvements and developments going on here all the time! Futhermore it's interesting idea behind this. Evolution. It will improve itself! It will cost around $800, but compared to commercial ones at $30000+, it's not all that much. I also love the idea that I can create my own items, and just print them, say I needed a new part to hang something up.
Related to this is also the open source application OpenSCAD! Want to create a cube? Easy, just type:
cube([10,10,10], center = true);
Want to remove parts of it? Easy, just add "difference" and then all but the first will be removed from the first mentioned.
difference() { cube([10,10,10], center = true); translate([0,0,6]) { cube([5,5,5], center = true); } }
Note I also translate (move) the part to remove, otherwise it would have been in the center of the larger cube here.
So easy to create my 3D objects this way. And, you get precise sizes directly too. Here you can think of values as millimeters. After you're done, just export the file as .stl and basically print it in your 3D printer! (You may have to convert to Gcode, but this can possible be made in the printing software too). OpenSCAD also supports variables, functions and for-loops, so that makes it even easier and practical to create objects!
Man, I wish I did this earlier! Actually, I though of doing this before, but had a feeling it was waaay out of my league, and too expensive. In a way, it is true, but given what I know now, it would probably have saved me money and time!
Since I've decided to create my own PCB, I also decided to build the board independently of other development boards. This will reduce cost, and make the whole thing smaller. Besides, it's cool!
Thankfully, I've found this OpenHardware project Micropendous which uses same components as the Teensy. This helps a lot, because I've been developing and based my code on the Teensy, which really just is a breakout board for some cool AVRmicrocontrollers. However, with Micropendous I'm able to modify the hardware and layout to suit my needs. For instance, I don't have any need for breaking out all those pins on the microcontroller to header pins, because I will use them internally, hooking up the sensor with it. I can also add LEDs and place them where I want them.
This cool thing dropped in my mail the other day:
Micropendous device
I can't thank this guy enough for his useful, fast and great help! Since I'm planing selling this thing, I want to create something of quality, and since this guy really know his stuff, and have helped me developing the new PCB for this project, I know the end product will be even better than if he didn't. Big kudos to him.
I've spend many, many hours now in KiCad, and, I must say that it's a fantastic program! It's also open source and free to use. There is a bit of a learning curve, but if you use Micropendou's already created KiCad projects, you will learn a lot faster than starting from scratch. There is also a bunch of KiCadtutorials on YouTube.
Man, just look at those Micropendous boards, intense and beautiful made:
Example of PCB layout - 1 layer shown.
In 3D view.
Just look at the routing here:Bad ass routing!
You really start to respect people that creates these boards. Just look at motherboards for instance. A lot of effort goes to create them, and they usually use 8 layers! That is trippy! These boards here use 2 layers.
Anyway, I'm currently in the process designing the board where I will most likely let MyRO PCB fabricate and assemble the board! Also, I was planing to use CNC Machine Shop to create an enclosure for it! That's right, create a quality product!
This is what dropped in my mail the other day. Thanks to the guys at Cogra.se, I now have this board. Yes, been busy creating this layout based on what I've done by hand before. With this, I can just add the components and get this:
And guess what, IT WORKS! Man, does that feel good! The layout made saves me huge amount of time. Because of this, I'm seriously thinking replacing the components with surface mount ones and even let it be assembled where they create the board!
Now I'm wondering, Why didn't I do this earlier! Instead of investing in rotary tools etc...
I was planing doing PCB boards later, when it was more finished, but there exists good services out there that can do this for alright prices... so, why not start doing it already... That way, I will also have a product that I can test and when it is "perfect", sell it for others interested in buying it. That is, actually develop on what I will sell directly, instead of doing it twice...
Well, look at that! Obviously, some filtering has to be made. No surprise there really. I would love the raw data actually not giving me those noise values, but that only works in a perfect world I guess. However, increasing it's height from surface improves the data as you can see, and those peaks really are far and few in between! Shouldn't be a problem at all filtering that out.
It's also obviously working at higher jogging/running speeds as the second graph shows... Although more noise, but still really only a few. Who will run forever anyway? :)
So, this is a graph showing an example of me walking and then jogging on the treadmill using my device (negative is correct, as forward motion becomes a negative value apparently). Previous graphs were even more radical like the one on the right here, but putting it up, higher from the surface seems to solve that pretty well. I will see if I can improve this further, otherwise I will solve it in code by applying some kind of filter. Note that this is raw data from the sensor, so I guess some kind of filtering needs to be applied anyway... But this is really looking good I must say! Note also that the positive peaks are really few, compared to all the samples made.
So, this is the first prototype using the better ADNS-9500 mouse sensor.
Few months have gone by now mostly because I have done everything I could think of, asked around, trying to solve the issue I had. I have actually thought this could be the issue a few times, but what can one do. The problem I had was that whatever I did, I couldn't get any motion data. The SPI worked, as I could get product id and such, but when I moved the sensor, I got nothing. As you can see in the image to the left, I have highlighted the component that is to blame for it all. This tiny, 1.5mm MOSFET wasn't properly connected (either not soldered properly, or damaged during soldering), and thus the Laser didn't get any voltage, and thus the sensor couldn't detect any motion. This is all solved now, in another prototype I've build, build like the one in the image, but using a similar MOSFET and this SOT23 to DIP Adapter.
So now, finally, the fun starts! It feels like a heavy weight has been lifted, and I can now finally continue with this project! I've actually started with the coding already and even started to create graphs based on the motion data I get...