Experiment: Building a complex configuration one step at a time.

Step 1 – We are building a configuration to load balance a web service together. Won’t that be fun!

If you are new to the A10 ADC load balancer this may be interesting to you. If you use iRules with the F5 future steps may provide perspective. Experts in this area are encouraged to correct and enhance this content by emailing me ian@mcyork.com

That’s all for day one – exhausting right! Stay safe.

Bitcoin vs Fiat = MP3 vs RIAA – lost before it begins

A battle that’s lost before it really begins. Simply put I see these cryptocurrencies as exactly like MP3. Wait for it… yer paying in Crypto for bread and eggs.

Apple saw mp3 and digital music as a way forward. Bitcoin and the leading cryptocurrencies see the gap and will become the new and dependable (gold) standard.

Printing money to balance the books will become unacceptable, soon.

Get ready to see it all play out one more time.

Something is not right with the boards

They came in a while ago.  I figured out the double-sided surface mounting.  Just flip them over and the parts don’t seem to fall off :).

One board, I cut the traces to enable it to act as the MCU in (source of the signal from the Arduino).  This bypasses the local LEDs and just provides a signal to the serial chip.  The idea here is that the Arduino and the first board can be remote to the first set of LEDs.  That seems to work as expected.

The second board works – to a degree.  The first LED comes on and works just as desired.  Meaning the serial communication from the first board is also working as designed.

For the life of me, the second LED on the second board – not really working.

Could be connections – might be the layout – have hit a bit of a roadblock.

More updates when I’ve had some time to review the situation.

Addressable LEDs over distance – update – with pictures

Made progress. Have tested a number of different configurations and now have something (renderings) to show for it. Thank you http://3dbrdviewer.cytec.bg/ 3D Board Viewer for the images.

Reminder – long post about where this came from. Now it’s about building it.

The main board is simple with 2 LEDs on it. By default, it receives serial data, runs it through the LEDs (Neopixels), and then out the other side again as serial (rs485). There is the need to source the signal from a microcontroller. It was desirable to not make a special board for this. To that end, there are different traces on the board that can be cut to change the behavior of the one board. Cut a single trace and a pin (header of three pins) can be used as TTL data IN for the first LED. Cut a different trace and you bypass the LEDs but get the benefit of converting the TTL to serial for the benefit of the next board and so on in the chain. To make it even more fun cut a pair of traces and the IN and OUT of the board are now capable of driving an arbitrary local set of LEDs. To demonstrate this feature a mini shield board was designed with up to 8 LEDs on it. Solder pads on the shield can be used to select the number of LEDs you solder to it.
Raw parts and board costs for the main board are ~$10 currently. A run of many many boards and part selection optimization could bring this price point significantly lower. Price is noted here but not yet a critical goal.

“top” of main board This is the functional top of the board where the two default LEDs are mounted. Power and data come in and out the left and right sides of the board.

“bottom” of main board This is the functional bottom of the board.  You can see the voltage regulator and the optional traces / pads that can be cut to modify the features the board provides.

Don’t those look just fantastic?  Here is the board layout before it is rendered.

The raw board design before sent to manufacturer.

The shield was a fun bit to try to make. Again these boards are working only in theory today. Parts and boards are in the process of being made and shipped. Once they arrive soldering and testing of these final solutions will commence.

Here is a rendering of the shield with the accompanying board design image.

Rendering of the LED shield with connection headers to join to the main board.

Image of the shield board design. These images are screenshots from the Eagle PCB CAD design tool (free you should get a copy).

Persistence is the plan – addressable LEDs over distance

This is a bit of a story – longer than your normal Internet consumable.  Bookmark and come back when you have the time (you’ve been warned).

Been working on a project for some time now…  I want to have addressable LED lights (specifically NeoPixels) many feet apart.  One per fence post (66 posts @ 10-foot separation on average) and run Cylon like red lights and all sorts of animated fun back an forth.

Quick note: an addressable LED is a type you can have a long string of (or a grid or ‘each one on a fence post’) be a different color and you can change those colors to any other color anytime.

I can get these pixels to work over 6 or even 10 feet apart but not for any significant distance when chained together.  Every large gap introduces errors – lights don’t glow the color you expect – random errors crop up often (1).  I have not found a product out there to help with this problem.  Either for connecting two stings (a distance apart) of addressable LEDs or for having single LEDs in a long string each separated by an arbitrary distance.  Two years ago I started to work on the problem.  I was thinking this shouldn’t be too difficult.  Sadly Google did not provide the instant satisfaction we all expect.  The results of Google searches suggested people live with this limitation of Neopixels and the quirky (not well understood) communications protocol.  The result seems to be to limit the design around a limitation.  That’s all I could find.  Not good enough!

