Disabling Lawn Tractor Safety Switches

Like many others, the 2015 John Deere D125 Lawn Tractor (aka ride-on mower or garden tractor) has two annoying safety switches.  One stalls the engine if you mow in reverse without pressing a button.  The other stalls the engine as soon as you get off the seat (or lean too much forward or to one side).  This post is about disabling/bypassing the (newer) seat safety switches.

John Deere D125 seat switchUnlike older models, the new seat safety switch now has four pins, and not just two wires, so things are a little bit more complicated than the ‘cut and short’ solution presented on many older YouTube videos.  ‘Cut and short’ will not work on the newer safety switches.

I conducted some research and found out that the switch itself is JD Part Number GY20073.  It is available for next to nothing to people in the US, but the price increases by a factor of about 500% when you try to get it in Australia.  Further research reveals that the (alternately-branded) Rotary 14246 Plunger Safety Switch is identical and much cheaper to source in Oz.

Having thus acquired a seat safety switch, I then used a multimeter to test the electrical continuity between all possible combinations of pins.  This was first done with the switch in its default ‘off’ position (spring-loaded pin all the way up) and then in its ‘on’ position (pin pressed down).  Here are the results:

  • switch ‘off’ (pin up)
    • open circuit:  1-2, 1-3, 2-4, 3-4
    • closed circuit:  1-4, 2-3
  • switch ‘on’ (pin down)
    • open circuit: 1-2, 1-3, 1-4, 2-3, 2-4, 3-4
    • closed circuit: nothing

What this tells us is that when no-one is sitting on the seat, the outer pair of pins are connected and so are the inner pair of pins, but when a person sits on the seat all of the pins are disconnected.  This is surprising, as what it means is that to simulate a person sitting on the seat (the pin being pressed down) all you need to do is make sure none of the wires are connected — and that would be as easy as just unplugging the connector from the safety switch!

This was such a surprise that I actually didn’t believe it.  It doesn’t make sense to build a ‘safety’ switch that can just be unplugged by an end user.

Closer examination of the switch with a magnifying glass revealed some imprinting:  63DH, DELTA SYSTEMS INC, STREETSBORO OHIO, US PAT NO 6,207,910.  Examining the patent online made for a couple of hours of painstakingly slow but interesting reading.

The patent for this switch describes it as a “low profile, two pole, plunger-type safety switch”.  The electrical testing confirms two pole behaviour.  What was really interesting, however, is that the patent also includes the design of the connector — and the interaction between the two is where some clever engineering magic happens.

As “it is desirable to prevent an operator from bypassing the operation of the safety functions provided by a seat mounted safety switch by simply disengaging the connector coupled to the switch housing” the engineers designed the connector to short-circuit the two middle wires in the connector itself when it was unplugged.  Sneaky devils!

US06207910-20010327-D00006As can best be seen in FIG. 12, when the connector housing 202 is engaged with the switch housing 112, the beveled edges of the triangular nubs 127 a, 127 b extending outwardly from the forward edge of the bottom cover 117 contact and deflect downwardly the arcuate portions 264 of the forwardly extending arms 262 thereby permitting electrically connection or nonconnection between the socket assemblies 210 b, 210 c to be determined by the position of the actuator 130

So, what seems to be happening is that the two middle wires (2 and 3) are being used to make sure that the connector is actually connected to the switch and also sense the position of the pin.  If 2-3 is closed circuit then either a) the connector has been unplugged, or b) the connector is plugged in but there is no-one on the seat (pin is up).  In either of these cases the motor won’t run.  If 2-3 is open then a) the connector must be plugged in and b) there should be someone on the seat (pin is down).

The outer two wires (1 and 4) only sense the position of the pin.  If 1-4 is closed-circuit then there is no-one on the seat (pin is up).  If 1-4 is open circuit then someone’s on the seat (pin is down).

It is thus almost certain that both 1-4 and 2-3 need to be open-circuit in order for the motor to run.  (In all likelihood, this would be implemented in circuitry using something like a NOR gate.)

The utterly trivial conclusion to all of this is that, in order to bypass the seat safety switch in your lawn tractor all you need to do is cut the cable before the connector.  Simply cutting the cable and then insulating the exposed ends will ensure that no circuits are ever closed and therefore that all of them remain open — thus mimicking the electrical behaviour of the connector being plugged into the switch and the pin being pressed down.

