Freesteel Blog » 2015 » January
Wednesday, January 28th, 2015 at 11:52 am - Machining
After spending a few days with all my bits and break-out boards in a bowl and stirring them around aimlessly, I got all the major SPI components lined up on a breadboard, like so:
That’s an SD card writer, an OLED screen display, a bluetooth low energy and a GPS module.
The additional devices are on short 4-wire phone leads in plastic printed boxes of dubious design.
After a great deal of unplanned soldering and the use of header sockets so that none of the bits are permanently stuck in the wrong place, I’ve got a thing that looks like this:
There are issues. The barometer has a separate power supply and now doesn’t communicate, the wind-meter has a degree of noise in its signal, the I2C accelerometer is too complicated, the dallas temperature sensors can only be read one at a time, and all three SPI devices are incompatible with one another.
By not including a datasheet with their airspeed probe, Brauninger/Flytek gave me the pleasure of two successful days of hacking involving an oscilloscope and much experimentation to work out its parameters and build a circuit to exploit them.
I bought this thing as an optional add-on to the Flytec 6030 (which I’ve never got to grips with) back when I had more money than sense. I wouldn’t have got it for the purpose of reverse engineering like this because I couldn’t do electronics then, and anyway I’d have rated the chances of success as quite low.
Nevertheless, by applying various voltages and different directions and blowing on the propeller to get a response, I established that if you apply a positive current on the tip of about 1Volt (and ground the other connection), the device exhibits a resistance of between 11200 Ohms and 12000 Ohms, depending on the position of the blade.
This was a job for a Wheatstone bridge:
You can actually see the voltage differences (in millivolts) over 1/12 of a turn of the propeller:
It’s been a lot of work, and I need a break. This has now outperformed my target over New Year period moping around Bull Pot Farm while everyone else goes caving.
I am now able to make numerous slices on this impellor model made of 38474 triangles with an angle change tolerance between contour sample points of 18degrees in about 5 to 10 seconds per slice using Pypy (or 80 seconds in Python3). The code is at bitbucket.org/goatchurch/barmesh. Use it at your peril. It’s just beginning to work, and the next thing I will do is break it.
Here are some pictures of the results of slicing an impellor shape that’s 20mm in diameter with a sphere of radius 0.2 using the command:
pypy -O main.py –stl=stlsamples/impellor1.stl -v -tswapyz -r0.2 -n52
Slices with ball radius 0.2 with the STL model shown
Offset slices without the STL model so you can see all the internal contours from the ball rolling along the inside surfaces of the model. These internal contours will need to be detected by connectivity and deleted.
View down the top so you can see the inner and outer offset slices of the central cylindrical through-hole.
From my initial profiling, 99% of the time is spent in the two functions MakePointZoneRF() and CutbarRF(). This is fantastic news as this is where all the point-line-triangle distance/offset-intersection calculations are done. And it’s intended to be very GPU-friendly. (I don’t actually have any experience with GPUs yet, but it could happen now I’ve got a real world use case.)