Friday, 12 May 2017

Arduino based logic analyzer - HD44780 1602 LCD sniffer

Arduino based logic analyzer - HD44780 1602 LCD sniffer

I tried to test if possible to use an Arduino to sniff data sent to a HD44780 16x2LCD running in 4 bit
mode. Did not work as an Atmega328 @16Mhz was not fast enough to sniff the data without missing data.  
I am posting the code publicly as could be helpful for others for direct IO port reading (multiple pins) or basic circular data buffering. The code might still work for HD44780 sniffing if the target is using a slower data transfer rate or if a faster clock speed is used on the Arduino. The code can also be used as a basic 6bit logic analyzer.
I tried to keep the code as lean as possible and offload as much of the decoding to a seconds processor but still was not able to read the pins fast enough to keep up with the data stream to the LCD.
The code was designed for a atmega328 based Arduino but may work with other atmel based boards.
In the code I make use of a 256 byte circular data buffer, this was coded with speed in mind so is very simple. If the buffer fills with over 256 bytes the buffer will suffer data loss.

You can access the code here:

Saturday, 23 April 2016

Bearstrike update: PCBs

Sorry have been neglecting this blog and posting projects to Bearocratic facebook directly. 
Time for another long overdue update. 

Tagger boards (Gun board). 
The current tagger board is stable, some improvements over the past generations and issues resolved. +5volt step up circuit for better IR range when running off a single cell lipo. 
+USB charging onboard. 
+New formfactor 
+More compact design for more compact taggers. 
+There also has been an overhaul of the user interface to not overwhelm players with too much information. heap of code changes to makes the This version had a issues with connectors covering some of the pin/connector labeling (now fixed)
 No automatic alt text available.No automatic alt text available.

Not much has changed here for a few months, still needs a case but is much more compact than previous generation. still wireless and can be shot. 
Has USB charging onboard. No automatic alt text available.

Still wireless and still small.
Current version is has USB charging onboard. 
Now instead of two TSOP34856 on the front of the headsensor there is the newer and improved TSOP75356W IR receivers as well as the addition of extra sensors for the side of player’s heads for improved hit detection from all angles. As the headsensor is now much flatter the case design will be much simpler. 
Image may contain: indoorNo automatic alt text available.Image may contain: indoor

LED board 
This board is what is mounted in the tagger behind the lens, this version uses SMD LEDs which allow the muzzle flash to be much more closely grouped with the IR beam. The IR LED is also a OSRAM SFH 4545 that provides better beam angle and spread over the common Vishay TSAL6100. 
The board also has a jumper and optional resistor pads for if you wanted to use this board in taggers using other systems. Image may contain: indoorImage may contain: 3 people

Universal IR Targets. 
These are designed to be low cost simple IR lasertag targets that should work with most systems. The target is semi dumb in the terms that it does not decode the IR data packet, it reacts based off if it received an IR data packets size bigger than the minimum size of most Lasertag systems or even your TV remote while filtering out most interference sources. 
When hit the target flashed, beeps and vibrates so if you attach some to yourself you can tell which direction you were shot from (this overcomes one of the shortcomings that Lasertag has when compared with airsoft or other systems that use projectiles) 

The Arduino source code is free and can be accessed from Kits will be available from the web store soon which will contain everything you need to assemble one. The board is designed to be as simple as possible with the lowest number of parts and easy to solder. 
The board also has the future option of i2c for if you wanted to create a network of i2c connected sensors or connect the sensors via i2c to other devices.

No automatic alt text available.No automatic alt text available.

Thursday, 7 April 2016

One time use USB

One time use USB
I was given a requirement for a single use USB drive that can be used to update the firmware of a single machine then would disable to limit the distribution of the file. The drive should also be not readable on desktop computers.   

Not being being able to find a single use USB drive a manufacturer in China able to offer me drives with SDK I decided I would make it myself

The drive is based around the ATmega32u4 running LUFA, now the USB on the 32u4 is not the fastest but as I only need to deliver a 1MB file it does not need to be the fastest so a 32u4 is one of the simplest processors I could get away with.

The drive will disable once the firmware file has been completely read by the target machine. There is also logic to disable the drive if any other files are read, this means if the drive is connected to a PC or MAC and it tries to read autorun.inf or any thumbnails the drive will instantly disable reading of the drive.

The unit can also act as a Arduino with the right bootloader installed and with a SDcard socket onboard could be useful as generic USB powered datalogger.

Wednesday, 20 January 2016

