BUCS National Indoor Finals

Team plymouth photo

The plymouth uni team

BUCS indoor finals took place this weekend and what a day it was. Plymouth University sent a team of 6 archers to the finals held in Bristol at Coombe dingle sports complex. Three archers in the men’s recurve category, Alex Rowe, Hayden de Noojer and Joe Tripp), Jessica Mooney for women’s recurve, Emma King for women’s longbow, and myself in the men’s barebow category.

Following an early start on Sunday we arrived and set up, female recurve and both barebows shot in the first session which meant that no one got a lie in as both drivers were in the first session. After shooting some really nice practice ends my shooting levelled out pretty quickly with no end coming in at under 20 in the first half, unfortunately I started struggling with sugar and water levels half way through the second half, resulting in 2 ends of 19 before I managed to pull myself together and eat something. At the end of the qualifying round I was sat 10 points clear of 2nd place. This set me up well for the H2H meaning I should have a clear run to the QF if I continue shooting as I had been. After the WA18 I decided to have a tactical nap after taking some photos, and ensuring that the rest of the team was set up and ready to go, this took me almost to the end of the second round and ready to prepare for the H2H.

In the men’s recurve Alex seeded 4th, Hayden 9th but unfortunately Joe did not make it to the H2H, both Emma (2nd) and Jess (28th) qualified. Unfortunately our team’s lake of H2H experience started to show and resulted early losses, with only Alex making it to the second round. The format of the H2H mean that there is a lot of pressure on every arrow, this is something that is very difficult to practice for without doing many competitions in the format as there is no real way to simulate the pressure of shooting so close to your direct challenger. The psychological element of competition prep really comes to the fore here and this was especially noticeable in my 3rd round which I should have won in straight sets but I didn’t get my head in the game till the third end. Unfortunately Emma lost her SF causing her to lose focus, not realising she still had the bronze medal match for which it was then incredibly hard to focus for.

In these situation it is incredibly easy to lose concentration for even a split second, costing you the end or even the match.

To shoot first or not to shoot first: I prefer to shoot first in a H2H for two main reasons, I don’t like knowing what I have to match before I have shot as this usually results in scoring that score or lower, and second, having seeded in first I am in the comfortable position of knowing that if I continue to shoot as I have I should win and have the possibility to tighten the pressure on the opposition if I put a good arrow down range.

In my experience university competitions are always great fund usually friendly, with each team supporting their teammates on the line. We even found ourselves rooting for Ben Trudgill of Exeter to win the Mens recurve. Our teams support and vending machine runs were invaluable during my head to head as I was again starting to lose concentration as my sugar levels dropped.

I think my main takeaways from this event are first that thinking about what to eat when before a competition is really important, and can mean the difference between an enjoyable day and good performance and an unsuccessful frustrating day. And the other is how important head game is in archery and especially in the final head to head rounds when the pressure is turned up to 11.



One way to “get in the zone” is to prepare properly before each round and even end, whatever this is for each archer, it could be a specific set of warm ups or just mentally rehearsing the draw and loose process, whatever it is it doesn’t really matter. This also helps forget about the other competitors and their performance if I am concentrating fully on what I will do on the line.

In the past I have found that bringing a kilo of flapjacks to an archery usually event ensures that I keep my sugar levels up and always having enough water on the waiting line is also important. On the second point I am hoping that our club will hold some more events both internally and externally to get both new archers competing and improve the head game of those that already take part in competitions.

Photos by Malcolm Rees full album here. And the rest of the plymouth team.

Goal setting



Goal setting is an important part of progression and personal development. This is especially apparent to me in archery as it can often seam like progress has stagnated if I don’t shoot a new record every few weeks.

In the past I have set myself a goal each season that I  want to achieve before the end of the summer tel term. Last year this was shooting over 500 in a Portsmouth round with Barebow. Unfortunately I missed this by 2 or so points or 1 session depending on how you look at it, as I scored 498 in the penultimate shoot of the year and then smashed that target with 515 on the first session back in September. Since then my score has steadily risen every month or so, to where I currently stand at 529.

The next goal I set myself was to shoot a Portsmouth without any blues. This was because I was shooting quite erratically with most of my arrows being ok, but every now and again one would fly out from the group and land in the 5 or 6 ring. I think that was a more constructive goal to set myself than getting a new high score as it encourages me to concentrate on each and every shot.

These goals are alright and better than nothing, but they are woolly and aren’t very specific. So going forward I am going to try to set SMART goals regularly, and record how I Progress on them to ensure I keep pushing myself and working on relevant areas of my technique.

Long term goal:

Maintain or improve my position in the UKSAA E-League this year, I am currently sat in second place in the individual RBB table. I would also like to remain on the Plymouth Uni ‘A’ team for the remainder of season.

