Successful Endeavours - Electronics Designs That Work!

Endeavour Awards 2018

Tonight was the awards dinner for the Endeavour Awards 2018. We are finalists in 3 categories and one of our clients, IND Technology, is a finalist for Outstanding Startup of the Year.

Endeavour Awards Ceremony 2018

Endeavour Awards Ceremony 2018

On this occasion we didn’t win but our congratulations goes out to those that did. Here is the list:

  • Technology Application Award – SPEE3D
  • Environmental Solution of The Year – Fletcher International Export
  • Outstanding Start-up Award – Robo Helix Pty Ltd
  • Global Supply Chain Integration of The Year – CST Composites
  • Best Industrial IOT Application – SAGE
  • Safety Solution of The Year – BOC
  • Exporter of The Year – REDAR
  • Australian Industrial Product of The Year – Carbon Revolution
  • Most Innovative Manufacturing Company Award – Watkins Steel
  • Manufacturer of the Year – BOC
Endeavour Awards 2018 booklet

Endeavour Awards 2018 booklet

We were pleased to share the evening with Water Synergy Group whose project we executes was finalist for Environmental Solution of The Year, IND Technology who were finalist for Outstanding Start-up Award and whose product we developed for finding faults in the electrical distribution grid was finalist for Australian Industrial Product of The Year and representatives from our local council, the City of Casey. Thanks Tom and Lydia for supporting us on the night.

Endeavour Awards 2018 WSG Casey

Endeavour Awards 2018 WSG Casey

One of the persistent themes of the night was the strong growth in Australian Manufacturing. So good news there. Our thanks go to Manufacturers’ Monthly for running the awards and supporting Australian manufacturers as strongly as they do. The official notification is at Congratulations to all the winners of Endeavour Awards 2018.

Endeavour Awards

Endeavour Awards

Successful Endeavours specialise in Electronics Design and Embedded Software Development, focusing on products that are intended to be Made In AustraliaRay Keefe has developed market leading electronics products in Australia for more than 30 years. This post is Copyright © 2018 Successful Endeavours Pty Ltd.

What is Code?

Those who write software refer to source code. This is human readable instructions for a computer to execute. Which either gets compiled to machine code in the instruction set the computer can execute, or is interpreted directly by a virtual machine. Java and Python are 2 languages that commonly use virtual machines. Whereas C or C++ are most likely to be compiled to machine code.

In this topic we will be talking about human readable source code.

Who writes Code?

Coders write Code. Sometimes they are also called Programmers, Hackers and Developers. To understand the difference, I like the definition given by Daniel Miessler who also blogs on technology topics.

Developer, Hacker, Programmer

Developer, Hacker, Programmer

  • Coder = Programmer = anyone who uses writes code
  • Hacker = Programmer who makes a specific something
  • Developer = Programmer who has been formally trained

So it is possible to be all 3 which is where we use formal methods and skills to make something specific by writing code to be executed on a computer.

Which brings us to the point of this post; “How to do it well“!

Writing Better Code

There is more than on dimension to this so for today I’ll focus on just 2, and my thanks go to Johannes Brodwall at DZone for stimulating my thinking.

Don’t do it on your own

Not many people only ever write code on their own. There are exceptions. But for most of us working on any substantially sized system, the writing of the code is shared. One of our current projects is updating and improving on a code base that was started in 2009. So 9 years ago. There have been 8 programmers contributing to it over those years and even though I was responsible for 80% of it originally I’ve contributing very little to the most recent round of new features or feature enhancements.

So principle number 1 is that great code comes from Collaboration. It needs to have the following qualities:

  • readable – first and foremost, write it for those who will follow
  • maintainable – lots of little principles like small commits, well abstracted, single responsibility
  • easy to modify
  • testable – test is a stakeholder so this should be considered in the design
  • reviewable

An interesting agile practice is Pair Programming. One types and the other reviews as they type. This allows more experienced programmers to teach others what they know by explaining as they go, and also to reduce the critical need for code reviews because the code is always reviewed. However don;t jump in too quickly if you think your partner is making a mistake. Maybe they are. Maybe you’ll learn something.

So code is made and maintained by a community in the long run. Whether is is an open community or a closed one inside a commercial business, it is more than 1 person’s responsibility.

So that is the first principle. You are writing for more than you. Make it useful to others.

Learn how to code On Purpose

There are many great resources you can draw on to learn how to code rather than by trial and error. I’ve bought many of the Pragmatic Bookshelf titles and found them very useful.

The Head First series from O’Reilly are also a great way to learn from the compiled wisdom of the industry to date. Start with Head First Software Development to get a good idea of generic Software Development best practice.