Several people mentioned how there are specific timing issues with the bit banging that’s required to drive Neopixels,  and I agree there are limits and limitations.  Two specific Google results stood out.   Tim’s (2) work was the first I came across.  This told me I did not have to rely on the status quo.  There was more to it than what the popular opinion had gleaned.  Then (very recently) I found Josh’s (3) epic posts that kicked me into high gear.  They both looked at the timing specifications of the chip.  Yeah ok. Those are the rules – don’t break them.  But are they the rules?  Suffice it to say these two showed me there was more to a data sheet than first meets the eye (Fine! I have no idea how to read most data sheets, but this one (4) is fairly short).  Now I knew (believed) timing was not going to be a limitation AND I had been looking at the wrong parameter assuming it was the timing causing the color issues.

Ok, timing is important but was that my problem?  Actually no.  The issue I had was signal propagation over distance.  A nice square wave from your Arduino becomes a wavy wave when you try to make it 10 feet or more (many times in a row without error).  Some bits will be fine, some will be only a bit off (see the pun there).  The problem again is these little errors accumulate quickly (and randomly) and by 3 or 4 10 foot lengths out – you’ve got random blinking colors and no known state you can predict.  Mush.

Retrospective: How did it take two years to figure this out?  My initial budget was zero.  My initial goal was to light up 66 fence posts with an addressable led each 10 feet apart. So even at $5 a post, I was in a bit deep for a $0 budget.  The designs and prototypes had to be very very cheap.  THAT (knowledge/thinking) was THE limitation.  Also I only really pick this up every few weekends.

Basically, to get where I’ve come, I gave up thinking I’d ever build the fence post lights I had originally envisioned.  Letting go of the project as a reality gave me the latitude to think more deeply about how to solve the problem.  Odd to think of it this way, but you may have to let something go to see it clearly.  It’s time to mention solar and wireless.  If I built this with solar the side effect would be each node also needed to be wireless.  If I just did it with power and wireless – still each node needed to be wireless.  This implies a very different way to communicate with the nodes and keep things in sync.  I am sure it is a project I’ll do someday (I have some crazy ideas for this) but it is not the goal of this project.  The goal here is to treat all the lights in the “string” just as if they were on one short 66 led strip.  So don’t say “hey how about wireless or solar”.  That said a solar power source for the entire system will be part of the final project – just not one per post.


More components are needed.  I was looking at serial communication protocols to solve the problem (they’ve been doing this forever, right).  I went to my weak spot and reviewed all sorts of data sheets of serial chips.  None of the pictures (that’s all I really look at) showed a scenario that seemed like it solved the problem.  Now, what is it about data sheets I learned earlier?  Ignore the status quo they don’t depict and consider all cases.  The 485 serial bus communication chips are where I focused.  Why are all the chips bi-directional – is that a requirement of the buss electronics or just the way most people use them? Turns out; it’s how they use them.  You can take the transmit of a chip and send it to the recipient of another and then transmit from that chip to yet another chip’s receive (not the original transmitter).  This now sounds like what I am looking for.  A one way, infinite, propagation of a signal to an infinite set of Neopixels!

So that looks a bit like this image.  Between pin 2 and 3, you put the LED and supporting items needed like capacitors and maybe resisters (not sure yet).  The chip provides the conversion of the TTL signal from the LED to serial 485 (5) signals.  The chaining of these together, again and again, is that thing I had not been finding in my searches.  I had no idea if this would work.  So I bought some chips, designed some cheap boards and tested it.  You can’t discount the need to be testing these things in real circuits – you’ll find issues to overcome every time.  Once I got past some learning curves and stupid mistakes I was able to get LEDs working reliably at least 70 feet apart from each other.  Yeah!

Now what

Build a more production ready board and order the surface mount chips and items needed to test this with 10 units over 100 feet (10-foot separation per node).  Bonus let’s put 2 LEDs per board for extra brightness and even more animation options!

