Bug in portable opal checkers

Hey all, I identified a bug in the portable tap on detectors transit officers use.

If a user taps on but isn’t sure if they have, so they tap again and get the “already tapped on” message, it will update the opal with the last tap event being “tap on error”

Therefore you are tapped on but if your card is scanned it will show as not tapped on because it only checks the last event.

You still have to tap off or you get max fare or whatever the penalty is for not tapping off, even though the transit officer tells youuuuu the opal is not tapped on.


I tapped on at central light rail, the tap point said “try again” so I tried again and it said “already tapped on”

Fast forward, ticket checking guy checks my opal “you didn’t tap on”
I assure him I did, he scans and gets tap on fail error.
I scan with my phone and get the same thing.

When I alight at the star, I tap off and am charged my usual fare

I scan my opal again with my phone and my last event is tapped off.

I smell a bug D:< Update: I was able to confirm this bug this morning with a ticket checker on the tram.

Opal card single use tickets

On my way to a friend’s birthday I noticed the new opal machine at my local train station was finally uncovered.
I took a quick look so I know what it’s good for, amongst useful things such as finally being able to add money with cash/coins, and contactless payment support, it also had an option for a”single use opal”.

This one got my attention pretty quickly, I was curious if the machine would print a regular paper ticket, if it would dispense a plastic opal card, or a hybrid.

I percussed a child ticket for $2.70 to see what it was like, and to my delight it’s a cheap paper NFC tag!



Branded opal card and everything, but the good thing is, it’s going to be discarded by people.
How is this good might you ask?

I love finding NFC tags discarded in public, there’s always ways to reuse them!

I did a scan of the tag and it output the following data:


From this we can see it’s a Mifare Ultralite C tag.

I am curious to find out if there is any success in other countries in terms of breaking the ultralite tags, I do know they’re used in a few places with electronic ticketing systems.

I’ll do some more research on these and report back!


starting pitch


an led bar graph, an arduino, and a bluetooth module. (RTC module too?)

the arduino scans for a bluetooth mac address (the mac of the phone belonging to the person the cuddleometer will respond to)

it will measure the time it is within proximity of that mac address and proportionately raise and lower the bar graph based on time since it sees the mac and time since is SAW the mac.

this allows it to “recharge” when you are with your significant other, and to “discharge” when you are away for them.

once the graph gets low, an additional led could flash indicating dangerously low cuddle gauge levels. and requesting a recharge.

this allows couples to keep track of the cuddle levels and ensure they always stay at a safe level.

additional thoughts

-gsm module to allow for e-cuddles
-wifi to allow proximity based cuddles / pausing cuddle drain when at home
-analog meter support for base station cuddle-o-meter
-a decided upon name
-a add on device that can be activated when a physical hug is engaged that speeds up the recharge process significantly


gsm – http://www.ebay.com.au/itm/251728140941
mcu – http://www.ebay.com.au/itm/371535922801
bar – http://www.ebay.com.au/itm/151775473664
led – http://www.ebay.com.au/itm/171371213386
wifi – http://www.ebay.com.au/itm/161849472764
btle – http://www.ebay.com.au/itm/191736126745
batt – http://www.ebay.com.au/itm/191547561905
usb – http://www.ebay.com.au/itm/172143472382
rtc – http://www.ebay.com.au/itm/131523900632

LED Skirt mark 1

I decided that this year for Vivid Sydney, I will do something I have wanted to do for a long time.

I am going to create an LED skirt.

I got the inspiration from SexyCyborg with her LED skirts over here:

My DIY Underlit LED (Hikaru) Skirt

I’m going a slightly different approach though.

Rather than just skirt-underlighting I am commissioning Tearschu to make a frilly skirt similar to this dress here

Edit: found some similar to the look im going for!

Dress I made for my Senior Prom, hope you guys like it!

I am going to be embedding some strips of WS2812B addressable LEDs into the skirt, hopefully it’s going to give a nice washed colour effect into the whole skirt!

I will post progress pictures as I go with the build.

Parts list:

LEDs: http://www.ebay.com.au/itm/162068083230
Arduino Nano: http://www.ebay.com.au/itm/182093493024
Power UBEC: http://www.ebay.com.au/itm/271700451532
attery: Turnigy NanoTech 3s LiPo


Power source:

I am going to use a hobby UBEC that can do 5v at 3-5 amps 🙂
I have linked it above under the parts list. It will be connected to a 3s LiPo battery for powering both the arduino and the LED strip.

The LED strip can draw up to 3.5 amps at 5v at full brightness, this will only really happen if all the LEDs are lit, and white. but to be safe I am investigating power sources that can handle this.

I may end up just using a USB battery bank with its 2.1 amp output.
I am pretty sure thats all ill need.

Nevertheless I have a reddit post in /r/askelectronics over here where I am asking if there’s a better solution!

Some other projects that I may find useful to refer to:


I rigged up a little 3 pixel test strip to get the code worked out, ideally I want to have a push switch that can change between colour patterns / modes.