Head First Software Development

Head First Software Development

Explore methodologies and principles such as SOLID, Test Driven Development and many others. It will give you ideas. Very good ideas.

And there are many great online communities and resources you can leverage such as DZone. This is a very big topic so I’ll leave it at that. What I do recommend is that you don’t drift into this, you do it on purpose. Learn, adapt, and become better at coding.

The future will increasingly depend on 2 critical things:

  • better values based decisions about how we share this world together
  • better software – because we will eventually end up with software managing everything

Code well and prosper.

You can read the full post by Johannes Brodwall at how to write better code.

Successful Endeavours specialise in Electronics Design and Embedded Software Development, focusing on products that are intended to be Made In AustraliaRay Keefe has developed market leading electronics products in Australia for more than 30 years. This post is Copyright © 2018 Successful Endeavours Pty Ltd.

Battery Technology

Batteries have come a long way. There are still a lot of things we can do with existing technologies and this was covered in Making Batteries Better.

Lithium Ion Battery

The leading Rechargeable Battery Technology at present is the Lithium Ion Battery because of the high energy density and reduced weight compared to Lead Acid Battery technology. But there is a problem with them wanting to explode so a lot of care is required in both making and using the Lithium Ion Batteries. And there are different types suited to different applications including non-rechargeable Primary Cell application.

Sodium Ion Battery

An emerging Battery Technology is the Sodium Ion battery. And it has a number of advantages.

Sodium Ion Battery Pack

Sodium Ion Battery Pack

The advantages it brings to the table are:

  • not a rare material like Lithium
  • much more stable
  • can be charged faster
  • can deliver higher discharge currents
  • are able to supply the same voltage range (around 3.6V)
  • will be cheaper to make, and use, and recycle

The idea has been around since the 1970s but took a back seat to Lithium Ion Battery technology. Now Sodium Ion Battery technology it is coming to the fore and key researchers in Australia are helping to make that happen. The diagram below shows how it works. Click on the diagram for a full sized view.

Sodium Ion Battery Chemistry

This schematic illustrates the functioning of sodium-ion batteries. The high cost and scarcity of lithium are driving research to develop alternatives to lithium-ion batteries, especially to meet future needs in energy storage. One potential alternative is sodium-ion batteries. (Purdue University image/Vilas Pol)

Some further reading for those interested:

Better and more affordable batteries will be one aspect of adding storage to the Electrical Grid and make renewables more viable for base load demand satisfaction.

Successful Endeavours specialise in Electronics Design and Embedded Software Development, focusing on products that are intended to be Made In AustraliaRay Keefe has developed market leading electronics products in Australia for more than 30 years. This post is Copyright © 2018 Successful Endeavours Pty Ltd.

Endeavour Awards 2018

We are excited to announce that we are finalists in 3 categories for the 2018 Endeavour Awards. These are run by Manufacturers’ Monthly.

Endeavour Awards

Endeavour Awards

The categories are:

  • Environmental Solution of The Year
  • Australian Industrial Product of The Year
  • Most Innovative Manufacturing Company Award

And our clients are also in the award mix including:

  • Water Synergy Group – Waterbook
  • IND Technology – EVFD
IND Technology EFD

IND Technology Early Fault Detection

The awards dinner is on 12th July 2018 and we will find out who the winners are then. These are national awards so we are very pleased to be finalists and also pleased for our clients who are also finalists.

The full list of all finalists is available at Endeavour Awards Finalists and Manufacturers Monthly Endeavour Awards 2018 Finalists.

Successful Endeavours specialise in Electronics Design and Embedded Software Development, focusing on products that are intended to be Made In AustraliaRay Keefe has developed market leading electronics products in Australia for more than 30 years. This post is Copyright © 2018 Successful Endeavours Pty Ltd.

Electrical Power Distribution

Electricity is essential to the modern world. It is the power source behind the vast majority of modern appliances. And for large quantities of it, we are currently mostly burning things to produce heat to run generators to create AC power to transformers to high voltage power lines to more transformers, low voltage power lines and eventually, homes, businesses and facilities.

AC power distribution has become the dominant way power is distributed because it was easier and more reliable to make big transformers than do DC/DC power conversion. And to reduce heat losses in wires higher voltages at lower currents is a good strategy. This is Electrical Engineering 101 material.

Today however, this has changed. DC/DC power conversion is now routinely used at high voltages and is more efficient than a transformer. So that saves some of the burning which helps reduce carbon emissions and can help with a range of concerns from climate change to pollution.

A good example of this is Basslink which passes power from Tasmania to Victoria at 400kVDC. While there is some criticism that it doesn’t deliver the originally planned 630MW (only goes to 500MW) it is still a good example of this type of technology.