One thing each board will have is a voltage regulator – this will certainly increase the cost (when I get to actual budgeting for this project).  It will be required (so far as I can tell).  5 Volts drives the LED no problem but voltage to has an issue over distance (it drops fast).  The test boards are designed to be linked together with 4 wires.  2 for power and 2 for data.  The regulator enables me to run up to 30 volts over the power wires.  The regulator enables me to run the chips and LEDs at the required 5 volts.  The board passes through the 30-volt power to the next board and the next and so on.  At some point, the voltage reaching a board will be below 6 volts (the threshold for stable regulation down to 5 volts).  At this point, we’ve either made it to 66 LEDs (660 feet) or something else needs to be done.  One option will be to inject the voltage in the middle – this means only 33 in each direction – helping the power distribution.  330 feet is still a distance so if that can’t be met then 2 or more points for power injection need to be arranged.  And there’s one more issue…

Current.  Volts I think I can manage as above but once you string a bunch of LEDs together they each use current and it all adds up.  2 LEDs at full brightness use 120 milliamps (60 each) – not a lot (and the voltage regulators can easily manage that per board).  Where it adds up in across the power lines and across the board’s copper traces that support the pass-through path.  Let’s say the voltage gets to the 66th LED without an issue — what total current (amperage will be required). 120 milliamps * 66 LED = 7920 milliamps or – 7.9 Amps.  Now maybe the math needs to account for the power usage @ 5 volts of the LEDs so let’s see what that might look like (we are in the” I don’t know for sure” zone here).  (0.120 Amps * 66 LEDs) * 5 Volts = 39.6 Watts.  That many Watts @ (let’s use) 24 volts, is only 1.65 Amps.  So my guess is if the boards and wires can handle this 1.65 Amps then 66 nodes (120 LEDs) should run without failures (failures = fires and melting of things).

Status – currently awaiting boards from the prototype manufacturer.  Still trying to figure out how to 2 side surface mount when they arrive.  Ordering surface mount parts once boards have a shipping date.  Also will order a solder stencil once boards have a shipping date.  Boards have 2oz copper (more than 1oz) to manage the current better (I hope – no idea).

When they arrive I’ll run a load (lots of current) through a board until it fails.  Probably the best way to test the limit.  I hope for some spectacular flames or something worth reporting on.

Lastly, once everything works check out etc, I need to figure out how to mount these on fence posts in a weather resistant manner.  Epoxy, silicone, hydrophobic coating – no idea there yet.  Proper defusing of the LED light is also to be considered.  Currently, I’ve found translucent white water bottle caps to be very practical – they may get incorporated into the final design.

I’ll edit the above as I progress.

Foot notes:

1 – Adafruit best practices

2 – Tim’s Work

3 – Josh’s work

4 – Neopixel datasheet

5 – Serial 485 wikipedia


NeoPixel Link connector board

Building an array or grid of leds from Neopixel strips?  You might want one of these little boards I’ve come up with.  Here is a video (terrible) of me soldering together a few strips into a 3 x 42 array.  I found them to reduce the time and mistakes made when using individual wires.

 OshPark is where you can oder the boards.

Questions?  Please email me (ian @ mcyork.com)


Never loose my keys again!

These came in the mail today. Simple little units.  Takes 20 seconds to join them to your phone.  Never lose your keys again, right?  What did I do almost immediately, lost one!  Put one in my pocket to show a friend at dinner last night.  It must have come out of my pocket as I pulled out my specks.  The good news is – now I get to go back to my friend’s place and look for it!  In fact, I am going to ask him to load the app and see if the global mesh network of apps finds it for me.

Time passes… the below will be written after I get over to my friend’s place.

[Currently intentionally left blank]



What could you possibly use 8 relays on a board for?

I’ll be honest, today is payday and, I’ve been thinking about improvements to existing projects, surf’n the web looking to buy!  Then I thought of my binary Christmas tree display.  I remember seeing an 8 relay board on the web a long time ago, and thinking what could I use THAT for?  I had to come up with an excuse to buy it of course.  I convinced myself I could build a holiday light display with a twist.  I decided I’d flash the lights in binary.  Check it out if you have not watched it yet.

Now that was a fun project.  How do I expand on that in the context of “the farm”.  There’s a solar array in the field  – ideas?

I can’t say I bought this one below – but they all look about the same.  When you are just having fun with an Arduino you can afford the 8 pins to drive these things.  I suspect some have a BCD to relay decoder chip built in.  That would reduce the number of pins you need to dedicate.  Or you can use a shift register (those are fun. Look em up if you have not considered them in your project yet).