Wow, just wow.

So, having done my homework and testing, it was now time to put the theory into practice.  I had a few hours of mowing to do and a bit of spare time up my sleeve, so I pushed the lawn tractor out of the shed, tilted the seat forward and unceremoniously cut the wire all the way through with some snips.  Brought the seat back down, hopped on the seat, applied the brake, pushed the throttle up to the choke position and turned the ignition key — the starter turned a few times and then the engine roared to life.  I let the engine warm up for a while and then, with the motor idling, just hopped off the seat… and… nothing changed!  The engine kept on running.  Success!

I then happily mowed for a few hours, hopping off frequently to open gates, move obstacles and pick up pieces of rubbish — and the engine kept running regardless of whether or not the mower deck was engaged or what revs it was pulling.

Brilliant, just brilliant.  Makes mowing so much more efficient and enjoyable!  :)

Side note:  On the JD D125 the seat safety switch wire that you cut is enclosed in a springy plastic sheath that runs down into a hole in the chassis of the tractor.  When you tilt the seat forward this stretches and is thus under tension.  When you cut through the wire the bottom part will probably withdraw down through the hole and quickly disappear from view.  Don’t bother trying to fish through the hole with your fingers, pliers, or a wire.  Kneel down next to the right, rear wheel and look just above and forward of the wheel — you will see the wire/sheath clamped to the frame.  The part protruding up from the clamp will be the loose end you just cut.  Use cable ties to secure this loose end somewhere so it won’t rub against anything metal or collect water.  If you are particularly paranoid, or often drive your tractor through puddles, consider even taping or plugging the end with something to seal it.

Remember that the wires in this loose end need to always remain open-circuit.  If they are rubbing against metal parts or bridged with a droplet of muddy water, then they can close-circuit and — as far as the electronics of the engine are concerned — signal that the operator has left the seat and result in the engine stalling (or not starting).  If the contact is intermittent (as it would be if vibrations were bouncing the wires against a metal part) then they could send conflicting signals multiple times per second to the engine which would result in erratic engine operation (symptoms similar to an engine being starved of fuel).  Secure and/or seal the loose end to eliminate this problem from developing down the road.

According to greenpartstore.com the switch is used in (and thus this bypass will work for) all the following models:

  • 102, 105, 115, 125, 135, 145
  • D100, D105, D110, D120, D130, D140, D150
  • L100, L105, L107, L108, L110, L111, L118, L120, L130
  • LA100, LA105, LA110, LA115, LA120, LA125, LA130, LA135, LA145, LA155
  • LT150 after serial number 040,259
  • LT160 after serial numbers MOL160H035097, MO160C035447, MO160D415192
  • LT170 after serial number 035,001
  • LT180,  LT190
  • LTR180 after serial number 500,001
  • G110
  • X110, X125, X130R, X145, X155R

It is likely that many other brands of lawn tractors or garden tractors (e.g. Husqvarna, Sabre, Scotts) use a similar, if not identical switch and can be bypassed in the same way.

Disclaimer

I am neither young nor stupid.  I’m never in a rush when I mow.  I pay attention to where my feet are.  My property is flat and the soil is sandy.  The D125 comes to an automatic halt if you take your foot off the pedal.  In my particular situation the negatives of a seat safety switch far outweigh the positives.  Your circumstances are probably different.  Use your brain.  Safety switches exist to protect you in a variety of situations where things can go wrong.  It is generally not a good idea to bypass them.  If you are young and usually rushing to cut the grass on a sloping site with slippery clay soil with a mower that doesn’t automatically stop when you take your foot off, then you’d have to be insane to bypass the seat safety switch.  Accept responsibility for your own actions and don’t blame others if you screw up.

Final Thoughts

The reason why such a safety switch design is so effective actually involves psychology.  The average person, when faced with an annoying safety switch, may simply try to unplug it.  In their mind all the ‘clever stuff’ is being done by the switch itself.  They think that by just unplugging the ‘dumb cable’ from the ‘clever bit’ they can stop the ‘clever stuff’ from happening.  When this doesn’t work, they are probably a little bit surprised, then plug it back in and are just relieved that the tractor still fires up.  Nothing broken — whew!

