Thursday, December 25, 2014

Reflow oven controller with Multimeter and Arduino

After a few boards I got sick of soldering 0603 components using a soldering iron and started looking into using solder paste and hot air. I bought a hot air rework station from Rhinotools. It looks nice, but is rather noisy to use, and I find myself going for the iron always instead of the hot air gun.
The next step in the soldering tools exploration was a classic toaster over reflow. The boards I usually solder are rather small and not panelized, so I do not need a large oven. The smallest decently built oven cheap oven I could find was a K-Mart Homemaker 14L model with 1300W heating power. I also backed an Arduino Leonardo based reflow controller on Kickstarter - ControLeo2. While waiting for the controller to arrive from the US, I got itchy fingers and started hacking together a controller from bits I had lying around.

The ControLeo2 is impressive in being a 4 output reflow controller, to fully utilise this I ordered 4 cheap Fotek relays. They are rated at 25A, and the elements in the toaster consume about 3A each, so there is plenty left over. I would have liked to get a Crydom relay, but they are rather expensive. There is plenty of space in the controller compartment to fit all the 4 relays in, what I will control with them is another matter. Only 2 are needed to control this particular oven as it stands, 1 for the top and 1 for the bottom. The other 2 are planned for the booster element and a cooler of some sort.

Mounting the relays in the case requires some angle brackets, I found these at Bunnings which exactly fit the holes in the SSR with pre-drilled holes. They are galvanised steel however, not the best for heatsinking relays, but they are a good start. I am going to make some proper brackets with bent aluminium bars, but that can wait.
The initial controller was built using the BeagleBone GPIO's. There is the popular Adafruit GPIO library, but I used the less widely used PyBBIO since it has an included reflow oven controller code. My fork is modified to read temperature from a Digitek 4000ZC multimeter over the serial port using the FS9721 python library. A lot of multimeters, including some of the UNI-T models use this controller, so the adaptation should be useful for anyone with this multimeter at hand and not necessarily a MAX31855 breakout board. The SSR's are wired to the BeagleBone GPIO's via a ULN2003 relay/solenoid driver I picked up at Jaycar.
The BeagleBone arrangement though quite nice lacked a few features in the existing code, particularly support for curve editing and proper PID control. So I looked into another Python based toasterReflow controller - picoReflow. This one has even snazzier GUI and lots of options to create new curves and calculate cost in cents per reflow. I decided to try something different this time and replaced PyBBIO using my Arduino's GPIO capability, since a lot more people probably have Arduinos compared to BeagleBones and Raspberry Pi's. So my EeePC replaced the beaglebone as the main controller, taking in the readings from the DMM over 1 USB port and feeding out the SSR control signals to the Arduino over another USB port. This closed loop looks something like this:

Oven -> Thermocouple -> Digitek 4000ZC -> EeePC -> Arduino -> ULN2003 -> Fotek Relays -> Oven

Overall this works quite well for me and I hope it is useful for someone else attempting to build an oven without a fancy controller with just the bits at hand, yet achieve a nice controlled profile.

Wednesday, December 3, 2014

Making a Great Helm and other pieces of armor

Sometimes I get carried away while making a costume, but not far enough to be considered a cosplayer. I started by making a Great Helm, in Australia this is commonly mistaken for a Ned Kelly Helmet. Then I got carried away and made most of the upper body armor in the crusader style. This post has some build photos and final result.

I wore the full suit on top of a traditional indian kurta, the best approximation I could come up with on a short notice of a crusader tunic.

Top on Great Helm
Completed Great Helm, with Breast Plate (template attached)
Top/Bottom parts of Great Helm
Had to take a photo of the pauldrons with the make magazine and the brushed aluminium of the Mac.

The gauntlets were some simple spray pained gardening gloves, the metallic paint costs more than the gloves. Next time I shall try to make an articulated stiched on number.
The final pieces were made of moulded Worbla, nothing fancy. Mostly because I ran out of aluminium sheet and wanted to experiment a bit with this new material. It has great potential, but is a bit thin when used by itself, next pieces will have some craft foam embedded in them.
The day at the medieval fair turned out to be quite a success, my Morning Star built out of coke cans and a foam ball got a lot of attention. Currently the armor sits on a mannequin in my living room. Looking forward to making some more pieces for next year.
Mixing up themes a bit

Saturday, September 13, 2014

Designing the Xadow - SD module

I am always looking for Arduino modules with small form factors, the first Arduino I ever got was not the classic chunky board , it was a Mini Arduino Pro. I proceeded to attach that to a quadcopter with some success in the era before pre-built ardupilots.

Lately I have been playing with the Seeed Xadow form factor modules. They are designed for a smart watch projects. My aim is to build a camera hot-shoe capable of injecting GPS into the exif as well as logging the orientation of the camera in Omega-Phi-Kappa co-ordinates. Something similar to the Solmeta unit or the much more affordable Navspark SUP800F, but with accelerometer-gyro-magnetometer combined to work better on more dynamic platforms i.e. a Helicopter circling a point and experiencing centrifugal force which can throw the accelerometer based gravity calculations off.

Xadow module chain including Xadow SD
The Xadow system has pre-built modules for most things including a 9-DoF IMU with the MPU-9150 on-board, low power OLED module for display and a GPS. These components can be used to build a complete AHRS + GPS system with one thing missing - large data storage. The pre-existing Xadow - Storage module offer only 64K of storage in EEPROM, an opportunity to make something new.

SD card shields are easily available in the standard arduino ecosystem, but none exists for the FFC cable based Xadow form factor. So I took an SD shield design and shrunk it down to the Xadow size. It is now available on the Seeed Wiki as Xadow - SD component. The next revision has bread-boardable breakout pins on the side for use as an SD card reader with any other system. So the Xadow watch can now have 32GB of storage. With the Cortex-M0 based Xadow main board and colour display anyone can now make a poor-mans version of the iWatch.

If you are interested in the Xadow system, grab the SD card module design here and give it a try. I also have some blank PCB's I can give away to anyone who wants to practice some SMD soldering.

Monday, July 21, 2014

Adding SBS Adelaide Manually to TVHeadend

Recently I ordered a new USB Tv-tuner via Aliexpress. As expected it arrived without extra packaging and drivers, but complete with a tiny antenna. After some googing with the USB VID:PID ( Bus 001 Device 016: ID 15f4:0131 HanfTek ) I found some notes about support in Kernel 3.13.
Astrometa Tuner - Also supported by Kernel 3.13

So I upgraded an Eeepc I had sitting around to this kernel and the TV-Tuner card showed up. Next phase of the adventure was to share this new found tuner to the rest of the house via TV-Headend.

[12546.596154] usb 1-1: new high-speed USB device number 16 using ehci-pci
[12546.738398] usb 1-1: New USB device found, idVendor=15f4, idProduct=0131
[12546.738414] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[12546.738425] usb 1-1: Product: dvbt2
[12546.738435] usb 1-1: Manufacturer: astrometadvbt2
[12546.744405] usb 1-1: dvb_usb_v2: found a 'Astrometa DVB-T2' in warm state
[12546.812321] usb 1-1: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[12546.812379] DVB: registering new adapter (Astrometa DVB-T2)
[12546.816555] usb 1-1: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
[12546.826784] r820t 6-003a: creating new instance
[12546.838662] r820t 6-003a: Rafael Micro r820t successfully identified
[12546.845398] Registered IR keymap rc-empty
[12546.845785] input: Astrometa DVB-T2 as /devices/pci0000:00/0000:00:1d.7/usb1/1-1/rc/rc11/input33
[12546.846154] rc11: Astrometa DVB-T2 as /devices/pci0000:00/0000:00:1d.7/usb1/1-1/rc/rc11
[12546.846621] input: MCE IR Keyboard/Mouse (dvb_usb_rtl28xxu) as /devices/virtual/input/input34
[12546.847310] rc rc11: lirc_dev: driver ir-lirc-codec (dvb_usb_rtl28xxu) registered at minor = 0
[12546.847334] usb 1-1: dvb_usb_v2: schedule remote query interval to 400 msecs
[12546.859647] usb 1-1: dvb_usb_v2: 'Astrometa DVB-T2' successfully initialized and connected

Getting TV-Head end installed via the debian repository was a breeze, just add it to apt-sources after importing the signature. Adding channels is fairly easy as well, go to the TV Adapters page, select the adapter and Add DVB Network by location, in my case this was au_Adelaide. All channels added successfully except SBS Adelaide, which seems to have changed frequencies recently. So I dug up the new frequency - 184.5MHz and decided to add the Mux by hand.

Basic Tv-Tuner page for TV-Headend

Just the centre frequency and bandwidth are required, everything else can be left on "Auto".
Adding SBS Adelaide MUX by hand
Adelaide DVB-T channel list (including retuned SBS)

After the MUX shows up in the list, press play and this will scan the MUX and auto-add channels. These channels however will be nameless and require "Map DVB services to channels" in the main page to be named properly. Afterwards the full channel list including SBS Adelaide looks something like below. From there it is just a matter of hooking it up to VLC or XBMC. Happy Tour-de-France watching and recording ahead.
SBS Via TV-Headend into VLC

Thursday, May 15, 2014

All over Cambodia in 3 weeks - Siem Reap

Last December and January I cashed in my annual leave and some more to go travelling in Cambodia for almost a month.

The fantastic ancient temples of Siem Reap cannot be quite enjoyed in a day, but in one hectic day starting in the dark at 5am we came quite close. Pity the $30 extracted from millions of tourists every year ends up in the hands of a Vietnamese contractor.Baphuon sleeping BuddhaWe managed to visit the impressive Angkor Wat before a rather lack luster sunrise due to the clouds. Then off for a jaunt on the tuktuk through the myriad temples of Angkor Thom. Finally we managed to convince the reluctant driver to make the long trip to Bantey Srei (The Women's Temple) and admired its beautiful carvings as the sun set. Apsara Detail
The night in Siem Reap is an entirely separate experience all by itself. Where the temples show the grandeur of ancient Cambodia, the Night Markets and Pub Streets of Siem Reap reflect the vital resurgence modern Cambodia is exeriencing from the decades of bloody civil war. Granted most of the industry is rather grey and exploitative in nature, it is still good to see haggling in the market and mass production of temple based artwork from a few originals made by actual masters.

All told I would have loved to stay in Siem Reap for a month to catch the perfect sunrise over Angkor Wat and the perfect sunset over Bayon, and indulge in the debauchery in pub street every night.

Wednesday, April 9, 2014

Building a Many GPU LTC rig

 I acquired most of my BTC gear through eBay (only a couple of Hashbusters directly from Ukraine and a Single while BFL had them on sale). They cost a premium there, but it was fun playing around with the variety of gear. I have resold most of the things by now and received a note about strange power usage from Simply Energy. I wanted to save myself some trouble and get an LTC rig off eBay, but the prices seem not worthwhile. The description of the rig is generic, almost like a pre-order, the seller is offering to build it for you assuming you cannot handle motherboards and pci-riser cards.

So I decided to have a go and thanks to the numerous guides and forum posts, setting up a rig with 2 GigaByte AMD 270x cards was a breeze (opencl calls them pitcairn). The 270x's are power hungry, taking about 200W each, you will need at least a 600W PSU with 2 cards to keep up. Get a modular PSU and will come in really handy in keeping all the cables neat and tidy and switching to powered PCI-e riser cards. I was planning to build a 4+ cards unit, so I got the Corsair RM1000 PSU.

Next was the choice of a Motherboard, it ended up getting the MSI Z87-43 with 2 x16 slots and 2 x1 slots usable with risers. In retrospect the Z87-45 would have been a better choice since it can handle more PCI cards or the made for BTC ASRock H81 pro BTC. After that there are behemoths such as the Trenton PCI host board with 18slots.

Getting the AMD Catalyst Drivers installed on Linux is a major pain. Finding the right patch requires some searching, but in the end it works quite nicely. After getting 1 machine working I imaged the SD card using win32diskimager and set up other motherboards I had lying around to run the same config. Just as I got going I realized that with the advent of ASIC's the supposedly ASIC resistant scrypt mining is now beyond GPU's time to look into vertcoin or dedicate these to Folding@Home.

Meanwhile if you are still playing with Scrypt based altcoins check out wafflepool and my Android widget to keep tabs on it.