I game, I code, I break things
Technical, constructive, fun.

The Detection of Promiscuous Network Cards February 9, 2018

Back in 2010 I finally finished University. For me, University for some reason wasn’t a choice, but a last resort. After struggling to get through my GCSEs with a head cold, and then fumbling through college (or sixth form as it seems to be called now in the UK) I had a choice to make. I could either try to find a job, or go onto Job Seekers Allowance (JSA).

I got into Teesside University through the clearing process, and just as I had struggled to get into college by having to re-sit my GCSE Maths, I got onto the ladder of University with a Higher National Diploma (HND) in Computing, Software Development. When I finally got around to finishing it, some 4 years later than intended, I was determined to get a degree, only to be told by the University lecturers that they felt I wasn’t a capable C Programmer, even though the undergraduate degree module and course was aimed at people with no prior knowledge.

After Teesside University lost and re-found my grades, I got into another University where I rode the programming and networking train through my Bachelor of Science degree through to Masters of Science.

Sometimes you shouldn’t listen to lecturers, and often the path isn’t easy.

So in 2010 I was meant to publish my dissertation in an article in a journal. If I’m honest with myself, I had anxiety issues, and sometimes I still do. I never published the article and I was pretty burnt out from University. Suffering mostly from what I now recognise as ‘imposter syndrome’. My work was also downgraded because I didn’t discuss the mathematics behind my findings so well, you can perhaps see why I struggled and I blamed myself for that.

Here I’ve been looking through my old hard drives and files, and lo’ and behold I find my 2010 MSc Dissertation, “The Detection of Promiscuous Network Cards”.

You’ll likely have used similar techniques to this in tools such as Nessus, however perhaps not to this extent. There are some good findings in this report, and some details omitted, such as the discovery that the behaviour of promiscuous mode network adapters are changed if you’re running a VMWare Virtual Machine – I still have the stats and evidence of that one somewhere. I was advised not to release that information into my dissertation at the time, VMWare wouldn’t have been happy, apparently.

If you’re interested in some coding (it’s in there too), Z-Statistics of network packets, and also comparisons between Microsoft Windows, Linux and OSX and identifying them on an enterprise network, then you’re in for a treat.

Please do enjoy, finally ‘published’, my report on the Detection of Promiscuous Network Cards.

Comments Off on The Detection of Promiscuous Network Cards

3D Printing a Tool to find your Veins June 16, 2016

I find that the best projects start with a purpose, however what most people don’t tell you is that the purpose doesn’t always have to be prophetic, necessary or groundbreaking. For a lot of people starting a project can be as simple as the intention:

“I want to blink an LED”

When I joined Leeds Hackspace this was the first concept I was introduced to, along with the Arduino platform. This small and, to me, humble beginning has led me down a path which resulted in a change of job, an introduction into an entirely new community and a world of Technological interest and learning that has took me from an interest in computing and network programming to electronics, 3D printing, scanning and more.

My recent project started with a purpose, (if you’re squeamish you may want to clench, skip a sentence or look away) when you visit the doctor for a blood test and they struggle to find a vein, usually there’s one nurse that can manage it. You don’t expect to be told:

“Usually when it’s this difficult, we would go in via your neck, but we can’t justify it for this test”

To say that’s horrifying is an understatement, so the response that came naturally was obvious to me. I must find a solution to this problem. How on earth can I make my veins easier to find so that I can prevent this in future?

Almost coincidentally, in some occurrence reminiscent of the telephone or television being invented at the same time in two sides of the world, I found my solution quickly. After exhausting the thoughts of ultrasound, radiation or other forms of potentially lethal solutions I happened upon an instructables.

3D printing is only as simple and easy as the tool that you’re using, and I quickly discovered that the printer at Leeds Hackspace required some tweaking. Those who’re familiar with their own built 3D printer will be no stranger to this concept. After a number of nights tinkering with the settings and observing the temperatures, the ‘hot end’ required cooling and the heat bed required heating. I feel that I’ve written stranger sentences.

Finally, the basis of the device is completed. However, now I have to populate it with components! Well, a few online searches and ordering later and I would have the crux of the job. LEDs of the correct wavelength to be able to be absorbed by non-oxygenated blood but reflected by the rest of my skin. Soon, I’ll be able to see my own veins.