The average person doesn’t have the technical knowledge or confidence to pursue the matter further.  Based on a lifetime of prior experience, connectors are just dumb bits of plastic so there’s no way the connector could have anything to do with the tractor not starting up — they think that an unplugged cable behaves the same as a cut cable (i.e. no electricity goes anywhere).  That means ‘the problem’ must be somewhere back in the engine bay itself and, well, that’s all just too hard.  The simple strategy failed — give up.  People with that mentality are probably the ones that designers are trying to protect from themselves — and rightly so.

Those that do a bit of research, however, find that in order to effectively bypass the switch, they need to actually damage the machine (i.e. cut wires or, alternatively, rip out the shorting member with pliers).  A lot of folks won’t be willing to do that because the idea of inflicting permanent, irreversible (in their minds) damage to something they paid money for is a mental obstacle too high for them to overcome.  Since this issue is likely to arise when the machine is newly purchased, that makes it even harder.  Deliberately damage a brand new tractor — are you crazy?

By moving ‘intelligence’ from somewhere obvious (the switch) to somewhere obscure (the connector), the designers thwart the annoyed masses trying to bypass the seat safety switch.  By making the only workaround one that causes damage, the designers further discourage those that are precious about their tractor.  About the only folk left are the hackers who just don’t give a damn.  If you’ve made it this far you’re probably one of those.  I hope you found this post informative.  Happy hacking!

Posted in Stuff | Tagged , , , , , , , | 4 Comments

Appropriate content warning bypass for Steam apps

Are you a Steam user?  Are you seeing warnings that “Content in this product may not be appropriate for all ages, or may not be appropriate for viewing at work.”  Do they annoy you?  Do you want them to just go away?  If so, read on.

Due to retarded, Nanny State, ESRB policy, Valve is now required to put unavoidable obstacles in the way of users of the Steam store whenever they attempt to access a game (app/whatever) that some precious snowflake, somewhere in the universe, could conceivably be offended by.  They are collectively called “Age Gates” and the one that forces you to put in your date of birth has been around for quite a while.  Not content to annoy people that way, they now are pushing even more warnings for even milder content. /facepalm

The latest warning page looks like this and appears in front of ~10% of the items in my Discovery Queue:

AgeGate

I got sick of seeing that page and clicking on the Continue button repeatedly, so I wrote a single-line GreaseMonkey script to do it for me.  (First World problems — I know.)

Here’s the code:

// ==UserScript==
// @description Effectively presses the "Continue" button on steam app pages that issue the following annoying warning:
// "Content in this product may not be appropriate for all ages, or may not be appropriate for viewing at work."
// @include http://store.steampowered.com/app/*/agecheck*
// @name Appropriate content warning bypass for Steam apps
// @namespace http://localhost
// @version 1
// ==/UserScript==

HideAgeGate(window.location.pathname.split('/')[2]);

All of the lines that start with // are actually comments or configuration directives.  The @include line limits the script to running on only the warning page — this script does not run on any other page.  The HideAgeGate function is passed the appNumber from the URI and then hides the gate for that app — which is exactly what pressing the Continue button does.

If you already have Greasemonkey or Tampermonkey installed, then great — copy the above, create a new script, paste, save and you’re done.  No modification required.

If you don’t know what Greasemonkey and Tampermonkey are, they are extensions that allow you to create and run Javascript scripts that modify how pages appear or work or automate certain tasks.  Greasemonkey started by doing this on Firefox.  Tampermonkey lets you do it on Chrome.  You need to have Greasemonkey or Tampermonkey installed before you can upload and use the script (obviously).

The operation of the script is entirely passive — once you’ve added it to Greasemonkey or Tampermonkey you don’t need to do a thing.  The script detects if you are on that annoying warning page and, if so, effectively clicks the button for you.  You’ll see the warning page come up for a fraction of a second and then go away.  The actual app page that you wanted will then be displayed.

This script was developed and tested on OS X with Chrome and Tampermonkey installed.  YMMV but it’s so basic it should work just about everywhere.

Note:  This script does not do anything on the original age gate — the one that asks you to enter your date of birth.  Other scripts already exist that do that — just do a web search for “steam age check bypass” and follow your nose.

Enjoy!

Posted in Stuff | Tagged , , | Leave a comment

Camping Shower

There are a lot of different camping showers available for folks that want to go camping but don’t want to wash themselves with a towel.  Some have heaters, some have pressure tanks and a lot are ridiculously expensive.  I recently was faced with having to choose between the various options and I ended up grabbing one of Jaycar’s 12V Camping Showers.

Camping Shower

Now everyone’s needs will be different, but here are the reasons I went with this particular type of shower:

  1. We take a sedan camping, with no trailer, so space is at a premium.  There’e no room for large, solid showers.
  2. We have a supply of well water where we camp, which is clean but ‘hard’ (high level of dissolved minerals like calcium) — so no point getting anything with an element to heat the water as it would scale up immediately.
  3. There are no convenient trees at our preferred camping spot which could be used to hoist anything of substantial weight high above our heads, so the water would need to remain at ground level.  Gravity feed isn’t an option.
  4. Water is heated primarily by our 20L solar heater (basically a black bag you fill with water and place in direct sunlight to heat up during the day so you can then have a shower in the afternoon/evening) and boosted by our 20L Hillbilly as required — so appropriately mixed water for individual showers is available in a 10L pop-up silicone bucket.  No need for the shower to do any heating or mixing at all.
  5. I already have a Kincrome Power Pak Plus — a lithium ion battery pack that can jump start cars, power 12V devices, and recharge laptops, phones and other USB devices — so the shower doesn’t need its own power supply.
  6. The shower pump can’t be too powerful as we don’t want to waste a lot of water.  Even though the supply is unlimited, actually getting and hauling it is a pain.

After thinking everything through it was decided that the most logical type of shower would be a submersible pump (which could be dropped in the bucket), drawing 12V DC (from the Power Pak Plus, not the car battery), with a long enough power cord to keep the battery well away from the shower, and a long enough tube between the pump and the shower head to allow the latter to be hung up on a spare tent pole, and a waterproof switch to turn the pump on and off.

It was a toss-up between the Jaycar 12V Camping Shower and a Primus 12V Shower.  Both look almost identical and, apart from colour, may very well be.  I was heading into Jaycar anyway, so that made the decision easy.  Cost was a very reasonable $30.

The power cable is about 4.8m long and the tubing is 2.1m long.  The whole unit weighs 1kg and fits in a small bag.  I could find no details online (for either product) about water consumption rates — an important issue for me — so I did some tests with the Jaycar 12V Camping Shower as soon as I got it home.

The shower head has a pin which you can push to vary the flow rate from maximum to closed.  With the pin in the maximum position, the flow rate is 3.4 litres per minute.  With the pin in the minimum position, the flow rate is 1.5 litres per minute.  Minimum is fine for us, so we’re looking at about a 6 minute continuous shower per 10L bucket — plenty.

The Power Pak Plus should be able to run the submersible pump (which is rated at 1.5A/18W) for 3.7 hours of continuous use — about 33 showers — before it needs recharging.  That is plenty considering our regular getaway is only four days/three nights long.  Pumping water should use up only about 18% of the available power on any particular trip — leaving 82% for other devices or an emergency jump-start.

So, everything’s looking good so far. How long the Jaycar 12V Camping Shower will last is anyone’s guess, but at only $30 it’s an inexpensive experiment to conduct.  I’ll try to remember to update this page when the unit dies so you can get an idea of its life expectancy.

Posted in Stuff | Tagged , , | Leave a comment

Dremel Chain Saw Sharpening Attachment

Dremel Sharpening KitDremel sell a Sharpening Attachment Kit with an attachment for sharpening chainsaw chains.  If you follow the instructions included in the kit you will damage your chain, cause extra wear and tear on your bar and chainsaw, go through more fuel and oil, find cutting more difficult and tiring, have difficulty cutting straight lines, and may put yourself at more risk of kickback and personal injury.

Details

The Dremel A679-02 Sharpening Kit owner’s manual can be found at the product page under “Product Support”.  It consists of two manuals in a single PDF — one for Lawn Mower and Garden Tool Sharpening (Model 675) and the other for Chain Saw Sharpening (Model 1453).

If you own the kit and want to learn how to sharpen a chainsaw chain using the chain saw sharpening attachment, then you will probably read that manual.

In the SHARPENING THE CHAIN section, Step 4 instructs you to:

Turn the saw around so that you are looking at the side of the chain bar with the motor to your left. Sharpen the cutter teeth on the far side of the chain, from inside to outside, or away from you, as shown in Figure 6. The guide should be laid flat on the tooth with the 30° index line parallel with the chain.
Repeat the process above to sharpen all of the cutter teeth on the far side of the chain.