Reducing Losses

There are other options for reducing losses and Power Factor Correction is one of the primary ones. This process add leading power factor capacitive reactance to the distribution grid by putting capacitors in to correct for lagging current due to lagging power factor inductive reactance from the dominant loads in the system such as motors etc. A good example of products that manage this are the ABB CQ900 and CQ930 smart power controllers. Both Australian design and made products. These are networked and Smart Grid enabled.

ABB CQ900R Smart Controller

ABB CQ900R Smart Controller

The other strategy is reduces losses at the loads. So LED lighting, building management systems, better insulation and better business models that make it worth the while of the asset developers to consider the long term energy footprint of running the asset. This is covered very will in Natural Capitalism.

Natural Capitalism

Natural Capitalism

Improving Distribution

In Electricity Grid 2.0 and Global Power Grid we explored what a world electricity grid could look like if we started again now. And High Voltage Direct Current plays a key role as do renewables and storage. However, if it really is a world grid then the sun will always be shining somewhere and when it is winter here is is summer elsewhere so a lot of the issues with variability can be averaged out.

 

Improving Load Management

Companies like Rectifier Technologies Pacific design and make higher efficiency power supplies for backup power, uninterruptible power supplies and data centers. This is an important way to reduce power losses. It also won them some iAwards.

Rectifier Technologies Pacific

Rectifier Technologies Pacific

 

Another approach is to micromanage the AC power itself and this is being done by companies like 3DFS that are putting microsecond level load demand management into data centers. They call is Software Defined Electricity. and it works by cleaning up the fluctuating demand distortion of the AC sine wave our Power Distribution Network is meant to be delivering.

3DFS Cleaning Up AC Power

3DFS Cleaning Up AC Power

They have some very advanced ideas on how to go about this and already have products in the market. You can get a good understanding of their overall strategy from the video below.

An even more interesting idea is that of making devices smarter so they work with the grid to manage their own demand so the total process is more efficient overall.

And finally, Low Power Electronics devices can reduce the amount of power needed to achieve a function. Some of the technologies we are working with now allow up to reduce power consumption by 3 orders of magnitude.

So there are lots of ways we can do it better and if we work together and use all the tools available to us then it is likely we will succeed at achieving that. The place to start is knowing it is possible.

Successful Endeavours specialise in Electronics Design and Embedded Software Development, focusing on products that are intended to be Made In AustraliaRay Keefe has developed market leading electronics products in Australia for more than 30 years. This post is Copyright © 2018 Successful Endeavours Pty Ltd.

What is wrong with Diodes?

At one level, nothing. The humble Diode conducts current in one direction only, can have very large voltage blocking capabilities and a Schottky Diode can have lower forward voltages so it dissipates less heat.

diode transfer function

diode transfer function

All very well and good while currents are modest. But very high currents lead to high power dissipation in the Diode. So I was very interested to read about a new method of blocking reverse current at a fraction of the forward voltage drop of conventional diodes.

Honeycomb Lattice Magnetic Diodes

Honeycomb

Honeycomb

A new Honeycomb Lattice built at nano scale operates on magnetic rather than electric fields to control current flow. The result is a significant reduction in forward voltage. And the technology may prove capable of creating magnetic transistors with similar advantages.

Honeycomb Lattice Magnetic Diode

Honeycomb Lattice Magnetic Diode

These are very early days with patents lodged and a lot of work required before it is ready at commercial scale but it is always encouraging to see new breakthroughs like this. And technology breakthroughs like this are key to future opportunities for Low Power Electronics.

Successful Endeavours specialise in Electronics Design and Embedded Software Development, focusing on products that are intended to be Made In AustraliaRay Keefe has developed market leading electronics products in Australia for more than 30 years. This post is Copyright © 2018 Successful Endeavours Pty Ltd.

 

Australian Manufacturing PMI

Unlike what you are probably hearing from politicians, Australian Manufacturing is one of the current success stories of the Australian economy. Currently the second highest growth sector in Australia, Australian Manufacturing has been in growth every month bar one since mid 2015. Check out the chart below from Trading Economics Australian Manufacturing PMI.


source: tradingeconomics.com

Which is really great news for Australia because Australian Manufacturing:

  • creates fundamental value
  • creates more indirect jobs around it than any other industry
  • spreads wealth more evenly through the Australian community than any other industry

So jobs, equitable distribution of wealth and a thriving service sector are all better because of local manufacturing.

Australian made products

Our focus is on products you can make in Australia. And profitably of course. Some recent examples of Australian made products we have worked on are:

And quite a few we can’t tell you about yet.

Successful Endeavours is a leading economic indicator business. When we get busy, the Australian economy will be going through a lift in 6 to 12 months. And we are very busy right now. Which I am taking as a very good sign.

Some additional resources if you want to know more are:

Successful Endeavours specialise in Electronics Design and Embedded Software Development, focusing on products that are intended to be Made In AustraliaRay Keefe has developed market leading electronics products in Australia for more than 30 years. This post is Copyright © 2018 Successful Endeavours Pty Ltd.

Samantha Gash

At the most recent Casey Cardinia Business Breakfast I had the opportunity to hear Samantha Gash speak about her life and discovery of running.

Samantha Gash

Samantha Gash

Life beyond the comfort zone

From a high school student who was always the last one picked for a sports team, she was not renowned for her physical abilities. Yet she ended up running and ultimately running way beyond what most can imagine.

The Freedom Trail, the equivalent of 55 marathons in a month in South Africa, is an example of what she has done. It is always about the Why rather than What.

“A state of relative comfort creates a steady level of performance”.
Psychologists Robert M. Yerkes & John D. Dodson.

If you want something you’ve never had, you have to do something you’ve never done. The only way of finding the limits of the possible is by going beyond them. A marathon seemed an impossible challenge. At the 32Km mark of her first marathon Samantha felt like pulling out. But her run partner told her to “suck it up” so she did. The finish made her feel stronger than ever before in her life, but it was also not the life changing challenge she had expected to be. So what now?

“The challenge of running is 90% mental and the other 10% is in your head”.
Ray Zahab

If you take a strategic approach and put your ego aside then you can achieve things you can’t any other way.

Samantha Gash - ultra-marathon finish line

Samantha Gash – ultra-marathon finish line

Show and accept vulnerability

In an ultra-marathon you have to take the long view. If you go out hard and hit the red line you probably can’t get back. Start slower than you think is necessary so you have it in you to finish. It is a marathon, not a sprint.

The armour of toughness

Things will happen that we have no control over. There will be times you feel like giving up. You might even stop for a time. But toughness means you come to a moment when you realise you can’t let someone else decide your future. We are more defined by our response to something than the action that caused that response.

PASSION + PURPOSE + PROCESS

Identify your passion – the root meaning behind passion is suffering. How much are you prepared to suffer for something you believe in? What are you prepared to suffer for?

Connect to your purpose – without purpose, why choose to constantly suffer? The purpose has to be bigger than the suffering.

Process – prepare, pick a diverse team, you need other perspectives, celebrate success.

From object to vehicle

The running used to be the objective. Finishing the race was the end goal. Now, for Samantha, it is the vehicle, not the end goal. The end goal is raising awareness through vulnerability and suffering. That is not how it started but is where it has led to.

Samantha Gash - run across India

Samantha Gash – run across India

What has this to do with Business?

There is a theory out there that business is all about money. The objective being to strip mine the economy of wealth so it is concentrated in a few hands while the rest wonder about how they missed out. This is not a theory I subscribe to. Business is a vehicle. As in the case of Samantha Gash the run was the vehicle. Business is the same. Once a business is profitable and running well, the game changes. Now you have a vehicle you can use to change the world. Now you have a vehicle that allows you to partner with others (clients, suppliers, staff) to do something bigger together than any of you could do on your own.

Watch Samatha Gash

Here you can listen to Samantha present her story and perspectives live.

Successful Endeavours specialise in Electronics Design and Embedded Software Development, focusing on products that are intended to be Made In AustraliaRay Keefe has developed market leading electronics products in Australia for more than 30 years. This post is Copyright © 2018 Successful Endeavours Pty Ltd.

Good Documentation

Good Documentation makes it possible for other people to leverage work already done. It can be the difference between something being usable and it being scrapped or ignored. We have already looked at some aspects of how Software Documentation can be created. An example being shown below.

 

Doxygen Call Graph

Doxygen Call Graph

This is only one form of documentation. To use a Software Module you will want the API definition. Here is an example in Doxygen format of a readily usable interface. Not much mystery here. Note that the hyperlinks have been removed to stop is using links you can’t access. Normally every definition is hyperlinked so you can go right to it.

Module MS_RNG

A 32 bit Pseudo Random Number Generator which passes the Die Hard test suite for randomness. It also provides 8 and 16 bit random numbers and a complex seed arrangement.

Functions
void MS_RNG_Seed (U32_t seed1, U32_t seed2)
use the seed values to churn the seed as much as you can
U32_t MS_RNG_Get_U32 (void)
get the next U32 value in the random number sequence
U16_t MS_RNG_Get_U16 (void)
get the next U16 value in the random number sequence
U8_t MS_RNG_Get_U8 (void)
get the next U8 value in the random number sequence