5V Eight 8 Channel DC 5V Relay Switch Module for Arduino Raspberry Pi Arm AVR | eBay

So now you’ve got a project for yourself to figure out.  The code for an Arduino to do the above binary tree display was fairly simple.  You can get fancy if you want.  Where you’ll want to be careful is how you wire up the high voltage side of the system.  I took a lot of care modifying a power strip.  This had the advantage of 8 sockets ready to plug into.  Go for it – be safe.

The perfect way to actually get and be rich

I am a keen (if not recently) fan of saving money for the long haul. In the past, my objective was to pass away with the most debt possible so as to maximize the present. A cheeky goal of course – not terribly practical. In fact, when I review, I’ve not been THAT good at accumulating the massive debt needed to “be rich”. While on a staycation this week I’ve put a lot more thought into what money is and what money does. I even read a few books. Here’s the simple answer, start saving now. You are not saving for a car, or a new this or that, you are saving for your life without chains. Savings are not a nest egg to spend later. They are invested to work for you when you no longer want to work. The sooner you start saving the sooner you can choose not to work. The horizon for that moment in time will seem very far away to some today. You may be thinking a savings plan is maybe for my kids, and it is, but you too can benefit from taking definitive action (either for yourself or your kids). I realize I have been saving for a long time by side effect (RRSP, 401k, ESPP and other work benefits). Now I am saving with intent. When you can quantify your goal you get far more value from the effort of saving. And it is an effort. Let’s make it automatic, a part of the cost of living today, and a habit.

This book got me started thinking in this direction. It may or may not help you. It may or may not be right. What it did do is open my thoughts to possibilities I had not considered. At the least I found it empowering to know that the amount of saving you need to retire is, in fact, quantifiable – hence goal worthy.

Once you’ve read the book – well now – bookmark this link (my personal invite to you) – it’s a simple site where you can start those investments now.

Here’s the link to the book on Amazon – if you don’t get it now put it on a wish list for later – reading it now is, of course, my personal recommendation.

The autonomous road

Let’s begin with today and see how full autonomy in vehicles might progress.  Today there are some auto-driving cars, but we know they are still just safety features that help you avoid collision more than anything else.  Soon, however, these features will be able to take full control of the car and you can sit back and be just a passenger.   Once this point is reached there will be rapid changes in where and how driving is done.

Freeways will be split – not like HOV lanes are today, no.  Imagine all the Northbound lanes closed to all cars where a driver is in control.  The southbound lanes will be split down the middle and drivers will be using this as their new north-south lanes.  Those northbound lanes will be only for fully autonomous cars.

But there won’t be any lanes.  Traffic will run swiftly in both directions on any side of the road that works for the flow of traffic.  You may be heading South at a full clip when the car needs to move over to the left (into oncoming traffic) and the cars will make a path – the car will float over to the left and exit as needed.  A bit like the video here but the water is northbound and the car is the swing.

Traffic signs will no longer be needed and perhaps digital markers will replace them.  Easier for the car to know what’s up ahead if there are sudden changes beyond its ability.

Once the freeway is 100% autonomous then all old lanes in both directions will be used (again in any direction) and the median will be removed.  There probably won’t be any lines painted (waste of paint by now).

Autonomy also brings a freedom from congestion.  Your car could pick you up – drop your kids off at school, drop you off at work, go backhoe and be available for your spouse all day until it needs to grab you or the kids or both.  Schedule conflict? Uber-like services or your friend’s car will fill in the gap.  With cars always doing work or being there for the person that needs it – you have fewer cars, less need for parking in a city.  If these cars are gas or electric they can go fill themselves up without wasting your time or more importantly encouraging the (now mythical) range anxiety.

Sure there’s trucks and buses and other large vehicles that will need to be developed too.

Old cars will still have a life – where you can use it on country roads and enjoy the top down or whatever.  Not forever, but don’t worry most of us will outlive our nonautonomous car and the nostalgia we have for them.

This is not tomorrow – this is the final destination. Well until these things can fly of course.

Enjoy the future.


— Range anxiety:  I don’t have it.  When all-electric cars have a 200+ mile range and (a big and) people charge their car @ home when they sleep, the anxiety effect will be gone.  Even better the fully autonomous car will always know its limits and will be sure to charge when necessary and keep that in mind for longer trips.  Also lastly; battery swap we know is possible and fully automatic and autonomous battery swap is clearly within reach.