Today I was at the SEMIP Innovation Showcase 2012. If you aren’t aware, SEMIP is the South East Melbourne Innovation Precinct and aims to improve collaboration between manufacturers in Melbourne’s South East and Research and Innovation providers, principally the CSIRO and the Tertiary Institutes and Universities.
I took some notes and thought I’d share the highlights with you.
Predicting Future Trends
Dr. Stefan Hajkowicz of the CSIRO shared some research findings on future trends from the CSIRO Global Foresight Project. He also did a comparison of Australia and Switzerland looking at what we can learn from a country that has already made the transition we need to make now that we are a high cost economy.
Dr. Stefan Hajkowicz
The take away message for me on this is that Australia had better focus on making higher value products and providing high quality experiences to our customers. The mining income stream is currently in boom but productivity is declining as we tap out the richest ore bodies and need to work harder to extract new material from poorer ore sites. So we have to make sure we have something of value to offer once that runs out.
Switzerland has positioned itself in a few sectors and is doing very well. Some examples of these sectors are:
Precision Machine Tools
And they have a signature product, the Swiss Army Knife.
One of the Questions raised by Stefan was “What is Australia’s signature product”? If you have some ideas, please post them as comments. I’m still thinking about that particular question but it would be good to have a list to consider.
Clean Green Technology
There were 3 presenters in this breakout session and 3 very different stories.
Peter Voight shared the story of Clean TeQ who provide water and air purification products and had to bootstrap their company the hard way, all funded themselves, until they got to the size of going public in 2007. Perter gave an interesting analogy to the current climate debate.
What do you do when the oil warning light on the dashboard of your car comes on while you are driving?
do nothing – it probably doesn’t mean anything
do nothing – it is a conspiracy by the oil moguls to force you to buy more oil than you need. There isn’t anything really wrong.
pull into a service station, get some oil and put it into the vehicle
By implication he suggests that we should all treat the current trend in the environment seriously because ignoring it will lead to a disaster. I agree. We can do much better at looking after this planet than we currently do. And even if the environment does turn out to be less fragile than some fear, reducing pollution and cleaning up our act is the right and best thing to do either way.
Peter also described the process Clean TeQ went through to get up and running and how hard it was. A process he called the “Valley of Death”.
My take away from Peter’s talk was that we need to better support viable and valuable business start-ups in Australia.
Marcel Kamp of Marand Precision Engineering shared about their commercialisation of the CSIRO high efficiency electric motor for solar racers. The CSIRO had an efficiency of 97.4% and Marcel shared how they were able to lift it to 98.3% and also make it a viable product to manufacture.
I’ll skip the engineering details this time because my key take away was that the CSIRO are a valuable and cost effective resource where your need and their projects or capabilities overlap, but you need some persistence with the process. However once you are connected, then other opportunities can flow in both directions. This is a classic SEMIP success story.
The final speaker in this session was Roger Knight of AquaDiagnostic. He shared about their PeCOD technology which came out of the University of Queensland and measures organic pollution levels in water using a process that takes minutes and doesn’t use hazardous chemicals. The standard test takes hours and uses very nasty things like Mercury and Sulphuric Acid. They are now selling test kits and equipment around the world. The technology is manufactured at the STC in Melbourne and protected by patents and meets a need that will only grow in time.
My key take away was that if you have a good idea, you might have to move to the right place in order to get it to market. By moving to the STC, AquaDiagnostics placed themselves in the middle of the cluster of companies, like MiniFab, that became pivotal in their success.
How to build a company
Amanda Gome of SmartCompany then shared her story of leaving her job at BRW to set up SmartCompany, and her philosophy on how to go about it. I was very impressed. Amanda is a passionate and articulate presenter who clearly lives the lessons she shared with us.
Here is the executive summary:
Don’t stuff up the message – stay on message and stay clear
Don’t lose focus
Innovation must be integral. Don’t be scared of the word – think of it as problem solving.
Make it easy for people to buy from you
Don’t hate your competitors – some you can make friends and do profitable deals with
Don’t be a ‘me too’ – set a high barrier for competitors to have to hurdle
Start with enough money
Don’t sell yourself cheap – in fact, always look at how to charge more
Don’t hire duds – if you do, fire them as quickly as you can
Don’t run at a loss
Don’t stick your head in the sand – stay aware of news, industry trends, what others are doing
You job is to lead and strategise, let others execute
Don’t be afraid to offer equity – you will need capital if you build a successful growing company
Don’t do old style business plans – constantly review and be agile
Don’t be afraid of your staff, empower them and let them get the job done. They should know how to make the decision themselves.
Don’t hate nerds. These days we are all technology companies. Embrace it.
Don’t burn out. Your greatest value comes from longevity so look after yourself
And Amanda told a funny story about the day she forgot her skirt. The lesson being that things won’t always go well, but deal with it and move on.
My take away is this. If you are going to do it, then do your homework, point it in the right direction, and go for it with courage and conviction.
Doing business with Siemens
Jurgen Schneider then shared how Siemens views the world and how to go about doing business with Siemens. Siemens is huge with 460,000 employees, R&D groups everywhere and $4B in R&D this year. And Siemens has structured its business around the 4 megatrends they identified at the start of this century:
So to engage with them, you have to be able to chow how what you have is relevant to one of their offerings in one of these megatrends. Be specific. Be sure your business pitch is carefully thought out and offers value to the potential partner. And Jurgen gave 6 tips for presenting and for engaging with Siemens:
Be unique. You have to offer something they can’t get elsewhere.
Remain Persistent. The likelihood you get in front of the best person first time is low in an organisation that big. Keep trying. One ‘No’ means very little.
Think Big. Siemens will want it in large quantities if it goes ahead. How will you scale up?
Plan for fast growth. Show the plan. Justify it.
Prepare for scrutiny. After you get an MOU, the Siemens contracts team will go through you very thoroughly. Prepare for one of your key people to be completely consumed for 6 months by this process.
Build on existing friendships and partnerships. Who you already know could be able to introduce you to the right person.
That sounded pretty daunting. But it helps to know in advance. My take away was that if you want a slice of the Siemens pie, you have to be prepared to do what it takes to get that.
Professor Arthur Lowrey showed what the project looked like from the Monash University perspective and I was impressed by how practical and pragmatic he and his team were. This is an excellent example of how industry and Tertiary Institutes can collaborate to great effect.
My take away is that you need a team to do a project like this, and there are a lot of elements to that team. This is hard core biomedical and so their are people who will get operated on and have electrodes put inside their skull by surgeons. So it isn’t just electronics and software. Sure there is a lot of that, but it is also all the other things you need to for a project like this.
Erol Harvey of MiniFab then shared in their role in creating new ways to package the electrodes and electronics that get implanted. This is brand new technology. And the research on this project is being done by each of the 3 partners. This is not a classic University IP sold to an industry partner to commercialise. Everyone is creating new IP.
My take away from Erol’s presentation is that we need to keep advanced manufacturing alive and well in Australia if we want it to remain the country it is today.
The final presenter was going to be Jefferson Harcourt of Grey Innovation who are doing the PCB, ceramic hybrid and core software design for the product. Unfortunately for us, Jefferson had to leave early as his wife had gone into labour. But it is clear that this is a project in which everyone is pulling their weight big time. I was looking forward to Jefferson’s presentation as we have previously done some business supplying Grey Innovation with specialist R&D services and they handle a very interesting mix of projects.
Government Support For Manufacture
We concluded with a speech from Mark Dreyfus MP in his role as minister for Climate Change and Energy Efficiency.
Mark Dreyfus MP
The government wants forums like SEMIP to succeed and recognise the value of local manufacture. Clean Technology funding will allow local manufacturers to improve their energy efficiency, and that is a good thing. But there isn’t much being allowed for creating the new technologies that will allow that process to continue, or that will result in new products, new companies and new jobs in the region.
My take away from this is that you have to find a way to do it yourserf. The government is not going to fund it for you.
BRW recently ran an article by Matt Barrie on business ideas that are worth pursuing. If you haven’t heard of Matt Barrie, he founded Freelancer. In the article he wrote about business ideas that interest him, and what doesn’t interest him. In particular he had a sideswipe at us Engineers about our focus on the technology and solving those problems first instead of testing whether the idea has a viable market. As an Engineer who has had to learn about business in order to run one, I can agree with some of what he said. In particular, we can become so focussd on the technical problem that we don’t make sure there is a real business case for the final product or service.
Here is the short list of what Matt Barrie doesn’t like in a business:
Anything that involves selling your personal time – eg. consulting
Anything that isn’t scalable – more on that later
Anything that requires a technology breakthrough before you have something to sell
Small, niche and low total market potential opportunities
By scalable, Matt means that the sales potential is not directly proportional to either people or capital investment. Matt wants leverage. In his words “Businesses that are not scalable are bad“. But is this really the case? And what does he mean by bad?
Is non-scalable always bad?
I agree that if you want to maximise your income potential, the non-scalable businesses will not give you same ability to do that as scalable businesses will. However my business doesn’t only exist to make money. Making money is a byproduct of a good business that is well run and meets a real need. Businesses should make money, otherwise they are not adding enough value or not well enough run.
My favourite business quote is “The purpose of the organisation is for ordinary men and women to come together, and in cooperation with each other, do the extraordinary”!
For me, business is a mechanism to make the world a better place in partnership with others. It is too big a job to do on your own. And it should deliver real value.
There are many essential non-scalable activities out there. Here is a short list:
anything to do with the patient side of medical or nursing care
most forms of teaching and education
Notice I said activity. For the quote above also covers the “Not For Profit” sector and Government. Both should deliver real value. They just don’t directly derive their income from that value.
I’m sure Matt Barrie is not upset if he has to see a Doctor just because the Doctor does not have a scalable business.
The final point above is about Product Development. Thomas C. Gale said, “Good design adds value faster that it adds cost“. So I am not advocating development at any cost. It has to have a value proposition. A client of ours recently told us of a product we designed for them nearly ten years ago that they had made millions of dollars from. Given our fairly modest fees for that project, they got a massive bargain there. That was an example of very good value Product Development which they got a lot of scalable leverage out of.
Product Development uses a mixture of leverage and personal effort. Leverage comes from using existing technology tools to do the work faster. This includes things like:
Computer Aided Design and Analysis tools
Reference Designs and existing technologies
Science and technology understanding already known
Research findings, existing data, other specialists
The above all came from past work that can be used to make current work more productive or more effective. I started my career laying out PCBs using tape. Now I wouldn’t dream of not using a CAD System. We use Altium Designer for Electronics Design Schematic Capture and PCB Layout. This is much more productive than the manual methods. As part of our ongoing Product Development activities for our clients we design and lay out a new PCB every 2 weeks on average and this is only possible with the use of CAD tools and the full leverage of our experience. In general I don’t want to rediscover the wheel, or the technological equivalent of that, in whatever area of Electronics Design or Embedded Software Development we are working at the moment. I want to take as much advantage of leverage as I can, and only apply the personal effort to what I can’t buy at a reasonable price.
Likewise we use proven Software Development tools that just work every time. It is not a good use of any of my team’s time to be working out why the latest release of something no longer works or breaks a project we had nearly completed. Of course we shouldn’t do that mid project anyway, but the legacy issue still applies. Clients do want updates down the track. So we use IAR tools for our Embedded Software Development. They work, are well supported, and we almost never have an issue of any kind with their performance.
So my conclusion is that non-scalable business activities are essential to modern economies. They just aren’t where the maximum profit potential is.
Let’s take manufacturing. We serve Australian Manufacturers by providing them with the new Electronics Designs they need to either remain competitive, become market leaders or bring a brand new product to the market for the first time. The manufacturing side is scalable although the Australian economy primarily supports lower volume or niche manufacturing opportunities. But once a design is in production and the process is running, they can scale up to meet demand within their capacity.
But our business activities are not scalable. Each design takes at least some personal effort to produce. But if I stop my non-scalable activities, then someone else has to do it. And if everyone does the same, if all the non-scalable activities stop, guess what – the scalable activities also stop!
Freelancer enables the buying and selling of non-scalable activities in a scalable way. It is a great service to those who use it and extremely good value. I agree with Matt Barrie that it is a good business.
Personal effort is still valuable
There is an old joke that goes like this, “No matter how many women you put on the job, it still takes 9 months to make a baby“. Some things cannot be sped up by adding more resources. This analogy works well because we all know this is the case for pregnancy. Many other things are also like this. It will take generations to get peace in some parts of the world. Mindsets cannot be undone overnight. And it takes time to create economic frameworks. Successive Australian governments have spent 50 years working toward an uncompetitive Australian Manufacturing industry. This will not be undone with one policy initiative or one statement of a change of approach. It will take time and personal effort, by those with a vision, to make it happen.
So my belief is that personal effort is not only still valuable, but still essential, even if there are limits to how much I can scale it. I agree with Matt that it isn’t going to make me as rich as his approach will make him, but I’m not just in it for the money. For me, it is not bad, it is essential.
The twin pillars of modern business are Greed and Ruthless Efficiency according to the Harvard School of Business. If this were an organic process, we would call it cancer. Ultimately it will kill. We need a better model and we need better values. Greed and Fear are the enemies of many a good thing.
And if you were wondering where my favourite business quote comes from, it is from Aristotle, some 380 years B.C.
Want a great career?
And finally, a Ted Talk on “Why You Will Fail To Have A Great Career”! OUCH! But is it true?
This is an excellent presentation that challenges many of the common assumptions about careers. But there is hope and Larry Smith explains both the challenge and the solution.
OK, I couldn’t resist the title. But you will see why below.
This post was inspired by Romanian teenager Raul Oaida who engaged the help of Melbourne entrepreneur Steve Sammatino to put together a space project. Their motivation was to remind us all that we can now do many things because we want to, if we are determined enough.
What they did is to build a Lego model of the Space Shuttle and attach it to a helium-filled balloon then include a GPS and video camera. It was successfully launched into space where it attained a height of 35,000 metres. And they videoed the whole thing. I have spent my life in Electronics Design and so examples like this of what you can do with modern electronics is something I get a particular kick out of. Enjoy.
The launch took place in central Germany because they could get the flight clearance there. It makes you wonder just what we could achieve if we get a vision for an objective like Raul did and then just “Make It Happen“! That’s going to be my thought for the rest of today.
The Operating System is the core Software Architecture component that determines how the overall system task execution happens. Over time, a number of Operating System types have been developed. For this post, we will focus on Embedded SoftwareOperating System types. The primary ones are:
Round-robin Scheduler with Interrupts
Function Queue Scheduler
Real Time Operating System – RTOS
The Loop or Round-Robin Scheduler is a single execution thread that runs repeatedly. Systems that run in loops can be either simple or large, but the key feature is that there are no context switches or background tasks that can alter the flow of execution. As a result, these are best suited to simpler tasks that do not require fast response to external stimuli, or which can focus on that stimuli only. Some DSP systems work this way because the execution time will be exactly known.
An example of a recent project we did that that used a single loop was a protocol converter that read a weigand data stream and passed it off to a main processor using a handshaked bit pipe. This was done because the main processor had a latency conflict and could not guarantee to handle the weigand minimum data pulse width and 2 other time critical communications tasks at the same time. So one System Architecture decision was to separate this into 2 microcontrollers to manage the required response time. A small 8 bit processor (8 pins too) was used to buffer the incoming weigand stream. Each time a new byte was collected it would reflect the first bit to an output and raise a synchronisation pin. The main processor would raise a read pin after collecting the bit and the slave processor would release its synchronisation pin then the main processor would release the read pin. This allowed very fast data transfer to the main processor at a time of the main processors choosing with a simple and deterministic process in the slave processor.
A Round-robin Scheduler loop processing system looks like this:
Type 1 Loop
Round-robin Scheduler with Interrupts
The Round-robin Scheduler with Interrupts is the most common form of small operating system. It is enormously flexible and provides fast response to external hardware signals with guaranteed internal time management. It is very common to use interrupts for:
Time ticks to maintain a precise sense of elapsed time
Communications, especially UARTs
Specialised output controls such as PWM, motor control and waveform generation
ADC collection and digital filtering
Input monitoring and debouncing
For small systems up to 10K lines of code this format of operating system is our usual starting point because there is almost nothing it won’t handle if designed correctly.
The primary advantage is guaranteed response for high priority events via Interrupt.
The primary disadvantages are that in a worst case scenario every task could fully execute in the same pass and that care must be taken to manage data that is used by both the main loop and interrupt service routines.
Quite large systems can be handled using this style of Operating System and it is also easy to run in a fully simulate environment without hardware. In 2011 we received the Electronics News Future Award for Industrial Electronics for a capacitor bank power factor correction controller which uses a Round-Robin Scheduler with InterruptsOperating System.
Operating System – Loop with Interrupts
Function Queue Scheduler
A Function Queue Scheduler is where a list of function pointers is pushed to an execution queue. The Function Queue also contains priority information so that very high priority tasks can be pushed to the front of the queue. The tasks are executed by calling the function pointers. This type of Operating System is best suited to heavily event driven systems. Each time an event occurs the event handler, usually an interrupt, pushes a new task to the Function Queue.
The primary advantage is that only the code required to handle the current events needs to execute whereas in a Round-robin Scheduler all the modules execute at least a minimal set of decisions to determine if there is anything to be done on this pass.
The primary disadvantage is that a very low priority task might never execute if enough high priority tasks are pushed to the queue ahead of it. This is referred to as ‘starving’.
We have used a variant on the Function Queue Scheduler for handling user configured accessories and user selected program tasks. These were managed by building a token queue rather than a function queue and operated like an interpreted language.
This style of Operating System is probably the least well understood and so the least used. The diagram below shows the basic operation ignoring the use of priority to alter the insertion point in the Function Queue.
Real Time Operating System
The Real Time Operating System or RTOS is the “all singing all dancing” Operating System that allows different threads of execution to operating asynchronously and independently. A great benefit of this is that separate modules or even programs can run on the same computer without the writers having to know anything about the other modules. It is the most flexible of the architectures and also the most difficult to predict precise results for any given system. Problems like priority inversion and task interdependency can lead to system lockups so careful design is still required.
Many commercial modules such as TCP/IP communications stacks assume you are running an RTOS.
The RTOS generally requires the most system resources for the operating system itself and most RTOS systems are sold under commercial licenses. Some include run time royalties. Free RTOS is an example of an open source RTOS that is becoming popular because it is free of royalties or annual support subscriptions.
The RTOS is considered the ultimate operating system and for large, complex or distributed team projects and has many advantages. It is also the most complex with the most disadvantages.
Most modern general purpose computers and smart hand held devices use an RTOS including Windows, OS X, iOS, Android, Linux, Solaris, UNIX and many other variants. A useful list can be found at Operating System List.
Selecting an Operating System type
So in building a system, it is important to work out the level of complexity and the future expansion expected. We approach this by assuming that it is always best to use the simplest approach that gets the job done. This also eases support and maintenance which are software lifecycle costs often not considered up front but which are affected by you choice of Operating System.
So the process we use is:
Analyse the requirements to identify latency and response requirements
Look at the processor clock frequency and instruction execution rate
What is the simplest approach that can work
Does a more complex approach have enough advantages to justify using it
Select the Operating System type to use
Although this sounds simple enough, and analysis is not always straight forward and there can be surprises down the track that require the decision to be evaluated again.
One of the primary goals of modern Software Development is the creation of code that is reusable. This is known as Software Reuse or Code Reuse and the results so far are pretty disappointing. There are a number of reasons for this:
There are multiple software architecture options available
There are multiple design methodologies available
There are multiple test methodologies available
There are different languages and runtime environments
It is hard to conceive of all the way a module might need to operate in the future
Requirements capture is still not a reliable process
Making code too general can also make it unwieldy to use
Documenting code so it can be used again is not easy
This begins a series of posts looking very briefly at each of these factors.
I consider Software Architecture to be a fundamental component of the success of a software system. But there is a strong dependency with requirements capture. Because the purpose of choosing a particular architecture is to satisfy the requirements within constraints such as the Hardware Platform.
Grady Booch is one of the world’s leading experts on Software Architecture and has an excellent series of podcasts at On Architecture. These were originally columns for IEEE Software magazine and I recommend making time to listen to them if this is an area of interest for you.
The diagram above shows a simple Software Architecture for a process control module. It is missing the link that shows how the messages or instructions with the control tags get to the module, but it does show how the system components relate to each other after that. Like most software problems, it has to be abstracted so we can handle the details in bite sized chunks (or should that be byte sized chunks?). In this case the elements being managed are:
inputs from a machine under control
outputs to control the machine
a startup and shutdown process
a human interface device so users can either get reports from the system or interact with it
some form of control language using tags that defines the machine control
And the Software Architecture shows that there are several internal processes for handling the inputs, outputs, HMI and control tags.
The original concept of Software Architecture comes from real architecture. There are foundations, services, facilities, reception, storage and other floors all the way to the top floor. The highest floor represents the highest level of abstraction and generally the highest value adding process. The foundations represent the things that must exist or there can be no system. These are generally the lowest level drivers and IO device controls. And the diagram shows how the pieces relate to and depend upon each other.
And of course, all the floors need to be connected, so you have elevators, stairs, electrical cabling, networking, air conditioning, water and other plumbing. These are like the operating and communications systems.
Things that need to be clearly defined for a system to be able to be designed with confidence are: