Right, this time I WILL keep this updated. For a bit.
I’m having an awesome summer so far – I got a placement at Lab901, which is a small company based on the outskirts of Edinburgh. They have designed a machine that does electrophoresis in just 10 minutes, allowing analysis of DNA to be completed in a fraction of the time that it currently takes. Its quite exciting, it actually feels like I’m doing a real job and being given real responsibility!
So what am I doing there? I was genuinely surprised when I found out that I managed to get the placement as my interview wasn’t exactly brilliant. It was one of those where a lot of words that were said didn’t actually mean much to me, and I had to spend a while using Google to find out what I’d just claimed I could do.
So when I started, I was expecting to be doing a lot of programming and maybe some IT Support style stuff. Turns out I got thrown in at the deep end – I ended up doing a lot of electronics for a new prototype which involved a lot of soldering, burnt fingers and frustration at my general lack of electronics knowledge. Definitely a steep learning curve for the first few days!
I eventually produced a couple of constant current circuits that use a transistor to keep a constant current across the load. These were then mounted in a small black plastic box, and I made a connector so the whole box can be connected to a PCI relay card – thus allowing the individual outputs of the circuits to be switched on and off. In this case, the circuits are used to drive some super bright LEDs.
After 5 or so weeks at my placement, I was given my first programming assignment!
I have to program a controller for the new development rig, that will be used to capture images of the electrophoresis in action, as well as controlling the LEDs and recording video from one of the cameras. This is all to be programmed in VB.net, which was kind of good for me. At least it wasn’t C#!
The controller is just about finished – image capture, video capture and LED control are all working successfully with the original two USB cameras that we have from a German company. However, there was a lot of code I could reuse from other projects, so it wasn’t as difficult as it seemed from the outset. But, as with all projects, a manager got involved and said he wanted to try a couple of new cameras from Canada to compare performance, which arrived at my desk on Thursday.
Now I’m writing a new wrapper class which allows the camera to be used as an object within the controller, allowing integration to be fairly painless. Well, at least that’s the plan. The wrapper is quite hard to write, but so far I have the camera capturing images okay (apart from the fact they are upside down), and the ability to set various parameters without needing to write the explicit code seems to be working. Not too much more to do, but I’m sure the integration will lead to a huge amount of problems!