Monday, 28 October 2013

RFnode PlayerZ update2

Much has changed since my last update.I now have Zombies and Taggers working and the features list is growing by the day. Even have IFF working.
For more realtime updates check out the photos here

Thursday, 19 September 2013

RFnode PlayerZ update

More progress.

I picked up some Playstation Sharpshooter controllers and converted them with some of the old parts I had. The units are using the older RFnodeB1 board which was not designed for this but still works well. I am due to receive my PlayerZ boards in about 2 weeks and enough parts to make at least 10 zombies(with sound modules) 

I now have a total of 5 working taggers. The Sony Sharpshoot case works well as it has 8 buttons and plenty of space (and is cheap). Currently I have all buttons connected and working but not all assigned to functions yet.

Head sensor is also working using the RFnodeB1 board.

The head unit runs the full version of my PlayerZ code so is the only piece of hardware you need to play (but you might want something to shoot with too). The final version will have more IR LEDs on the front for doing Zombie damage, currently I have just one for testing and using it combined with wireless for Zombie damage.

I am also waiting for the sound modules and speakers so they are missing from the above. I have coded using both a sound module(WTV020) that plays WAV files from the microSD card as well as using a PC speaker style buzzer.

I have also started a Facebook page for my projects, come like me.

Tuesday, 10 September 2013

RFnode PlayerZ (MilesTag based LaserTag)

A few months ago I was introduced to Laser skirmish and I am not talking about the little kids game or walking around with a flashing vest and a sci-fi pistol that has a range of a few meters but taggers of a realistic look/weight/range and sound(Tech Assault). Since then I became a little hooked and in wanting to bring more to the game I started working on a new project. With prototypes on my desk and purpose build boards designed by me on there way I can hardly contain my excitement.


The RFnode playerZ board is an Arduino based board designed for laser tag. The software is based off the Miles Tag protocol version 1 so is compatible with other systems based that are also using this protocol.
Each board contains a radio that is used to realtime scoring, proximity functions, wireless configuring and node grouping (a number of nodes can make up a player).
The board is designed to be ether a Zombie headset to be worn by a player or as the internals of the Laser tagger.


·         Arduino core (powered by an ATmega328)
·         Sound support (uses a WTV020 sound module with support of upto 512 different sound files stored on a microSD card)
·         Radio support (uses the nRF24l01+ radios with signal range upto 1km*)
·         Programmable radio output: radio can be set to only send short range signals that are only received by other nodes within a few meters.
·         Low cost (our target cost is that you are up and playing for less than $100)
·         1Wire/iButton support (for ingame pickups)
·         i2c support
·         TTL UART support (used for debugging and supports commands)
·         6 button input (more can be added)
·         56Khz IR emission and reception (depending upon lens setup has a range of over 200m)
·         Lithium battery with micro USB charger built in.

Zombie headset mode

Each headset has 2 IR leds for emitting short range Zombie damage from the Zombies head to any other player within range. Zombie damage is also transmitted via low powered RF to other players within 2-3 meters of the zombies.
Zombies have IR hit sensors positioned on the front and back of the head.

Tagger mode

The board (node) can also be used as the internals of a player’s tagger. The player can choose to have a head sensor wired to the tagger (Currently how most laser tag is played) or the node can be grouped to a player wearing a Zombie headset.
Can be added to Nerf guns in a none destructive way (clips to Nerf rails).

Node Player grouping

The MilesTag protocol only supports 256 unique players (8 teams of 64 players). For us to be compatible with MilesTag and compatible systems this affects us too but it only affects the IR data, our radio code supports 65025 unique nodes.
We have designed it so any number of nodes can be assigned to a player, this means that if we wanted too we can assign 1000 taggers to one player or 1000 headsets to one player. If you want to have multiple taggers per game we support it

Radio Proximity

We have radios with programmable output so we can control the range to add proximity based game elements. We use this to do Zombie damage if you are within 2-3 meters of a zombie but we use this also for a number of other features like Capture points, if you are with an area with a capture node you can capture it. We also support the sending and receiving of powerups from nodes, if you want to be a medic you can but watch out for the  

In Game PickUps

As the boards support iButtons we can use these for in game pickups. This could be used for items like weapon upgrades, health packs or game objectives hidden around the playing field. We also support wireless Pickups too.  

Backend Server Support

Our nodes like to talk to our server and our server can talk back. Not only do we use this for real time scoring but we can also use this to send you power ups mid game. Don’t like your taggers gun profile? Just use your smartphone or a connected device to select a new one and we will update your tagger with a new one. Want to know where you team is? We can tell you which nodes they are near on a map. Want to know your stats mid game? we can give you  more data then you poke sharp stick at.  

One of the new designs compared with RFnodeB1 board used in current prototypes.

My Modded Nerf gun with attached board and lens. Nerf gun is dual purpose can be used for lasertag and can still fire Nerf.

Thursday, 2 May 2013

Windows Commandline & Batch file tricks Part 1

Here are some little useful Windows command line tricks that could be used in batch files. 

This example will loop only a set number of times, Also useful for counting the number of times a loop has run.

