Jashan Bhoora | blog

Posted: 03/12/2015

Second year inevitably came to an end, with the standard storm of exams and assessments between us and our summer holiday. A particularly interesting assessment was our Embedded Systems Project (EMPR). Over the course of the year, our task (as a group of 4) had been to program an mbed microcontroller to read MIDI (music) data from the CAN Bus wired throughout the hardware lab, convert it to an analogue signal, then play it via speakers. We also had to build an interface around this, making use of a keypad, 16x2 LCD and other peripherals given to us. Additionally, we then had to design and implement an additional feature to add to the specification we had already been given. I chose to create a serial GUI that would allow the mbed to be controlled from a PC, as opposed to just the physical controls.

When all of the teams' mbeds were connected to the CAN bus, and each had been set to play a different channel/instrument from the streaming MIDI track, the result was that the full tune would be played in a orchestral fashion. Unfortunately, I was unable to get a video of this in action. The program my team wrote is visible on the Github page of a friend and teammate: EMPR Project

My internship was set to start a few days after the end of term. I was successful in getting a placement at Cambridge Consultants, a technical consultancy firm that has produced countless innovations over the years, including the radio systems used in most of todays public air to ground transport control, and the round teabag! My placement is in the Wireless Division, as a Software Engineer. In the month and a half I've been working here, I've already been able to work on projects varying from low level C on satellite phones to C++ Windows Tools to Javacscript web applications, with more variety surely on the way.

The switch to suddenly working "9 to 5" has meant that I've had less time to focus on projects of my own, which will mean it's likely I won't blog much about what I'm working on this year. However I've still been able to do a couple of things..

To start, there has been some advancement in my 3D printing. The biggest of the changes being that I decided to take a plunge and purchase a completely different printing head. The E3D V6 is most notably different from the J-Head I had before in that it is all metal. After designing a new mount for it, the results (so far) of this change and a number of structural improvements is a far better print quality than I had before . Previous results have been consistently wavy and blobbly, but now they are looking for more like how they should. I also finally got around to trying out acetone vapour smoothing, which gives a very nice finish.

Below is the progression of a hedgehogs I printed from Thingiverse. This was done to stress test the new improvements, in that it printed the shape with no infill or external support whatsoever. It has quite a lot of holes where an internal structure would have usually filled it in, but overall I'm quite surprised with how well it came out!

Another noteworthy change is the addition of an inductive sensor to enable automatic levelling of the print bed. Happily, this slotted exactly into the mount I had already designed for the J-Head, so no specific mount was needed. This setup is useful since it takes out one of the most tedious parts in calibrating and using a printer.

The second exciting development is a new computer(!). I decided it was time to upgrade to both take advantage of new technologies, and move to a smaller, quieter case. The final spec is as follows:

  • Gigabyte GA-Z170X-UD5 TH
  • Intel i7 6700K
  • Noctua NH-D15 CPU Cooler
  • Crucial 16GB DDR4 RAM
  • Samsung SM951 256GB NVMe M.2 SSD
  • Thermaltake Suppressor F31 Window Mid-Tower Case
  • Corsair HX850 PSU
  • nVidia Geforce 720 GT x2

The combination of an unlocked CPU (represented by the K) and a good aftermarket cooler leaves plenty of potential for overclocking. Currently, the CPU runs 4.2GHz (stock) at 21C, though I've read people have been able to get as high as 5.0GHz. Definitely something to attempt on a rainy day.

Completely unrelatedly; in August I received an email asking for more details about the Arduino Smart Door. They were just getting started in planning out building their own version. After corresponding with them, I decided I'd publish everything that was done for the competition on Github. Included is the Arduino project, the circuit diagram, and the STL's for the gears used in the mechanism (though I'm not sure how useful they can be to anyone else): https://github.com/jashanbhoora/Arduino-Smart-Door

Looking back on it now after a couple of years, I see that there are so many parts of it that could have been done in a better way, however the material uploaded is all the original code used in the system shown in the video. I do hope someone will be able to make use of it, and I'd be happy to hear from you if you do!