Turtle watches

Turtle watches
No automatic alt text available.
Something I have been building in my free time over Xmas for some friends. Some wireless smart watches that can be used to help find friends and communicate at festivals and other locations outside of mobile range or places too loud to use radios. 

They create their own wireless mesh network so no need for anything more than just a few of them, also has a beeper and vibration motor so they can vibrate and beep when you come into range of someone you have not seen for a while

And because I like a challenge all coded on an 8bit processor with <30KB flash and 2KB ram (and still have room to grow). This allows me to get 48hrs battery life but also has USB charging without using and advanced power optimization in code (like sleep or synchronized time slotted wireless).

No automatic alt text available.No automatic alt text available.

Decided to change the form factor to a more candy bar shape as would be much more durable than a watchNo automatic alt text available.No automatic alt text available.

No automatic alt text available.
Prototype/relay node. These guys are much bigger but have proven to have a range of over a km from 


Text messaging
Unlike messaging on most devices the watches work on a word list (text fragment) system.
This means that most sentences can be formed using the following structure:
[Who/Name]  & [Action]  & [Location/Item] & [State/Extra]
This means using predefined text fragment system you can create a messages like
"Robert" "bring" "snacks" "please"
"Everyone" "meet at" "camp" "1hr"

Having word lists allows a user to generate a message by selecting the text fragment they want from the from the word list using the arrow keys. This also allows messages to be transmitted as a single 4byte payload and message storage to be just as small. 

The original hardware design was to have it as a dual radio device utilizing both a nRF24L01+ 2.4Ghz and a SI4432 433Mhz radio and the network stack designed to be able to support this as well as radio bridging and basic meshing but with testing I found the SI4432 radios suffered from bad packet loss issues and performed worse than the nRF24L01+ so it was dropped from the final design.

For the next design I have some LoRa radio modules that I am going to use. I will still use the nRF24L01+ for proximity detection but the ESP32 does look to have a many features like WiFi and Bluetooth that could also be used as well as having a much more powerful processor for the same power cost.   

For future versions I am planning on going to a star network topology, This should improve message delivery as a single gateway in the centre of the network can receive, buffer and deliver the message for users that are out of range. This will also allow me to implement a wireless synchronized time slotted protocol so I can reduce the device power consumption when idle by sleeping the radio and processor to increase the battery life from days to months.

Thursday, 4 June 2015

Bearstrike ESP8266 nRF24L01+ node hubs

Again overdue for an update. 


No automatic alt text available.

Here is the latest piece of hardware. 
This board is the latest Hub board, The purpose of this board is to bridge the low powered wireless used by other devices like headsets and taggers to standard 802.11BGN to connect to a cloud hosted game server. 
It also comes with a 1000mAh Lithium ion battery as well as onboard USB charging. 
The processor has also been given a big upgrade over the last one now that it uses the ESP8266 which is a 32bit processor as opposed to the 8bit processor commonly found in Arduinos. 
Currently it supports connecting to existing networks as well as creating it's own wireless network simultaneously so opens up the possibility of phone apps.

Thursday, 26 March 2015

Prototype Bearstrike tagger

Here are some photos of the current tagger prototype (long version) still needs a bit of work but is getting there.

No automatic alt text available.

No automatic alt text available.

No automatic alt text available.
With smart ammo

Sunday, 15 March 2015

Bearstrike update: Admin boxes, taggers

Admin/util/support boxes.I think this one might be too small now. With its own custom board now with buttons and screen mounted to the board directly things are a lot more compressed now. This could also be used to make a mini pistol tagger with the addition of a lens and a few other parts.
No automatic alt text available.

Tagger case.
The case for the tagger is progressing nicely, most work now is the mounting internals for the electronics.
No automatic alt text available.

Thursday, 2 October 2014

Bearstrike server sneak peek

Bearstrike Server
No automatic alt text available.

Work has started on creating a back end Bearstrike server. The server is designed to manage all aspects of hardware and gameplay but if you want something more Techassault have also integrated support for the Bearstrike hardware into their game platform.

Wednesday, 4 June 2014

Bearstrike boards have arrived!

Bearstrike boards have arrived!
No automatic alt text available.
I think I need a bigger table.

It is a bit scary when you look at that pile and think that is 90 players/Zombies & 90 taggers and that number does not include already staged units.
I would so love to round up 110+ players to test out all the prototypes at the same time, would make for some epic gameplay chaos.

Now to start QA'ing and updating all the boards.

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