@echo off

 set counter=1

 echo looped %counter% times
 echo do something
 if %counter% == 10 goto end 

 set /a counter=%counter% +1
goto loop

 echo Loop ran %counter% times

Filename friendly date, Sometimes you want to use the current date to generate a filename so can't use %date% as you normally get something like "Thu 16/05/2013". An easy way to reformat it to YYYYMMDD is as below.   

@echo off
 set today=%date:~10,4%%date:~7,2%%date:~4,2%
 echo %today%

 echo and a sample file
 echo %date% %time% >>%today%.log

Detect if Windows 32/64 bit. Some times you need to know if the script is running on a 32 bit or 64 bit version of Windows from the commandline. This allows the scripts to do different things depending upon the version of Windows.(Like use the "C:\Program Files (x86)\"path instead of "C:\Program Files\") 

@echo off
if defined ProgramFiles(x86) (
 echo Is 64 bit version of windows
) else (
 echo Is 32 bit version of windows

Monday, 4 February 2013

Gardening for geeks Part 1


I like many like to grow things, normally herb and a few small fruit shrubs but the problem I run into is that 

Outside It can be too hostile for some plants. They have to deal with Melbourne weather (-5C to 45C, hot & dry) and a larger array of insects and animals that will eat anything.

Inside It can be too dark for most plants and the amount of space near windows could be limiting or none existent  (I commonly see dying plants on people office desks due to lack of light or care) 


Outside I could put together a greenhouse but this does not really sound like one of my projects, I might have to do this for winter to protect some of my small fruit shrubs from the winter frost/wind.

Inside I could setup some grow lights but I am not keen of large Kilowatt lighting commonly used with indoor hydroponics systems. Instead I would like something a lot smaller/cheaper/power efficient. I know it should be possible to use LEDs which are small, cheap and power efficient. I have read about experiments that NASA was doing with growing with red/blue LEDS (most plants reflect green not absorbing it hence they look green) so I thought I would give it a try.    


Is to see if I can grow under artificial light using only a small amount of power creating a smart USB powered plant for my office desk.  

I will try and grow lettuce using red and blue LEDs as the light source, To figure out which light they like more I will have red LEDs on one side and blue on the other side as plants normally grow towards the light.

To mount the LEDs I will just use breadboards so I can easily change the LEDs to try other colors. I would be interested to know how well you could grow plants under light like IR which is not visible to humans (for those that don't want a glowing plant on their desk) 

Adding smarts, I would not mind making the grow environment completely controllable. So this would include using an Arduino to control the lighting, a water pump and monitor some sensors (like soil moisture, ambient light). Adding a internet connection and web interface is also on the list of features (maybe even a IP camera too)


  • Can you grow lettuce upside down with the lights under it? I think it would just look cool on you office desk to see a plant happily growing upside down. It would look outright trippy to see you growing upside down from your ceiling.
  • How low can the power consumption go? 
  • Which light source is best (IR, Red, Blur, UV)?
  • If I was on a space ship how much space/power would I need to feed my self? but as I am not a fan of eating only lettuce I might have to do something on the lines of the bellow
  • Would it be better to do it underwater?
    Algae/water plants>Fish>Me

Monday, 29 October 2012

Garden Gnome update

I presented my Gnome project the other night at a meetup and he gathered enough interest to win me a $500 gift voucher :). Seems people like the idea of a house/yard full of little wireless nodes crammed with sensors and RGB leds with the ability to respond to events. 

I I do like the idea of having pot plants change color if I get an email (different plant per email account) or a yard that glows red if someone is detected in there at night.

Monday, 22 October 2012

Projects of interest

Hi Peoples,

I have 3 projects that I am starting on but want to gauge interest levels. 
All 3 projects will be the basses for other bigger projects.
Projects 2 & 3 are the easiest as I have already done them before in concept.

Project 1 has the most potential in my mind but requires me to work with an overseas vendor with less control over the project. 

Project 1, Arduino Wifi access point shield/Cloud connected Arduino.
Currently you can get Wifi shields and network shields for Arduinos but the Arduino lacks the resources to use the full potential of the these, this includes full featured web pages and full network stack. 

In looking for ways to bridge my RFnodes to the internet I have played around with openWRT and using Arduino to control pocket sized Wifi routers. I have come across small Wifi device that can be used as a accesspoint or in client mode, has 1mb of web space and has a TTL UART for connecting serial devices like an Arduino. The serial port can be used to pass data back to a web service allowing you to have a cloud connected Arduino project. As it only uses the TTL RX/TX pins you have all you other pins free for you project and only requires you to include code if you want to configure the Wifi shield.
You can create web pages in the shield that would allow you to send data to Arduino project and has support for a camera, so you can even create a wifi controlled pan/tilt camera.
Bridge Arduino projects to the internet via Wifi.
Make it easier for internet controlled Arduino projects with web interfaces and support web services/cloud services.

802.11BG router with support for AP/STA mode
1MB user space for web pages and scripts

Still scoping

Project 2, Arduino with H-bridge and Bluetooth

I am looking to make a small PCB with an Atmega88/168/328 with support for the Arduino IDE. The design will be based around the RFnode but without the radio and a 2 channel H-bridge and TTL Bluetooth UART module in its place.

The board will support 2 bidirectional motors and with Bluetooth can be paired and controlled by almost any smartphone.

So making something like a little robot tank that is controlled by your phone will be an trivial task.

Board will be programmed via USB using the V-USB, This also supports making the board act as a HID keyboard/mouse/...

Create a low cost small Bluetooth Arduino with onboard H-Bridge.
By creating a
standard smartphone compatible Bluetooth robot board we might get some more app developers onboard.

+ V-USB Arduino (
+ 2 channel H-Bridge with support for 2 motors
+ Bluetooth UART module

+ Cost to assemble may make this non-economical unless can get numbers

Project 3, Low cost Atmega88 based Arduino 

There have been a few Attiny boards starting to popup that support the Arduino IDE. These boards use the Attiny instead of the Atmega as they are cheaper but do not have all the features of an Atmega. Not only do they not have as much Ram/Flash/Eprom but are also lacking support for some Arduino functions.

An Atmega88 is compatible with a Atmega168/328 and so the Arduino IDE but almost the same price as the Attiny. It should be possible to create a low cost Adruino clone for less then $5 worth of parts. 

Low cost Atmega88 Arduino board for less then $5

+ Atmega88(6k application space)
+ V-USB Arduino (

+ SMD parts (to hard for most people to solder)
+ Cost to assemble may make this non-economical and more expensive then a full feature Arduino unless can get done in large numbers

Thursday, 11 October 2012

A smarter garden Gnome

A smarter garden Gnome.

Still a work in progress but meet one of my garden gnomes. 

I still need to print him a better case to mount the soil moisture pins better and make him more presentable in general.  

At his heart he is powered by one of my RFnodes so he is wireless and has an array of sensors that he reports on back to the network. He currently reports back the light levels, soil moisture, temperature, humidity and having a RGB led that make him glow any color I can have him signal the plants status or as being network I can use the RGB led to make him (and his friends) signal anything the network want him to.

I have some small PIR motion sensors I also want to mount as his nose and print a case that can house the bigger batteries required by the RGB led.

Thursday, 27 September 2012

Recover Arduino Sketch

How to recover an Arduino sketch from after a program crash or system crash.

I was working on some code today then after making a heap of code changes and uploading to boards I walked away from my computer without saving my Sketch. 

Due to some other things I was doing at the time Windows crashed and I had not saved my code yet. After a reboot I confirmed that my code was gone but I did not like the idea of that so went digging for it. I know the Hex file is compiled to the %temp% folder so the Sketch must be there too.

So Start>Run>%temp%

which took me to C:\Users\remote\AppData\Local\Temp\

Then I sorted the folders by date modified and then found this one was timestamped about the same time I last compiled my code.

Opening the folder I see a few C++ files and one of them had the same name as my sketch but with a C++ extension. It was my Aduino Sketch it did have a few things added to it to make it C++ compatible (void's) but is was the code I thought I had lost. 

Tuesday, 25 September 2012

Getting ready for more Rapman upgrades

I have received more parts so soon it will be time to try some more 3D printer mods.

Besides more screws, bolts, washers, bearings and plastic I received a few more parts to use.

  • 30mm 12volt fans. One problem I have with my Rapman is that the extruder overheats and jams when printing sometimes. To overcome this issue I upgraded the part cooling fan and ducted it to cool the extruder more then the part and added a 80mm fan to the side of the printer to help cool everything. This mostly works but effect the head heat up time but helps with  part cooling(on one side). With the smaller fans installed to only the parts that need them I should be able to control the thermals better and be able to get better print quality.
  • LEDs. I am going to add some better lighting around the printhead to help the camera (as I normally leave the room lights off).
  • PTFE TEFLON Tubing. Having a 470gram stepper motor and all the extra supports for it on a printhead seems a little silly to me. I thought that a goal would be to reduce the printheads mass so you don't have to counter/fight as much inertia. So if I mount the fillament feed away from the printhead I and feed the fillament to the printhead via the PTFE tube I should be able to have a printhead that is less then 30% it's current mass. This will allow me to improve the movement speeds of the printhead while reducing the power required to move it and reduce the strain/wobble from the printhead's inertia.
  • New hotend. The hotend on the Rapman comes sealed in fire cement, on my printhead it is crumbling and leaving what looks like sand everywhere.  It is about time for me to replace. I have resurrected the old printhead a few time already but as the resurrections are becoming more involved and makeshift I am expecting it to soon hit a point where I just need to let it die in peace. After it dies I might use it to recycle my waste PLA back into fillament.       
It is now getting to a point where I can almost make a whole new printer, so that might be were this project ends up. I think it should be easy to make a lowcost PLA 3D printer that is a fraction of the price of the current 3D printers available. By limiting it to PLA and dropping the printhead mass you should be able to lower the stepper motor size and power requirement which would allow you to use smaller motors and motor drivers so you could use lower cost of everything leaving you with a smaller cheaper 3D printer.