Showing posts from 2014

Turning a laptop screen into an external monitor.

So my old Dell L502x died. However most of the components were fine, it's just the motherboard that seemed to be down with a case of water damage. So along with turning the chassis of the laptop into a dock/stand for my new laptop I wanted to turn the laptop's screen into an external monitor.

So the first thing I did was extract the panel from the housing to take a look at the model number and the interface. If you're looking to do this yourself just look up the documentation for your laptop or go to and look it up. Fortunately Dell has excellent documentation and a pretty straightforward teardown process.

Logitech G502 Proteus Core Teardown & Scroll Wheel Replacement

So I recently acquired a Logitech G502 mouse, and I have to say I absolutely love it. It's a beautiful mouse, and a worth upgrade to my old G500s mouse. However my one gripe was the new all-metal scroll wheel. While the weight was nice, I missed the rubber ring around my old 500s. This led me to attempt to replace the new 502 scroll wheel with the old one from my busted 500s.

So let's get started shall we?

So as you can see, these are what the mice look like side-by side. While they look drastically different, the ergonomics are actually very similar among the two.
The first step was to take the mouse feet off and unscrew the screws that hold the chassis in place. 

So the feet are layered. There's double-sided adhesive foam, with the feet on top. On the back foot, I managed to peel off the feet with the foam. However on the front two feet the foam stayed stuck to the chassis.

The next step was to separate the chassis from the top of the mouse.

Those are some pretty sweet lo…

Letter basket: Productive procrastination

I needed a break from working on Acorn, but I felt that if I halt my productivity then It'll be pretty hard to start it back up. Maintaining a consistent working ethos is good. As long as I'm doing something productive, no matter what it is, I find myself being able to switch back to working on important stuff opposed to if I had halted productivity.

So last thursday I gave myself a break from working on the final project. Instead I looked for something productive I could do. Walking outside my room to the front passageway I saw load of post on the floor. So I decided to go off into the wood workshop and make a letter basket to hang on the passage radiator. I used my vernier calipers to measure the thickness of the radiator and the gap behind it and set off to the workshop. It took me under an hour from planning to completion, and I'd made a thing. It wasn't very good and was only put together out of old scrap wood they had lying around, but I felt satisfied with my cr…

FYP: Accessibility, and Justification of Equipment

The next step was hooking up the master arduino to Hazel and have it listening out for the webapp's messages. This wasn't that hard as I'd already done it as part of my prior development in December. Unfortunately I was lacking a WiFly shield I had borrowed from the university at the time, and the university had all of the WiFlys booked out. 
However part of the intention of this project was accessibility, the components needed to be cost effective and easily accessible. This cannot be said for the WiFly shield as it costs around $70. The official Arduino WiFi shield costs around the same. Instead I actively opted to use an ethernet shield for a number of reasons:
Price.A new third-party ethernet shield can cost less than £10 on ebay. The one I bought for this project cost £12.49. I selected that one because it had UK distribution.Standardization.Nearly any third-party ethernet shield can be used with the Arduino's default Ethernet library. Another point for accessibil…

FYP: Sorting out the Webapp, MQTT

Well this blogging thing hasn't been anywhere near as regular as I hoped it would be. Anyway at this point solid radio communication had been established and it was time to connect it up to the webapp. I decided to use MQTT as a communication protocol between the webapp and the Arduino with the transmitter on it, the master. My VPS, Hazel, has an MQTT broker running on it currently.

Hooking up the webapp to publish was pretty easy using the mqttws library, a library for sending and receiving MQTT messages over web sockets. I set up the webapp so that it published the contents of the form with an identifier and the value for the respective form element. At this point I wanted as much logic to be handled by the webapp as possible. I wanted the transmitter to be completely dumb. This meant that if I wanted to change how the data string worked I could do it on the webapp and not have to touch the master Arduino.
So the webapp was pretty functional. It sent values through an MQTT chann…

FYP: Arduino data transfer over 433MHz RF

So Tuesday went... interestingly. Getting the transmitter transmitting data other than the binary ones and zeros went kinda well. It wasn't quite as hard as I expected, but still took a little while to get sorted.

The goal was to set up the transmitter sending a numerical ID and a value between 0 and 170. The 0-170 value was so that the receiver could forward this onto the servo, which would then the volume knob. This was generated by a potentiometer reading being mapped from 0-1023 to 0-170. Then this number was converted into a string, and prefixed with a number of '0's to ensure the string length was 3 characters. So essentially '139' would remain unchanged, '72' would be prefixed with a '0' to make the string '072', and '8' would be prefixed with two '0's to make '008'. This three character string would be then prefixed by the one character ID. Broadcasting something like 1139, 1072 or 1008.

Getting this transmitt…

FYP: Shonky Wifi & Radio Frequency

So the initial goal today was to essentially hook up the already completed Arduino & MQTT volume control setup to the Acorn webapp. So instead of manually inputting a number into an MQTT client, I was intending on adding a volume slider on Acorn. This would mean that I could simply slide the slider to allow control over the servo, and thus volume. The completed portion (made around December 2013) can be seen here:

However that didn't end up happening. The hurdle was that the WiFi shield I'd hastily grabbed from the university appeared to be a dud. I could have still gotten on with the webapp side, but I figured that I'd rather spend another day doing that when I could test it properly with the servo stuff. Instead I decided to get on with the communication stuff. I needed a way for all the Arduinos to talk to each other. A while ago I purchased some 433MHz radio frequency transmitters and receivers. I chose the 433 ones because of their low cost and my remote control m…

EW Project 4: Proposal

KOTH (King of the Hill)

An alternate reality game based in Plymouth University loosely based on the popular king of the hill game. It’s also very loosely based on the app Foursquare, which lets you keep track of places you’ve been and rewards you for visiting related places. The game will split the campus up into zones with players competing over control of those zones. Each zone will have a physical capture point. The capture point will be a web-capable arduino with a screen embedded into the environment. The game will take place entirely in the digital world through one’s smartphone.

A player must first register themselves as a player on the web application. Then they must log onto the web app through their phone. Following this the player approaches a capture point with a numerical code displayed on it's screen.

The player (Player 1 in this example) enters this number into the web app on their smartphone. This declares that Player 1 has successfully captured the zone - this inf…