Figures 5 and 6 (the one referred to) are reproduced below:

Dremel Chainsaw Sharpening Attachment Manual Fig 5 and 6

Step 4 and Figure 6 are incorrect.

In Figure 5 you can see that the guide rests on the top plate of the cutting tooth.  If you turn the saw around, as instructed in Step 4 and shown in Figure 6, the guide will rest on a depth gauge and not the top plate of the cutting tooth.

The guide is designed to rest exclusively on the top plates of cutting teeth.  Depth gauges are lower than top plates, so resting the guide on depth gauges will result in you grinding the cutting corner and side plate too low.

If you consistently grind the left-hand cutting teeth lower than the right-hand cutting teeth the saw chain will not cut evenly through the wood and will pull to one side.  This will make it harder to cut straight, increase the amount of pinching and jams on larger diameter logs, and increase the chance of kickback when cutting with the top of the bar.

Solution

The sharpener (as currently designed and sold) can only sharpen evenly if both left-hand and right-hand cutting teeth are sharpened from the same side — as per Step 2 and illustrated in Figure 5 — with the motor to the right.

This YouTube video (Chainsaw sharpening. Simple DIY Dremel type rotary tool.) shows the process correctly.

Note that even Dremel’s own videos (e.g. Sharpening a Chainsaw: Dremel Rotary Tool) contradict the manual and show the correct approach (i.e. sharpening from one side), but some (e.g. Sharpening a Chainsaw: Dremel 8200Sharpening a Chainsaw Blade: Dremel Rotary Tool) make major errors (e.g. resting on depth gauges and grinding at incorrect angles).  It does not appear as though anyone who actually knows how to sharpen chainsaw chains was consulted when Dremel made their chain sharpening videos, so it’s probably a good idea not to trust any of them.

Bonus Tips

1:  When sharpening the teeth closest to you exercise a little bit more care — you don’t want to jab the grinding stone into the side plate.

2:  Dremel’s sharpening stones (i.e. 453, 454 and 455) wear out and will need to be replaced on a regular basis.  When grinding, steady, full-length strokes will evenly wear out the stone and maximise its life.  Depending on how much metal you need to grind off each time, the stone may need to be replaced after as few as three or four chains.  If your conditions are such that you are wearing out a lot of chains, consider purchasing third-party “diamond chainsaw sharpener burrs” — they are quite cheap to source online and last about three times as long.

3:  Due to the direction that rotating tools rotate (i.e. virtually always clockwise, from the point of view of the tool) this attachment will result in metal fragments being thrown downwards and into the chain.  Due to the presence of bar and chain oil, some of these fragments will stick in between the links.  When you operate your saw, these fragments will cause a small amount of extra wear on the chain, bar and sprockets before finally dislodging.  If this sort of thing concerns you, then consider using a set of 2, 3 or even 4 chains, waiting until all of them need sharpening, then sharpening them together and, after they have been sharpened, wash them all clean in a petrol bath.  The petrol will dissolve the oil and release the filings, along with any other gunk in the chain, and prevent any of the filings lodging in your bars or sprockets.  (Some folks like keeping their chains clean this way regardless of how the chain is sharpened.)

Posted in Stuff | Tagged , , , , , | 6 Comments

Internet Radio

I have elderly parents (in their 70s).  They immigrated to Australia (from Finland) nearly half a century ago.  As they get older, their immigrant friends are dying off.  Living in the country, as they do, they are feeling more and more isolated.  Their English is (still) not very good so reading local papers or understanding television news is… difficult.

They used to listen to Radio Finland when it was still broadcasting on shortwave, but that service was shut down about a decade ago.  They also had a subscription to Suomi Newspaper but dropped that for the same reason most people drop newspaper subscriptions.  Finnish language library books are hard to come by, dated, very few in number and logistically a pain to source.  I tried setting them up with a computer in the 90s but that failed — it was all too complicated (it would fail even harder today because their hands are shaking and mouse-control would be impossible; no chance at all with a track-pad).  Things looked grim.

Then, for inexplicable reasons, the little country town they live in all-of-a-sudden got connected to the NBN.  (Wow.  I’m in the city of 30,000 and won’t see the NBN for at least three more years, but a little town of 500 in the middle of nowhere is already connected.  The Australian federal government is just so broken.)