In addition to continuing to shoot indoors for the UKSAA I would like to qualify for the DCAS squad for next season, requiring qualifying scores on outdoor rounds.

Aspirational goal: Score 550 on a portsmouth round.

Mid Term Goal:

Experiment with different handle shapes to improve bow hand posture and stability.

Short term goals:

Improve my technique, in particular work on my loose and eliminate any beard plucking that is currently plaguing my shooting and regularly leads to serious pain and enforced breaks, as well as steadily thinning my beard.

While you are here check out Archery meditations.

Net Speed Monitor

I recently tried to download my favorite network monitoring tool, but found that the original author has stopped hosting it, and the various software hosting sites either have to much adware clamped on to the download or simply don’t work.

Here they are simple and easy:


net speed monitor (x64)
net speed monitor (x86)
Credit to the original author of course:

Florian Gilles

Arma 3 GUI settings

This list of variable should help with creating a consistent ui experience for the players, this is a list of element colours used by the arma 3 interface, an can be used to ensure that you custom dialogs match the players chosen style.


retrieve values using

    missionNamespace getVariable ["<variable name>", <default value>];

for example:

missionNamespace getVariable ["gui_bcg_rgb_a", 0.2];

Turning an Arduino Leonardo into a joystick.

This is an article that I found when I needed it, but it has since been removed. seeings as I found it helpful with my project I thought I would rehost it here.

original link Original URL (dead).
cached version

All credit goes to Connor of imaginaryindustries.com. I have patched and updated the USBAPI.h and HID.cpp and reuploaded those too.

Note: this was tested with arduino IDE 1.6.1.

I recently bought a Arduino Leonardo in the interest of updating the interface in an old arcade-style controller I occasionally use to play MAME games.

As such, I needed to figure out how to get the leonardo to properly act like a joystick.
Anyways, this is heavily based on drake250’s work, which is on the freetronics forum here. HelmPCB’s USB Joystick site was also a useful reference.
There is a useful list of HID descriptors here.
Also, the “HID Descriptor Tool” from usb.org is also very useful for seeing how HID descriptors are put together. Get it here.

In the end, I wound up rewriting most of the drake250’s HID descriptor myself, based on some of the USB.org docs, and the HID Descriptor Tool.

Anyways, here are my modified files you would need to turn your own leonardo into a joystick. These files support an 8-axis joystick, with two hat-switches, and 32 buttons.
If you want fewer buttons/axes/whatever, you can either just ignore the things you don’t need, or modify the HID descriptor yourself. As it is, for everything the HID descriptor currently specifies, it only needs 12 bytes per PC-update, so I’m not too worried about the extra axes causing issues or slowing things down.

The windows joystick info dialog only seems to be able to display 7 axes. I’m fairly sure the eighth axis there. However, since the built-in windows dialog works almost the time, I have not found any tools for looking at joystick readouts other then the built-in windows dialog. I mean, how may people have an 8-axis joystick anyways?
Also, the HID documents seem to also support the belief that the HID spec allows a maximum of 63 buttons. However, again, the windows tools for inspecting a joystick only support 32. You could add more quite easily, but you would have to test their functionality yourself.

Modified arduino files (replace the files in {arduino executable dir}hardwarearduinocoresarduinoUSB with these):


Also a version patched by another reader.
It’s contents:

JoyState_t joySt;		// Joystick state structure

void setup()
	pinMode(13, OUTPUT);

	joySt.xAxis = 0;
	joySt.yAxis = 0;
	joySt.zAxis = 0;
	joySt.xRotAxis = 0;
	joySt.yRotAxis = 0;
	joySt.zRotAxis = 0;
	joySt.throttle = 0;
	joySt.rudder = 0;
	joySt.hatSw1 = 0;
	joySt.hatSw2 = 0;
	joySt.buttons = 0;


The interesting thing here is JoyState_t, which is a struct that stores the state for all the joystick controls.

The struct is defined in USBAPI.h as such:

typedef struct JoyState 		// Pretty self explanitory. Simple state to store all the joystick parameters
	uint8_t		xAxis;
	uint8_t		yAxis;
	uint8_t		zAxis;

	uint8_t		xRotAxis;
	uint8_t		yRotAxis;
	uint8_t		zRotAxis;

	uint8_t		throttle;
	uint8_t		rudder;

	uint8_t		hatSw1;			// 0-7 correspond to 0-315° in 45° steps. 8 means the hat-switch is centered
	uint8_t		hatSw2;			// All other values are invalid

	uint32_t	buttons;		// 32 general buttons  (Each bit corresponds to a separate button)

} JoyState_t;

Continuing on with the contents of leoJoy.ino:

void loop()

	joySt.xAxis = random(255);
	joySt.yAxis = random(255);
	joySt.zAxis = random(255);
	joySt.xRotAxis = random(255);
	joySt.yRotAxis = random(255);
	joySt.zRotAxis = random(255);
	//joySt.throttle = random(255);
	joySt.rudder = random(255);


	joySt.buttons <<= 1;
	if (joySt.buttons == 0)
		joySt.buttons = 1;


	if (joySt.hatSw1 > 8)
		joySt.hatSw1 = 0;
	if (joySt.hatSw2 > 8)
		joySt.hatSw2 = 8;


	if (joySt.throttle > 127)
		digitalWrite(13, HIGH);
		digitalWrite(13, LOW);

	// Call Joystick.move


This section just generates random values and sets the analog axes to them. Each bit in buttons is also set in sequence, using bit-shifting.
It also steps through the different hat-switch positions. It steps hatSw1 fowards, and hatSw2 backwards. Lastly, the throttle axis it linearly ramped.

The last (and most important thing) here is


This is the function that actually sends the values in the joySt struct to the computer.

At this point, all that is needed to make a useable joystick is to replace the contents of loop() with something that actually reads hardware buttons.

Anyways, everything is under the arduino license (I think it’s GPL, but the only file I edited with a license actually looks to be BSD-ish. Anyways, do whatever, just don’t be an ass).

A32S: Arma 3 extension socket layer.

Hello there.
Time to share my latest creation. A sockets later for Arma. It allows for easy sharing of in game data with other processes and computers.
It is secure in that it does not allow any new connection end points to be defined on the fly via sqf I.e you have to configure all connection details prior to starting Arma. This should reduce the potential for abuse by game hackers and script kiddies.

The extension pretty easy to use and it uses killzonekids threading Arma extension to handle sending end returning data this means that each call is prefixed with either an “s” for send or an “r” for retrieve. I plan on releasing an sqf library to manage the socket life cycle and make sending and receiving data easier.
Each “s” call returns a ticket number. This ticket number should then be used to call “r:ticketnumber” until all data has been received. If the requested ticket is not ready it will return “WAIT”. Else if that ticket does not exist or had already been Retrieved it will return “EMPTY”.
There are two types of return: single part and multipart. Single part returns are prefixed with “0:” followed by the data and multipart with “1:totalPackets:currentPacket:” followed by the data this allows easy transfer of larger data structures, and a basic integrity check: whether all tickets have been recieved succesfully.


GitHub page


Altis Life Scripting Guide Pt 1 (Intro and File Structure)

Hi there, long time no see… Its been a while since the last post, I have been busy since working on loads of different projects (Not all of which are falling together like I had hoped). I have done a significant amount of work with the popular arma 3 mod and game mode Altis Life. I have found a distinct lack tutorials and guides on writing scripts and modifying it (other than specific script tutorials).

Altis Life has two main parts, the missions file/folder (many people chose not to compile the mission befre uploading it, this allows easier editing and modifying without having to redownload and upload the entire mission PBO. And the @life_server mod that has to run on the game server. This mainly handles things like multiplayer interactions such as bank transfers, and the interface to the database server.

Altis Life uses ExtDB extension to communicate with a SQL database, this means that player stats are persistent across server restarts. this is pretty much a black box in terms of scripting, so I recommend leaving it alone. Life uses a functions.h file to register all functions at mission start, this increases performance when scripts are run more than once as they are only compiled once.

I recently changed the way I Mod my server. I have decided to create my own file hierarchy next the the core one, this means it will be easier to port it over when the time comes to update to a new altis life version as fewer original core files have been modified.

Continue reading

DIY Lens

This is an excerpt from my Personal Investigation Project for Photography A Level

  1. Introduction

In this essay I will describe the process and outcomes as well as the reasons for building a camera lens. We live in a time where it’s possible to get digital camera setup for under £20, and a working quality film SLR (second hand) for under £10. On the other end of the spectrum some lenses for the epic red film cameras run at over £30,000. This begs the question: is it still possible to make a working lens from easily available parts. And produce quality prints? Well that depends on the definition of quality print. If to you a high quality print is a razor sharp, high contrast and undistorted image of a sporting event, then this is unlikely, as the technology required to make a lens that is sharp at wide apertures with little distortion is very precise. But it is certainly possible to get a very distinctive style of image with easily available lenses. Images taking with non-achromatic glass will result in chromatic aberrations (more on that later). And lenses that aren’t very precisely ground will not focus properly, and produce spherical aberration in images. The other simple method to make a lens is to use camera filters and adapters mounted in sequence onto a camera mount. This has the advantage of consisting of mostly achromatic lenses and will be securely and accurately mounted (via screw thread). It is very possible to create very high magnification images using this technique.

Continue reading