BMW S1000R Motorcycle CANBUS Hacking

My BMW S1000R motorcycle is my favorite bike so far. I like everything about it except the headlights – when I turn on the high beams, both bulbs stay on, then after a few seconds the low beam turns off.  Arg!!!! I want as much light as possible.

I have a factory service manual (FSM), but the FSM doesn’t have any wiring diagrams or technical information about the CANBUS.  I’m going to have to hack it and I’ll show the steps I used to figure out the wiring.  However this comes with a disclaimer – use this at your own risk. Messing around with your CANBUS can be life-threatening and could cost you a lot of $$$ if you break a controller. Continue reading “BMW S1000R Motorcycle CANBUS Hacking”

Progressive Web Apps and The Microsoft Store

Welcoming Progressive Web Apps to Microsoft Edge and Windows 10

Microsoft announced that Progressive Web Apps (PWA) will be added to the Microsoft Store (the “Store”).  This means just like a native app (or Universal App in Microsoft Store parlance), you can build a PWA app and have that added to the Store.  From a developer perspective, this is great.  A PWA app in theory should be much more cross-platform than a native app.  But what I find more interesting is thinking about the “why’s” a company would do something.

The big tech companies have been battling for years.  When you are building your business, trying to navigate the cesspool of technologies is a challenge.  You have to be careful of betting on a technology that could get dropped when it isn’t a strategic fit anymore.  Remember a thing called Silverlight?  As developers, we know its possible to have standards and the Web has been that shinning light.  But Apple, Google, and Microsoft all have different objectives.  Unfortunately, rather than evaluating a technology on its technical merits, it’s actually more important to evaluate it on the viability of its long term success. Continue reading “Progressive Web Apps and The Microsoft Store”

Messy Workbench

Messy Workbench
Messy Workbench

This is a picture of my workbench and some gizmo I was making last year.  I originally wanted to be an electronics engineer.  However, back in the dark ages of the 80’s, hardware geeking was much harder than today.  The cost of the test equipment was prohibitively expensive and way outside of my reach.  Access to parts was usually limited to what you could find at Radio Shack.  If you wanted broader access to parts, such as CPUs, memory, or other integrated circuitry your best bet was to ask for engineering samples.  I was a young starving student and I did not have the money nor patience required to get into hardware, so I shifted to software. Continue reading “Messy Workbench”

Garage Parking Assist – Part One


Ever since I outfitted my truck for the Zombie Apocalypse, parking it in my garage is something of a pain.  The front and rear bumpers have lengthened the wheelbase so I only have a few inches of margin – if I drive in too far I’ll hit the front wall, and if I don’t drive in far enough the garage door will hit the spare tire and refuse to close.

For years I put up with this until the hassle overcame my laziness factor.  I could have hung a tennis ball from the ceiling, but I’ve got a pretty cool garage “man cave” and a dangling tennis ball isn’t cool.  Plus, I’ve got some geek cred I need to maintain, I can build it myself, and more importantly maybe this can teach/inspire someone else along the way.

I’ve organized this into a two part series.  Part one will give you some background info, instructions on bread-boarding (prototyping) the circuit, and getting the software flashed to the circuit.  Additionally, I’ll point out some of the more important details in the software and give reasons why this was done.

While you might see some of the electronic equipment on my bench, don’t let that stop you.  All you need is a multimeter, and you don’t really need that unless stuff goes whacko.  Start with a simple breadboard and hookup wire.  If you decide to make this more permanent, I’ve included links to “perma-proto” boards.  These look just like the breadboard you are using, but you can solder stuff to them. Continue reading “Garage Parking Assist – Part One”

Openspot Teardown

The openspot by SharkRF is a digital radio gateway that allows you to use your d-star, dmr, or c4fm radio worldwide.  What I liked about it the most is it is simple – plug it in, do some simple configuration via your browser, and you can start talking around the world on a little portable handheld radio.  Afterward the success of that excitement, I decided to tear it down to see what it was using under the hood.

Continue reading “Openspot Teardown”

AWS Gotcha’s – WordPress in Elastic Container Service

For a refresher, I decided to host my own WordPress blog on the AWS cloud.  This gives me an opportunity to get “hands-on” with various technologies and tools.  I was interested in running containers at cloud scale to see if this simplifies stuff.  Please check out Cloudy with a Chance of Containers for an architecture diagram and the decisions that drove the design.

While this should have been relatively straight forward, AWS usually has little gotchas where you think you need to make a change “here,” but you really need to change something “waaaaaay” over there.  I’ve documented the various gotcha’s and solutions so hopefully you don’t have to feel the same pain. Continue reading “AWS Gotcha’s – WordPress in Elastic Container Service”

Cloudy with a Chance of Containers

I write a lot to help organize my thoughts.  But most of my notes are either in a journal – there’s still something special about using a pen and paper, or in Word docs.  This creates a couple of problems – it’s hard to search, and I’m the only one to benefit from this effort.  Blogging is my way of sharing some of my ideas/thoughts that might help others, and to also make it searchable for my own needs.

Since this blog isn’t intended to be a revenue stream, I am not going to worry about site-optimization, pushing traffic, and all the other internet/ecommerce type stuff.  My goal is to keep things simple and the costs manageable.  The quick/easy would be to spin up a virtual machine, load it with a LAMP stack, install WordPress, and be done.  That’s what the super-basic WP hosts offer.  But then I was thinking what if something I write somehow really hits a cord with peeps?  This solution would crumble with traffic, plus it would be fragile.  Time to distribute it.

Sean Foley Blog WordPress Cloud Architecture
Sean Foley Blog WordPress Cloud Architecture

Continue reading “Cloudy with a Chance of Containers”