Anyway, I latched on to that news and decided to give the Internet another shot.  This time my strategy would be different.

  1. I’d pay for everything (router, connection, monthly fees) so there was no financial risk involved in them giving it a go.  There was nothing to lose.
  2. I’d start by giving them something back that I knew they would use… and use that as a foot in the door to expose them to bigger and better things.
  3. I’d use technology and approaches that made things as simple as possible.  It would need to be as easy to use as a kitchen appliance for it to work, so this was important.

After lots of thought and lots of research I finally decided to start with Internet Radio.

In the old days, the radio would be in the kitchen.  They would turn it on at the start of the day and let it run — only adjusting volume during the day.  They never changed stations.  When the signal got too weak, dad would go into the forest, cut down a taller tree, bring it home and use that as the new mast for the antenna.  Whether or not that actually accomplished anything I do not know, but it made him feel good.  Simple times.

There are currently at least 83 Finnish radio stations broadcasting on the Internet, and at least three of these play ‘old time’ music.  Perfect.

I researched hardware Internet radios — devices that look like old radios with an ethernet or Wi-Fi connection that plugged into your home network and tuned into stations that way — but decided against them after reading a pile of negative reviews.  The majority of complaints stem around complexity, reliability and, worst of all, codecs.  All Internet radio stations much choose what format to encode their broadcast streams in (MP3, AAC, WMA, …).  Hardware manufacturers build decoding circuitry into their devices to handle those formats.  The decoders cannot (usually) be modified.  So when the Internet radio station decides to change or upgrade codecs — everything breaks.  The stream, more often than not, simply stops working.  At that point, you’re left with an expensive boat anchor and, in most cases, there is no way to fix the problem by way of a firmware upgrade.  No thanks.

Having previously exposed the folks to tablets (specifically, iPads), it was known that direct interaction with objects on a touch-screen was still within their ability.  No abstraction between control device and on-screen pointer, and no double-clicking — just tap what you want (and maybe a little bit of swiping as well).  So I pressed an old iPad (v1) into service and reset everything.  I bookmarked direct links to a variety of radio stations and placed their icons on the home screen.  Tested it all on my network — no problems.

Once the NBN connection was up and running at their place, I made the trip and connected the iPad to their network.  A small amount of training later and the folks were able to:

  • turn the iPad on
  • swipe to go to the home screen
  • select the desired radio station from the half-dozen or so that were there
  • wait for the page to fully load
  • hit a play button to start the stream
  • adjust the volume
  • close the page/stream
  • turn the iPad off

I then left the iPad with them.

One week later I gave them a call and asked how it was going.  They said that they were listening to radio for up to 5 hours a day.  The only thing that stopped them from listening for longer was the battery — it kept running out.  Overall rating:  8/10.  Success!

Ok, now even though five hours was pretty darned good for an ageing iPad, that battery issue needed solving.  The sound quality out of the iPad’s tiny speaker also left a lot to be desired.

A subsequent experiment with a JBL Clip+ bluetooth speaker was marginally successful — much, much better sound, and better battery life, but more complicated (did anyone really think it would be easy for a 70-year-old to pair Bluetooth devices?) so it was time to think of something else.

Then, as chance would have it, Apple refreshed its iPod Touch line.  The iPod touch is basically a smartphone without the phone.  It’s got the camera and everything else.  It runs iOS — the same OS that the folks were already using — but, unlike the iPad (which was stuck on iOS 5 and could therefore only install a limited amount of apps from the App Store) the 6th Generation iPod Touch runs the latest version of iOS and can install pretty much anything — including dedicated Internet Radio apps.  Bingo!

Even though an iPod screen is smaller than the iPad, for playing music this doesn’t matter — the size of the icons is the same (there’s just less empty home screen space on an iPod).

I was focused on trying to optimise the Internet Radio experience for them so I had to do two things: make it simpler and get better quality sound.  The key to the puzzle was hunting down a straight-forward, no-frills dock/speaker for the iPod.  This… was… a… pain…

Since the folks aren’t interested in listening to radio on the go, the dock didn’t need to be portable.  Since running out of, replacing and recharging batteries is a pain, it had to run off AC.  It had to have decent sound quality.  It had to have a Lightning connector — the same as the iPod.  It wasn’t allowed to have any stupid features, like a clock, or an alarm, or a remote control, or any of that garbage.  All it needed was an ON/OFF button, volume UP and volume DOWN.  Do you know how many docks are that elegantly simple?  I found only one.