The hardest part, I soon discovered, was that this portable design for a vein finder was not designed with an internal layout in mind. After a few rather hand-warming shorts later I managed to acquire suitable heat-shrink and seal up the device appropriately. Yes, it runs on two double-A batteries at 1.5volts (rechargeables don’t quite have the voltage/current for a setup like this, but that could be adjusted).

In the space of, consolidated, a week, I have something to take to the doctors with me the next time I visit. Thanks to the wavelength (628nm) of the red LEDs it’s difficult to capture on a digital camera, but hopefully, they won’t be going at me via the neck.

Here are some bonus pictures of the finished product in action:

Comments Off on 3D Printing a Tool to find your Veins

Subscription or Pay as you Go Gaming ? May 14, 2014

Edit: Called it: http://www.gamesindustry.biz/articles/2014-07-29-ea-launching-xbox-one-subscription-service

Double called it: http://evilavatar.com/forums/showthread.php?p=2417450#post2417450

Technically there’s no difference, I would argue anyway.

A thought struck me while I was reading that Microsoft are altering their XBox Live Gold subscriptions. They’re making them more like the Sony Playstation. You can use applications which are practically out of their control (Netflix, etc.), that you’re already paying a subscription to use, for free so long as you have the app’s subscription.

Though alike Sony’s Playstation Plus; you’ll get access to free games per month as well. However, as we all should know, there’s no such thing as a free lunch and what you’re actually doing is paying for the games as part of your subscription in some way.

So what’s my point here?

Let’s use television as an example. In the UK you pay for a television license each year, technically this covers the cost of the BBC channels but thanks to UK law it also means reception of the television broadcasts. The BBC channels do not have advertising, it’s subsidised by the television license fee, but the other channels need advertising to stay afloat.

You’re paying a subscription for the channels; if you’re using Virgin Media or Sky then you’re paying a subscription again for your cable/satellite package to be able to use the technology to view the channels and whatever exclusives the respective provider has garnered for your viewing pleasure.

Alternatively you can just buy your series/show/etc. on media, which I would consider the pay as you go option but the analogy breaks down slightly in that the money doesn’t necessarily go to the television provider unless they happen to have published the media.

Music is also, partly, using a similar model. You can go out and buy your media or download it; but services such as Spotify charge you a monthly fee if you let them to access your music conveniently. Up until recently they put limits on what songs you could access, but music being a more versatile and easier to access and duplicate beast, this model fell down somewhat and so it’s more so the service that Spotify can charge for.

How does this relate to games?

Playstation Plus and Xbox Live Gold entice you to subscribe and by part of that they give you free games per month only if you’re a subscriber. That’s effectively games on subscription, the OnLive streaming service also provides you access to games if you pay a monthly sum and the library of which extends over time.

Alternatively you can pay as you go by going into the store and picking up your media or digitally downloading and paying online.

The PC, however, if we take Valve’s Steam service is predominantly Pay as you Go. I had a thought, though. Valve do something kinda sneaky, they have regular sales.

So say for example, you’re the type that only ever buys games when you really want them and you wait until they’re sufficiently reduced. You’re possibly starting to be out of the norm for Steam users as studies claim most games in a library aren’t played. Here we possibly hit the crux and the relation to sales. Valve take a slice of every sale on Steam and by providing regular sales which people will be tempted to buy into because of either the game or the price point, they are then paying into the subscription model per month by directly and regularly paying into Steam for the games.

Steam have sales weekly and I think there’re sufficient numbers of people to contribute to make this work. What this is also showing is that the Pay as you Go mentality is also actually a subscription type of basis when you’re paying into the same system, it’s just that the payments aren’t so frequent as monthly, but you’re ensuring that there is a base amount of money coming in that can be quantified while helping to top it up now and again with those people who’re on longer subscription (pay as you go) type of plans.

Now, if we consider that most peoples libraries aren’t played; this is similar to how television is monitored as to which channels and tv shows are popular and what’s being watched. Your game time is tracked and this means that your game provider can tell which ones are popular, which ones to invest in and also push forward or not depending on if they want them to attempt to gain traction or to analyse why they’re not.

I surmise the question arising, at least to myself, is that is anything going to change? are we going to see subscription only gaming?