View post on imgur.com

I’m looking around to see if this has been done before because I’m terrible at code \o/

I did some testing with a 16 pixel ring to get a better idea of the colour mixing.
I really love the colours that come out of these things, they’re so vivid and will mixed!
I’m getting super excited for this to happen!


The electronics are ready!
I have completed it all and the power supply works and i’ve charged up the batteries!
Check out these pictures:

View post on imgur.com

The code is ready!
I have uploaded it to GitHub here: https://github.com/CountParadox/NeoDress/
It’s made from a number of places and things mashed together, it has a few modes, and is fully configurable of course.
Tactile switch on digital pin 2, leds on pin 6, set for 60 leds at the moment.
has an off state, a rainbow chase, and a number of solid colours because they’re nice!

And here’s a video of the strip!

More to come…

HamShield Motion Sensor

I am in need of a motion sensor for something, and I have this HamShield that I got from KickStarter recently.


heres some code I have mashed together that *MIGHT* make the radio send an SSTV image when motion is triggered..


I have to rest it and refine it first! its just mashed code from examples!

[su_expand more_text=”Code:” less_text=”Close Code.”]/* Morse Code Beacon Test beacon will transmit and wait 30 seconds. Beacon will check to see if the channel is clear before it will transmit. */ // Include the HamSheild #include #define PWM_PIN 3 #define RESET_PIN A3 #define SWITCH_PIN 2 // Create a new instance of our HamSheild class, called ‘radio’ HamShield radio; int calibrationTime = 30; boolean sensorActive = false; boolean previousSensorState = false; int pirPin = 4; //the digital pin connected to the PIR sensor’s output // Run our start up things here void setup() { // NOTE: if not using PWM out, it should be held low to avoid tx noise pinMode(PWM_PIN, OUTPUT); digitalWrite(PWM_PIN, LOW); pinMode(pirPin, INPUT); digitalWrite(pirPin, LOW); // prep the switch pinMode(SWITCH_PIN, INPUT_PULLUP); // set up the reset control pin pinMode(RESET_PIN, OUTPUT); digitalWrite(RESET_PIN, HIGH); // Set up the serial port at 9600 Baud Serial.begin(9600); // Send a quick serial string Serial.println(“HamShield FM Beacon Example Sketch”); // Query the HamShield for status information Serial.print(“Radio status: “); int result = radio.testConnection(); Serial.println(result,DEC); // Tell the HamShield to start up radio.initialize(); radio.setRfPower(0); // Configure the HamShield to transmit and recieve on 446.000MHz radio.frequency(145570); Serial.println(“Radio Configured.”); Serial.println(“Sensor Calibration in Progress”); Serial.println(“——————————“); for(int i = 0; i < calibrationTime; i++){ Serial.print(“.”); } Serial.println(“”); Serial.println(“Sensor Calibration Completed”); Serial.println(“Sensor Reading Active”); delay(50); sensorActive = false; previousSensorState = false; } void loop() { // takes the pin value and saves it to the sensorActive boolean value if(digitalRead(pirPin) == HIGH) { sensorActive = true; radio.setModeTransmit(); // Turn on the transmitter delay(250); // Wait a moment radio.SSTVTestPattern(MARTIN1); // send a MARTIN1 test pattern delay(250); radio.setModeReceive(); // Turn off the transmitter } if(digitalRead(pirPin) == LOW) { sensorActive = false; delay(250); } // performs action if the state of the sensor changes // since this is a loop, here is now it works: // if the sensor pin goes HIGH (on) after it being LOW (off), the sensorActive value changes from the previousSensorState value. // it then turns on the LED. when the pin goes LOW (off) it will do the same thing but opposite values. // it also prints status to serial. it will print the time of triggering by providing the number of seconds that have passed since the program started. if(sensorActive != previousSensorState) { if(sensorActive == true) { previousSensorState = sensorActive; Serial.println(“—“); Serial.print(“Motion Detected At: “); Serial.print(millis()/1000); Serial.println(” Seconds”); delay(50); } if(sensorActive == false) { previousSensorState = sensorActive; Serial.println(“—“); Serial.print(“Motion Stopped At: “); Serial.print(millis()/1000); Serial.println(” Seconds”); delay(50); } } } [/su_expand]

OLKB Neutrino Keyboard

This week I’m finally making great progress with my hand-wired mechanical keyboard.
I had finalised the electronic hardware a while ago, and now that a colleague has helped me out with programming the Teensy 2.0 the only thing that remains is to get some nice keycaps for it to replace these cheap red placeholder caps, and to create a nice case for it.
I am thinking ill go with something wood, but I am not sure how ill mount it in yet.

I also made a custom USB cable by buying some paracord, slicing the ends off an Astro Gaming USB Cable, spending hours sleeving the cable into the paracord, and then resoldering some connectors to the ends.

The heat shrinks pretty damn messy, ill tidy it up some time but it works for now.

Anyway please enjoy these short albums of photos:

View post on imgur.com

View post on imgur.com