JBL OnBeat Micro

The JBL OnBeat Micro appears to actually be a discontinued product, and was notoriously difficult to source in Australia.  I ended up getting one from eBay for $69 and tested it out.  It worked.  So I bought two more.  The folks can put them in different rooms and, if one fails, they still have spares.

I experimented with a few different Internet radio apps but finally downloaded Simple Radio by Streema from the App Store.  It’s simple — really simple — and a quick in-app purchase unlocks all the featues and, most importantly, gets rid of the distracting ads.  The result is an app that you simply launch, it goes straight to your favourites list, and you tap the station you want to listen to.  That’s it.  Perfect.

The iPod now sits in a dock.  The docks are always connected to AC power.  The Lightning connector keeps the iPod fully charged all the time — no battery issues, no cables, no manual charging.

To listen to the radio the folks simply:

  • press the ON/OFF button on the dock to wake the iPod up
  • swipe to go to the home screen
  • tap the Simple Radio icon
  • tap the radio station of choice to start streaming
  • adjust volume using the +/- buttons on the dock
  • press the ON/OFF button on the dock to stop listening

Having launched the app once, iOS remembers it and the station being played, and makes it available directly from the lock screen… which simplifies things considerably:

  • press the ON/OFF button on the dock to wake the iPod up
  • press the PLAY icon on the lock screen to resume streaming
  • adjust volume using the +/- buttons on the dock
  • press the ON/OFF button on the dock to stop listening

That’s it.  Two presses to start listening to radio.  One to turn it off.  Easy-to-access +/- buttons to adjust volume.  Never-ending amounts of nice-sounding radio/music.

Problem solved.  Happy parents.  :)

Troubleshooting Tips

Of course there were many obstacles in getting Internet radio to work this smoothly.  Some are mentioned above.  A few, however, were particularly difficult to pin down.  This section is provided to hopefully save some folks out there some frustration.

Using a web browser to play Internet radio

I started by using an iPad and Safari to play radio directly inside the web browser and it worked fine.  When I tried to play radio using Safari (or Chrome) on the iPod, however, it would cut out after about 10 minutes.

Somewhere between iOS 5 (which was on the iPad (v1)) and iOS 8 (which was on the iPod Touch (6th Generation)) Apple decided to add energy-saving code to the OS which would suspend apps that it thought weren’t being used any more.  Now, it completely escapes me how a browser app that is actively playing audio can be treated this way, but it is.  If you play radio/music using a browser on iOS 8 you will get cut off after 10 minutes.

There is no workaround to this that I know of.  Further, iOS 8 made the audio controls in Safari tiny so I’m not that interested in trying.  They are now too small for old folks to use.

Using an app to play Internet radio

You would think that all dedicated Internet Radio apps would be treated as such and would not be suspended by iOS 8 — but that’s not always the case.  Smaller apps, often dedicated to a single station (like Greek Radio 89MHz) get suspended after 10 minutes.

It feels like the app is not making the right calls to the iOS framework, and kAudioSessionCategory_MediaPlayback and UIBackgroundModes has probably got something to do with it, but I don’t code iOS so don’t know for sure.  In any case, it’s not an end-user-resolvable issue.

The apps made by big Internet radio companies do not get suspended.

JBL OnBeat Micro standby mode

Due to retarded EU regulations, JBL was forced to add detection circuitry into the OnBeat Micro that switches the dock/speaker into standby mode if no audio is detected for about 9 minutes.  While this bureaucratic regulation was bad enough, JBL made a big mistake in how they implemented the detection mechanism.

It seems like the dock probes the lightning connector on a regular basis and detects if a certain signal is being sent or variable is being set.  If you are playing audio/music using the default Apple iTunes/Music app, then everything is fine — the OnBeat Micro lets you play as long as you like.  If, however, you are using a web browser, or many, many other apps, then this signal/variable is not being sent/set and the dock goes into standby mode (slow blinking white light) after 9 minutes.  This. Is. Infuriating.  (And probably has a lot to do with why the unit has been discontinued.)

What they should have done is just detected the audio level going to the speaker and, if it was too low for too long, then go into standby.  But they didn’t do that.

There are ways to stop the JBL OnBeat Micro from going into standby after 9 minutes but they involve playing silent audio files, installing and backgrounding config apps, and jailbreaking the device.  Way.  Too.  Hard.  Apple is on a crusade to stop this sort of thing so any solution is likely to break each and every time the iOS updates.