Function Documentation

U16_t MS_RNG_Get_U16 ( void  )

get the next U16 value in the random number sequence
Returns U16 random number

 

  U32_t MS_RNG_Get_U32 ( void  )

get the next U32 value in the random number sequence
Returns U32 random number

 

U8_t MS_RNG_Get_U8 ( void  )

get the next U8 value in the random number sequence
Returns U8 random number

 

void MS_RNG_Seed ( U32_t  seed1,
U32_t  seed2 
)

use the seed values to churn the seed as much as you can

Parameters

seed1 = first seed component
seed2 = second seed component

Returns void

So it should prove straight forward to use a module documented like this. Of course I’ve picked a simple example.

O’Reilly recently published a great article on this and so I’m going to summarise here and you can check out the full article for the rest of the details.

  • Write documentation that is inviting and clear
  • Write documentation that is comprehensive, detailing all aspects of the project
  • Write documentation that is skimmable
  • Write documentation that offers examples of how to use the software
  • Write documentation that has repetition, when useful
  • Write documentation that is maintained and up to date
  • Write documentation that is easy to contribute to
  • Write documentation that is easy to find

Seems perfectly sensible to me. If you want you software to be reused, make it as inviting as possible for subsequent developers to be able to engage with, understand, and quickly leverage what you have already done.

You can read the complete article at the eight rules of good documentation.

Successful Endeavours specialise in Electronics Design and Embedded Software Development, focusing on products that are intended to be Made In AustraliaRay Keefe has developed market leading electronics products in Australia for more than 30 years. This post is Copyright © 2018 Successful Endeavours Pty Ltd.

Software Development Estimation

in Software Costing we looked at some typical ways of determining the likely cost of a Software Development project. One way was to look at how much typing was involved. This is not considered the best approach as the cartoon below demonstrated.

Software Estimation

Software Estimation

I prefer to spend more time thinking about the problem and less time typing. Among other things this reduces the amount of typing required.

The other example was by looking at the study by VDC Research where the median Software Development project had a cost of US$12.5o per line of code. Which is also very expensive by our reckoning. But these are actual figures. The hard part is working out how many lines of code (LOC) will be required before you have written them.

Estimation by Function Points

So I was interested when The Embedded Muse, a software development newsletter authored by Jack Ganssle, published some data from Capers Jones who is a legend in the Software Development industry for his statistics on the Software Development Process.

Capers Jones & Quote

Capers Jones & Quote

My first thought was that I fully agree with the quote. Let’s have a look at it in detail.

High-quality software is not expensive. High-quality software is faster and cheaper to build and maintain than low-quality software, from initial development all the way through total cost of ownership.

The assertion is that if you have a way to measure Software Quality, and you stick to good Software Development Process and the creation of High Quality Software, the overall cost will be lower. This might seems counter intuitive to some of our prospects given the development process requests we get, but I think it is spot on. Here are the other items of interest.

According to Capers Jones, a very rough guide to estimating the number of people needed on a project, and the project’s duration, is:

  • Number of developers = (function points)/150
  • Calendar months = (function points) x 0.4
  • One function point is approximately 130 lines of C Code

So for a typical 20,000 lines of C Code project, we would expect 154 function points with 1 developer required and it would take 5 years. If I look at one of the Industrial Control projects we did then that was 60,000 lines with 3 developers (that part works) and 8 months overall (rather than 5 years). So I’m not convinced the time component of the formula works. Maybe it is too heavily influenced by larger projects. But the number of developers seems to be about right.

Again, these are actual project figures and not some abstract model. And if you don’t use good Software Development Process then the cost of debugging and fixing issues in the field will typically dwarf the cost of writing the code.

Software Development Metrics

So I thought I’d do a summary of the Software Development Metrics we have accumulated over time as this may help with the Software Estimation process. This is what it looks like in our world of typically smaller projects (less than 100K LOC) reflected through the data above:

  • Number of developers = LOC  / 20,000
  • Number of months = LOC / ((number of developers) x 6600)
  • Cost of development = $4.80 per LOC

This assumes good process and average project difficulty. Things that will push a project way past this are code space constraints, processing power constraints, poorly defined requirements and substantial changes of direction mid project. But it does give some way to at least know the ballpark.

Successful Endeavours specialise in Electronics Design and Embedded Software Development, focusing on products that are intended to be Made In AustraliaRay Keefe has developed market leading electronics products in Australia for more than 30 years. This post is Copyright © 2018 Successful Endeavours Pty Ltd.

Next Page »