I don’t think we are, what we will see is a system in place to allow for the tiers of subscription to services. You will still have your pay as you go (long term between payment subscribers), your faster, monthly subscribers and those who pay a premium for instant access.

However what I think we should see to help accommodate these metrics and tempt people into them more for support, is prices coming down and doing so regularly, even EA’s Origin buckled to having sales even though initially they said that they wouldn’t. Playing off the psychology of people that they’re getting a deal and value for money.

So subscription or pay as you go ?

If you’ve bought something more than once then you’re already subscribing, the only winning move is not to pay.

Comments Off on Subscription or Pay as you Go Gaming ?

Running Debian on the Atmel SAMA5D3 Board April 24, 2014

So when I wanted to build a version of Linux for the SAMA5D3 board that wasn’t Yocto or a demonstration image, then I started to struggle to find solutions.

Then I happened upon Robert Nelson’s guide on EEWiki. However, I found that it was not as straightforward as I had hoped. A few instructions were confusing and out of order with one another.

Here I present the steps I took to have Debian working on the SAMA5D3, some are the same, others are importantly different. I also have a .IMG of the SD Card I created available.

I set this up using a laptop with Debian Linux installed; I imagine it doesn’t matter which version of Linux you have; you could probably use Cygwin on windows.

You will need:

  • An SD card (I tend to work with at least a Class 6, 8gByte)
  • An Atmel SAMA5D3 board
  • A computer with Linux (unless you’re able to translate the steps to Windows, feel free) with an internet connection
  • A Serial debug cable
  • Open up a terminal, create a directory to work in and run the following commands to grab Linaro, the ARM cross compiler:

    wget -c https://releases.linaro.org/14.03/components/toolchain/binaries/gcc-linaro-arm-linux-gnueabihf-4.8-2014.03_linux.tar.xz
    tar xf gcc-linaro-arm-linux-gnueabihf-4.8-2014.03_linux.tar.xz
    export CC=`pwd`/gcc-linaro-arm-linux-gnueabihf-4.8-2014.03_linux/bin/arm-linux-gnueabihf-

    Then test the version of gcc:

    ${CC}gcc --version

    Which should output something like this:

    arm-linux-gnueabihf-gcc (crosstool-NG linaro-1.13.1-4.8-2014.03 - Linaro GCC 2014.03) 4.8.3 20140303 (prerelease)
    Copyright (C) 2013 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO

    Now we need to grab U-Boot and patch it for the SAMA5D3, you will need to have GIT installed on your distribution of Linux:

    git clone git://git.denx.de/u-boot.git
    cd u-boot/
    git checkout v2014.04 -b tmp
    wget -c https://raw.github.com/eewiki/u-boot-patches/master/v2014.04/0001-sama5d3_xplained-uEnv.txt-bootz-n-fixes.patch
    patch -p1 < 0001-sama5d3_xplained-uEnv.txt-bootz-n-fixes.patch make ARCH=arm CROSS_COMPILE=${CC} distclean make ARCH=arm CROSS_COMPILE=${CC} sama5d3_xplained_mmc_config make ARCH=arm CROSS_COMPILE=${CC}

    Now time to build a kernel for the board!

    git clone https://github.com/RobertCNelson/armv7_devel.git
    cd armv7_devel/

    As of the time of writing the current mainline kernel was v3.14:

    git checkout origin/v3.14.x-sama5-armv7 -b tmp

    After the kernel has compiled, you’re presented with a menu config screen where you can include or build additional modules. For example, you can incorporate GSPCA webcam support.

    Now, we want to acquire the root system files for Debian, which are handily available:

    wget -c https://rcn-ee.net/deb/minfs/wheezy/debian-7.4-minimal-armhf-2014-04-01.tar.xz
    tar x -f debian-7.4-minimal-armhf-2014-04-01.tar.xz

    Then insert your SDCard, either using a USB SDCard reader or one on your computer if you have one. I had to use a USB SDCard reader. In Linux we can type “dmesg” at a terminal to give us the /dev/ information for the device we’ve plugged in (for example mine’s /dev/sdb), in the following examples, we use mmcblk0, so just replace it for your relevant device id.

    In the following steps we will erase the SDCard and set it up with the relevant partitions:

    export DISK=/dev/mmcblk0
    sudo dd if=/dev/zero of=${DISK} bs=1M count=16

    sudo sfdisk --in-order --Linux --unit M ${DISK} < <-__EOF__ 1,48,0xE,* ,,,- __EOF__
    If the linux system you're using identifies the device as something similar to mmcblk0 then to format and mount, execute:

    sudo mkfs.vfat -F 16 ${DISK}p1 -n boot
    sudo mkfs.ext4 ${DISK}p2 -L rootfs

    sudo mkdir -p /media/boot/
    sudo mkdir -p /media/rootfs/

    sudo mount ${DISK}p1 /media/boot/
    sudo mount ${DISK}p2 /media/rootfs/

    Else if the device identifies itself as something similar to sdb then to format and mount, execute:

    sudo mkfs.vfat -F 16 ${DISK}1 -n boot
    sudo mkfs.ext4 ${DISK}2 -L rootfs

    sudo mkdir -p /media/boot/
    sudo mkdir -p /media/rootfs/

    sudo mount ${DISK}1 /media/boot/
    sudo mount ${DISK}2 /media/rootfs/

    Note: You may not need to mount the partitions as new(ish/er) distributions tend to automatically mount partitions upon detection/insertion/creation.

    Create a text file using your editor of choice (for the record I prefer vi …) called uEnv.txt and put in it the following, the sama board uses the ‘mmc’ naming convention:

    optargs=quiet init=/lib/systemd/systemd
    mmcroot=/dev/mmcblk0p2 ro
    mmcrootfstype=ext4 rootwait fixrtc

    Now we’ll extract and copy across all of the necessary files, the locations should all be relative to the initial directory we’ve been working in and you created, they should all be executed as root/sudo:

    sudo cp -v ./u-boot/spl/u-boot-spl.bin /media/boot/BOOT.BIN
    sudo cp -v ./u-boot/u-boot.img /media/boot/

    sudo cp -v ./uEnv.txt /media/boot/

    sudo tar -xvp --same-owner --numeric-owner -f ./debian-0.4-minimal-armhf-2014-04-01/armhf-rootfs-debian-wheezy.tar -C /media/rootfs

    sudo cp -v ./armv7_devel/deploy/3.14.0-sama5-armv7-r9.zImage /media/boot/zImage

    sudo mkdir -p /media/boot/dtbs/
    sudo tar xvo -f 3.14.0-sama5-armv7-r9-dtbs.tar.gz -C /media/boot/dtbs

    sudo tar xv -f 3.14.0-sama5-armv7-r9-modules.tar.gz -C /media/rootfs

    And to setup the partition mounting (if you don’t like vi, replace with nano, emacs or whatever your preferred editor is):

    sudo vi /media/rootfs/etc/fstab

    Insert into it (in vi, press ‘i’ on your keyboard, then type it in, or copy/paste it into your terminal window):

    /dev/mmcblk0p2 / auto errors=remount-ro 0 1
    /dev/mmcblk0p1 /boot/uboot auto defaults 0 2

    Close and save the file (in vi, press ESC then type in :x and hit enter, which saves and quits).

    Then setup the network interfaces:

    sudo vi /media/rootfs/etc/network/interfaces

    With the following at the end of the file (you can use your cursor keys to navigate vi until you get to where you want to insert):

    allow-hotplug eth0
    iface eth0 inet dhcp

    allow-hotplug eth1
    iface eth1 inet dhcp

    And setup our serial line:

    sudo vi /media/rootfs/etc/inittab

    With the following at the end of the file:

    T0:23:respawn:/sbin/getty -L ttyS0 115200 vt102

    Now we want to unmount our SD Card, so close down any windows/open files that’re on the card and run the following from a terminal:

    sudo umount /media/boot
    sudo umount /media/rootfs

    Our SD Card should be setup! The only thing to do now, is remove the jumper at JP5 on the SAMA5D3 to ensure it’ll boot from the SD Card, connect a serial cable to the debug header J23 so we can see what it’s doing, with the settings in minicom/Putty/your terminal editor of choice:

    Baud: 115200
    Data Bits: 8
    Stop Bits: 1
    Parity: None
    Flow Control: None

    Then connect the USB cable to power the board, then press the reset button for good measure and watch it boot up!

    Login details:

    User: root
    Pass: root

    User: debian
    Pass: temppwd

    When I created this image from scratch initially I encountered a number of problems. The main part is that the SD Card needs to be setup as root, with the files copied over as root. This is because of the permission level required to read the SD Card when the SAMA5D3 board loads up.

    The other problem I encountered was the settings for uEnv were confusing me on the eewiki guide.

    Something that might trip up anyone following this guide word for word in future is if the kernel version increases, this will need to be altered in the filenames in the guide above. Failing that, the SD Card img I have prepared should help:

    Debian-SAMA5D3-140409.zip (543mB)
    Debian-SAMA5D3-140409.md5 (211b)

    Comments Off on Running Debian on the Atmel SAMA5D3 Board

    SurfaceCoverTelemetry January 29, 2014

    From what I can gather. If you have a Microsoft Surface Pro 2 you’re going to have a hard time.

    When you update the firmware/perform a reset on the system the first problem you encounter is that your WiFi stops working. Granted this may not happen to everyone. So once you’ve updated that driver, the next flaw you have is that you’ve got an ‘Unknown Device‘ in your device manager.

    This problem is documented, complained about, etc. What I haven’t found, is a direct driver link. Everyone assumes that it’s in the driver pack you download from Microsoft.

    I haven’t seen it.

    So here you go. Take it. I pulled this from a Microsoft Surface Pro 2 tablet before it was wiped/reset/updated.

    surfacecovertelemetry.inf_amd64_636da5188c4bd231.zip 78kB

    Then maybe you want to rebuild your recovery partition.

    Comments Off on SurfaceCoverTelemetry

    Skype (in)Security September 9, 2013

    It had been a long time since there was a security breach on any of my accounts, but it’s now the in-thing for cyber security and it appears to be the Russians or at least someone pretending to be that is leading the charge.

    A number of months back my Electronic Arts Origin account was hijacked, I suspect this was through something on the Origin website that just allowed a bypass into the account as I received no notifications aside from when my e-mail address was changed on the account. The bot or person then changed all the details and settings into Russian and did nothing else aside from remove my friends from the friends list. At that time I had very few games on there and no associated details, so I didn’t mind.

    Before that happened the only security breach I had was in the days of using ICQ regularly when I was foolish to have the same password for it as I had set for a forum. I learnt then and kept everything separate since.

    So wonder be to my surprise when I’m notified that my e-mail address for my Skype account was changed.

    “Here we go again”

    I’ve used this account for a long time, I haven’t used it on an actual computer for years and it resides on a Skype phone, a DualPhone 3088 now a 4088. Only I use the account and I don’t login to a computer for it, why would I need to? It has an auto renewing, auto filling skype subscription. It solved itself.

    This is where it goes sour of course. I had it linked with PayPal. No sooner as I discovered my password had changed on the account and that the e-mail was changed that I checked my PayPal balance and, low, the “Russian” had pulled £90+ in Skype credit, but only onto the phone. Why? I’m not sure, there was a perfectly good subscription there.

    So I attempt to recover from this; Skype do not have a phone number you can contact them on. They only have a ‘live chat’ for ‘premium users’, was I a premium user? I have no idea. So I managed to get through to a person whose first language was definitely not English (was it Russian?) who then proceeded to not grasp that the e-mail address on my account had changed and so just resetting my password wasn’t going to cut it.

    At this point, might I add, that Skype’s recovery process entirely relies upon the thought that you only ever have one Skype account and that you’re able to access said account to report any problems in the trouble-shooting process before you even get through to an advisor. So I wasn’t a ‘premium user’ on the Skype account I could actually log in with.

    While clarifying which account I couldn’t access and trying to get over the language barrier the person in control of my account had spent a further £20 bringing the total to over £100. I’m now thinking that the Russians aren’t entirely bright.

    I answer the security questions and attempt to have my account reset, but all the while the advisor can’t confirm to me the e-mail address they’ve set it to, because of “security” and they can’t escalate the request to someone else (or won’t, I’m not sure). So I’m getting pretty frustrated and my “tokens have exceeded the amount given for that e-mail address” to be able to reset my password.

    I’m forced to resolve to “contact us again in 24 hours, until then the account is suspended”. My cries of “which account and which e-mail address?” cannot be confirmed, for security reasons.

    So, I’m sat here quite fraught with concern and so I decide to contact PayPal. Once logged into my account I find the contact details and there’s a number I can actually call (real people ahoy!) with a verification number so I don’t have to mess about. The menu system uses voice recognition so I don’t have to mess about with the numbers and I find that ‘claims and fraud’ line is only open until 8.30pm – well by now it’s quite late. Crap. So “Okay, let’s think about this another way” I figure. My Skype account was ‘linked’ to PayPal, surely they can severe the link?

    Yes. This was the key, I got through to a nice pleasant person who was actually sympathetic, said they were going to severe the link now and push forward to Skype to refund my money. Though, sadly, they stated they couldn’t do a great deal because it was “completed” already. Still, I’m satisfied that the little Russian can’t take my funds any more.

    A few hours pass and I get an e-mail through, it’s the password reset token. In Russian, then, in English. The delay only confirms to me that they’re having some great struggle. I can finally get into my account and it’s pre-loaded with £100+ and nothing else appears to be touched and no apparent calls made.

    So I’m not entirely sure how they managed to get into my account as it wasn’t a compromise on my computer, I’m pretty certain. Of course my e-mail account is a suspect but it shows no sign of foul access and I go between various phases of obscure methods of security with it. However, while it was nice at the time to have my Skype automatically renew the Skype Pro subscription you can’t get any longer; I’m certainly going to revise the best practices.

    Computing is still in its infancy and this was one, far too easy way to access my bank funds indirectly.

    Maybe I can call my family in Australia?

    Comments Off on Skype (in)Security
    Categories: security

    Arduino IDE on Windows with Minimus32 Profile June 5, 2013

    Some time ago I typed up an explanation and presented a download of a compressed file for the Arduino IDE on Windows which included libraries for the Minimus32.

    The zip file was/is unnecessarily bulky and has folders in places where they don’t need to be. So I decided to create a script.

    The script downloads the Arduino IDE, of a version which you specify from the Arduino Website along with PBrook’s Minimus32 and OneWire components from his GitHub page and also the pre-compiled version 4.7.0 of AVR-GCC for windows (if you want a different version then feel free to update and compile from the source code yourself but for now it’s supplied by yours truly).

    It then puts it all in a folder called ‘ide’ and it should copy/rename/move everything in its correct place within a sub-folder. The drivers still have to be manually installed.

    There are some thoughts on what I’ve done:

    1. Alter the script so that it scrapes the Arduino site for the latest stable revision number.
    2. Have the drivers self-signed so that the don’t prompt with an error message. This can’t be done as self signing only works for the system it is signed upon.
    3. Use a command line tool to inject the drivers into Windows / auto install them.
    4. Perform error checking in the script. I have since done this to at least check that the files exist, but nothing more.

    The over-all benefit of this, I feel, is that it’s not waiting for me to do a ‘snapshot’ and anyone can now check the latest version (if they modify the script a bit), type it into the script and when it’s finished downloading it should just work nicely without having to do anything (much) extra.

    So once you’ve downloaded it. Extract it to wherever you have write access to, then just double-click or run install.cmd from a command prompt.

    You shouldn’t need to, but run it as Administrator if you really get into trouble.

    I mainly wrote this for myself, because I’m lazy. So if it does help anyone else, great. I am also aware it could be implemented a lot better, so go ahead.

    Download: Arduino IDE Download Script for Windows with AVR-GCC 4.7.0 + Paul’s Minimus32 Profile & Internal PullUp OneWire Library (2.98mB)

    Comments Off on Arduino IDE on Windows with Minimus32 Profile

    Arduino IDE on Windows June 3, 2013

    If I have learnt anything from software development over the years, it’s that programming on Windows is a mixed bag. Even more so when it comes to the development of hardware, as I have learnt more recently since joining the Leeds Hackspace.

    The Arduino, a rather nice prototyping board, does have an Integrated Development Environment (IDE) for windows, but when you try to do that little bit more with it, such as code for an unorthodox piece of hardware it can get a bit trickier. Namely, when certain chips aren’t supported.

    The Arduino IDE (AIDE) is actually a mixture of smaller components. A Java GUI, the AVR-GCC compiler, source code in C++ and profiles for the various Arduino hardware. A problem mainly arises when you want to use a new device, that is perhaps acting like an Arduino but is using a newer chip on the board than is supported by the archaic AVR-GCC compiler that is bundled with the AIDE.

    I’ve been working on a script which pulls down the latest AIDE and incorporates support for, in particular, the minimus32 (using the ATMega32u) but it isn’t exactly user friendly (yet). Until that appears (though if you want to try it out, get in touch), I have happened across a rebuild of the Arduino IDE which is a bit nicer and, perhaps with suggestions for including decent updates such as a recompiled AVR-GCC, it could potentially be a better solution.

    Comments Off on Arduino IDE on Windows

    OpenWRT on an MR3020 – ish January 25, 2013

    I bought a portable 9000mAh battery pack – which gives out 5 to 5.5v at 2200 mA. Why? Well the intention here is to power something which doesn’t take much, well, to power, for a very long time. This is where the MR3020 steps in.

    By default its intention as a device is to share, over 2.4Ghz WiFi (I think, I’m not sure if it does 5Ghz, I haven’t checked, but it does do 802.11bgn) a 3g or 3.5g mobile connection (from USB). It can also share this over your standard LAN Ethernet, or it can share the Ethernet over the WiFi.. I think you get the idea?

    Well there’s this firmware called OpenWRT which lets me do what I want with it, effectively turning it into a small, linux-esque computer with its Atheros processor at the core.

    So my intention is to plug in a GPS adapter, USB storage pen-drive, configure the device over Ethernet and use that 9000mAh battery pack to power it. I didn’t mention? The MR3020 is powered by a mini-usb port. Wonderful.

    However, this project hasn’t been without, shall we say, trouble. You see, when you flash a firmware (its Operating System, like Windows or Linux) to the device it is then restricted to those files and programs in that firmware (short of some configuration files) and to expand upon it further you need to to install them. This can be done through ‘opkg’ which is OpenWRT’s package manager.

    Unfortunately you’ve just used up the majority of the space on the device flashing the firmware, so if you’re fortunate you can add the packages to allow you to use a USB storage pendrive. If not, it’s time to make your own tasty good make feel nice firmware.

    Which is what I tried to do. This did not go well. This is because the core of the firmware, at the base of it all is the kernel which interfaces between the software and the hardware. I had foolishly filled it with too much and it couldn’t load it. I had effectively ‘bricked‘ my mini router. That is to say, it no longer functioned as it should and it was stuck in a loop, rebooting.

    A bit of soldering, the assistance of Nav from the Leeds Hackspace lending me a serial cable later, I was back on track with a working device. What I had to do, was transfer a new firmware to the device, using only the bootloader and TFTP (over Ethernet). This worked, to a point that I could now get into the failsafe mode of OpenWRT rather than just the bootloader. Where I then, more easily, transferred a better, larger, firmware to it and ensured that the configurations were reset to default.

    Now I’m going to try building a firmware again, or maybe I’ll find one suitable and upgrade it. I had looked at PirateBox but that was mainly for sharing files, and MiniPwner – but the problems encountered with that (MiniPwner) are (by default) its kernel is out of date for the latest packages (easily fixed, I found, by using an upgrade firmware from OpenWRT) and a bit more tinkering to get it just right.

    So back to trying to get the USB pen-drive and GPS to work at the same time (hacking in a USB hub) along with relocating the packages to the USB pen-drive.

    Then, hopefully, I can do what I planned to. Triangulate and map WiFi access points on a Google Maps style layout referenced to GPS layout. Or something similar, maybe I’ll introduce BlueTooth or anything else I can pick up with a sensor. Yes, I might just be able to attach in a Minimus32.

    Comments Off on OpenWRT on an MR3020 – ish

    Pottering Around with a Raining Sound January 17, 2013

    The addition this week was of a bit of animation to bring life to the character, this isn’t intended to be the end movement – just amusing animation. I might split this off as a separate game itself because I was in stitches.

    The perhaps less noticeable part is that there’s now audio for the rain which there wasn’t before. This isn’t even a recording of rain, it’s the sound of oil/water boiling/bubbling away with a bit of added effects and hissing removed thanks to Audacity.

    We’re getting there, slowly. Part of the experimentation is shaping the game as much as the original concept is.

    1 Comment on Pottering Around with a Raining Sound