The solution, for me, was to just keep installing and testing Internet Radio apps until I found some that play through the OnBeat Micro for at least 11 minutes without entering standby.  If they do that, then see if they make it to 20 minutes without being suspended by the iOS.  If they pass that hurdle then you should be fine.

Note:  If you use iTunes/Music it will ask you if you are still listening after about 5 hours and, if you don’t answer, will suspend the app.

For the record:  JBL OnBeat Micro + iPod Touch (6th Generation, iOS 8) + Simple Radio by Streema (v3) streams Internet radio for at least 12 hours.  Good enough for me.

Bandwidth

One final issue was that of bandwidth.  Would the folks blow the quota of the NBN plan that they had?  What happens if they set it playing, turn the volume down real low, forget it’s on, and leave it for a month?  Math time:

A 128kb/s stream chews through:

  • 128/8= 16kB/sec
  • 16*60= 960kB/min
  • 960*60= 57,600kB/hr
  • 57600/1024= 56.25MB/hr
  • 56.25*24= 1350MB/day
  • 1350/1024= 1.32GB/day
  • 1.32*31= 40.87GB/month … if left on all day, every day, for a 31-day-long month.

The folks have a 300GB plan, so would have to listen to 300/40.87= 7.34 radios all day, every day, all month long to come close to blowing their quota.  Either that or listen to one radio for 24*7.34= 176 hours each and every day.  Not.  Remotely.  Possible.

There’s plenty of bandwidth in a 300GB plan for as much radio as the folks could ever realistically listen to, even with multiple radios, and there’s still plenty left over for other uses.

Posted in Stuff | Tagged , , , , , , , | Leave a comment

Simpson SR300B Manual

Simpson SR300BHere is a scan of the “Use and Care” manual that came with the Simpson SR300B refrigerator.  The SR300A and SR300C are very similar, so most (but not all) of the information in this manual applies to them as well.

Simpson started manufacturing appliances (in Adelaide, South Australia) in 1909.  They merged with Pope Industries in 1963.  They were then absorbed into Email Limited in 1986.  Email was broken up in 1999 and the Swedish multinational Electrolux acquired the major appliances group.  It has progressively shut down all fridge manufacturing plants in Australia.  The last remaining plant (in Orange, New South Wales) will close in 2016.

The Simpson SR300B is a 300L, frost-free, two-door fridge, with the freezer on the top and the fridge underneath.  The SR300B-L and SR300B-R are just left- and right-hinged versions of the same fridge.  We purchased ours in 2004 and it’s still working fine.  Only had to change the light bulb once.

Enjoy the manual.

SR300B

Posted in Stuff | Tagged , , , | Leave a comment

How to replace ugly OS X icons

Upgraded recently?  Noticed the garish, hideous, red iTunes icon that has infected your dock?  Does it make you think something is wrong with the application?  Want to change it back, or at least to something else that just doesn’t suck as much?  It’s easy.

Red Icon in Dock

Changing icons for applications in OS X isn’t hard.  There is the ‘right’ way (which involves inspecting packages and substituting .icns files) and then there is the easy way.  Here’s the easy way…

Let’s say you want to change this iTunes Red Icon back to this iTunes Blue Icon.

The first step is to copy the icon you want into the clipboard, so just right-click the blue iTunes icon above and select Copy Image.

You can use nearly any image as an icon, but medium-resolution .png files (say 256×256 up to 1024×1024 pixels) with transparent edges work quite nicely.

Next, we want to find the iTunes application.  Right-click the iTunes icon in the dock, select Options > Show in Finder.

Show in Finder

Now select File > Get Info.

iTunes Info

Click on the small icon in the top-left corner of the Info window to select it.

Selected Icon in Info Window

Now simply Edit > Paste.

Enter your password if/when prompted.

The Info window should now show the better icon in action.

Back to Blue

Close the Info window and you’re done.

The next time you launch iTunes from the dock the icon will update and the awful red icon will be gone!

Task Bar Back to Normal

If, for some reason, you go insane and want to undo the above and restore the normal icon to iTunes (or any application), all you need to do is Edit > Cut the icon from the Info window and it will return back to normal.

Enjoy!

Posted in Stuff | Tagged , , | 2 Comments