2015年12月29日星期二

How to Develop Your Tech Product in 5 steps

With the world obsessed with technology, innovation and disruption, many entrepreneurs are trying to develop ideas and services in this space. But often, it can be a bit daunting.

Have no fear. While developing your own tech product may seem overwhelming, it is achievable -- even for non-techie entrepreneurs.

You just need to break it down into steps. 







1. Clearly define your product and goals.
Create a document specifying all of the details for your product including features, functions, size and target retail price, to name just a few.

Keep in mind, this phase, product development, is a balancing act between pushing new limits and making compromises.  As with life, you can’t have everything. 

For example, when developing wearable tech products small size may be your highest priority, meaning that other specifications such as performance and battery life will need to be compromised.  The most common compromise is usually in regards to cost – and this sort of give and take occurs at startups and big corporations.



One of the more famous product compromises was the decision by Steve Jobs to eliminate dedicated keyboards on portable devices.  At that time, other product designers insisted it was essential to have a physical keyboard. But Jobs felt that appearance and larger screen size were more important than a real keyboard.  That compromise proved to be a wise decision that changed the very nature of portable devices.







2. Hire an electrical engineer to design the electronics
An electrical engineer will first select all of the components (microchips, displays, sensors, etc.) based on the features and specifications in your product definition.  Don’t be surprised if some of those compromises are necessary at this step.  After all of the components are selected the engineer will then connect everything together in an abstract blueprint-like diagram called a schematic circuit.  Depending on the design the engineer may also run computer simulations to confirm functionality.    

Next, a Printed Circuit Board (PCB) layout will be generated based on the schematic circuit.  The PCB is the board that contains and connects all of the electronic components. Whether your product is a tracking device, a Bluetooth headset, or a new type of smartphone, the electronics will be placed on a PCB. 


3. Produce the prototypes
Your electronics engineer will now send the PCB design files to a prototype shop to make a few units for testing.  Electronics prototyping can be broken into two steps: making the PCB itself, and attaching the components.  Each step requires completely different expertise and equipment, so two separate vendors are commonly required.





4. Evaluate, program and debug
After you receive the assembled boards, now it’s time to make them work.  I usually like to perform an evaluation of all the non-programmed parts of the design first, such as the power management section and oscillators. Then I move on to programming.

Any problems found with the electronics during programming will need to be fixed on the next PCB version.  The hope of course is there will be no problems, but in reality that never happens.

As a design engineer for a big-tech company I witnessed countless products being developed, and never once was the first version the final version.  This is always the case when developing something new and non-trivial.  You need to plan on it taking multiple revisions to get your product ready for market.


5.  Develop the case
This step should really be performed in parallel with the development of the electronics.  If appearance is critical for your product, then you need to hire a talented industrial designer to make your product look really amazing.

As with the electronics, it will take several iterations for you to get a custom case ready for market.  Development of the case is also complicated because different technologies are used for prototypes (3D printers) and production (injection molding).  If appearance isn’t a high priority, you might consider using a stock case, at least initially.

Never strive for perfection when developing your product.  You want to get it on the market as soon as possible so you can gather sales feedback.  Most likely, you’ll need design revisions incorporating what you learn from your initial sales before going to full production.  Only after pleasing the market have you truly developed a winning product.




(this article was contributed by Mr.John Teel)



Baggio WANG FAN
SHENZHEN JAAPSON TECHNOLOGY CO LTD
baggio@jaapson-pcb.com  
www.jaapsonpcb.com
skype: baggiowang0214
JAAPSON, Expert in HDI Multi-layer PCB Manufacturing

2015年12月28日星期一

Hardware Engineer: How to solve your problems?

When the Gantt charts are drawn up at the beginning of a project, perhaps the hardest part for the hardware engineer to estimate is the debug phase of a product development. It is also one of the most ignored sections in planning. 



CAD tools have progressed over the years in terms of ease of use and integration into PCB and mechanical. But ultimately, the design work is carried out by a person who is not only fallible, but may also be working with incomplete or incorrect data. Some bugs are inevitable on all but the simplest designs and so the art of troubleshooting these bugs is all-important.


Bugs can range from something going BANG the first time power is applied to intermittent glitches reported in association with completely unrelated things like “it was raining” or “it only happens on his bench, not on mine”. Consequently the ease of fixing bugs similarly ranges from a five-minute job to months of work.


Debugging can be the most fun part of electronics design when it is going well. There is a great of satisfaction in finding and fixing the intractable bugs. But to succeed, it is important to be systematic in the approach taken to fixing bugs.


In this article are listed the steps needed to bring such a systems approach to troubleshooting hardware in product development. To illustrate these principles, I will refer back occasionally to work I performed years ago as a junior engineer on a system that was used for monitoring sixteen analog audio inputs at the same time. It looked something like Figure 1 below:

Figure 1: Monitoring sixteen analog audio inputs at the same time


The system consisted of a multichannel ADC board, with the digital audio signal passing through an FPGA that multiplexed it onto a DSP bus. The DSP received interrupts telling it that when data was ready, it was to read and store that data. The FPGA logic was entirely asynchronous.
Occasionally, the DSP would stop receiving interrupts and the whole system would grind to a halt. This could happen days apart, or in a matter of just minutes. Software bugs had been eliminated as the cause, so this looked like a hardware bug and I was asked to investigate.


Step 1: Picture success 
An important part of debugging is having the right mental attitude, as persistent problems can grind down your morale. In particular, it feels bad going to work two days in succession with the investigation stuck at exactly the same point. In such a case, ask yourself “Will I still be working on this bug in a year’s time?” The answer: Of course not! This bug isn’t forever, it’s going to be fixed. It’s not that there’s no solution, it’s that I simply haven’t seen it yet.



Step 2: Keep notes
Resist the temptation to dive straight in trying to fix the bug immediately. But it is important to determine first if others have dealt successfully with a similar problem. Collect reports from multiple sources, even though they may sometimes have conflicting data attached. A spreadsheet can work well here to organize what you find.



Step 3: Reproduce the problem
This is often the hardest and most time-consuming part. The frequency that bugs show themselves varies enormously. So at this point, based on the information you have collected, you need to create the conditions by which you can make the bug happen at your command.
At this point diagnosis can begin. The initial bug report may be “It stopped working”, “It crashed”, or other equally vague reports. Keep working until you have all the information you can get from the one who reported the problem and also have enough to narrow down the range of possible causes.
Don’t worry about or speculate on the cause, just focus on reproducing the bug. Be careful at this point. Sometimes, similar but different issues can appear to be caused by the same bug, with one masking the other. If other bugs are uncovered while looking for the initial bug, make a note of them and go back to them later, but don’t get side-tracked.
In the example shown in Figure 1, the bug was extremely sporadic, so the first part of the exercise was to write software that exercised the system vigorously, sampling at the maximum rate This reduced the time between failures and made analysis easier.


Step 4: Gather the evidence
Be methodical and document what you see and what happens. Don’t theorize at this point about causes, just create a table of what aggravates or alleviates the bug as well what as has no effect. Be aware that multiple bugs can have the same symptoms, which can produce contradictory evidence.






Step 5: Try the easy stuff first
So you can reproduce the problem, look for the easy explanations first. For instance, are the connectors wired back-to-front? Are the chip pin-outs as per the data sheet? Are clocks running at the correct frequency? Very often, bugs are caused by mistakes that look dumb only in hindsight.
Remember when you did the design work, you had probably thousands of small decisions to make; most of these were correct. If the error proves to be “obvious” you can correct it and skip to step 9.





Step 6: Break the problem down
SPONSOR VIDEO, MOUSEOVER FOR SOUND
So now the easy things have been checked out. You can reproduce the problem, but perhaps only occasionally, or there are conflicting messages. It is important to remember that In complex systems, multiple bugs can show the same symptoms on the surface, but require different cures.
To help clarify the issue, eliminate as much of the system as possible that doesn’t appear to be relevant to the bug. For instance, you could power down devices on the PCB that are unrelated, or unplug cables to other boards. Do this while retesting. If the bug suddenly stops when an unrelated module is taken out of the equation, you have a smoking gun. Document it. Try to reproduce the bug again, with the module and then again without it.
In the DSP system described earlier (Figure 1), the only symptom was that the interrupts from the FPGA sometimes just stopped coming in. We wrote a simple program that just thrashed the system, reading from the interrupt status registers at the highest rate possible with the sample rate as high as possible, but without any other accesses to other parts of the system.
The frequency of the bug dramatically increased and a bug in the FPGA was found, relating to the system reading the interrupt status register at the same time as a new interrupt arrived. We fixed the issue and put the board on for a 24-hour soak test. After 23¾ hours, the bunting was up and we were starting to push the champagne corks out of the bottles….then it crashed again.


Step 7: Talk it over with a colleague
When dealing with what seem to be intractable bugs, just talking it over with someone else can often help, even when that person is from a different engineering discipline. Explaining what you see to another can be all that is required for you to see the bug from a different point of view and realize a crucial fact. At the very least you may come up with inconsistencies that need ironing out or receive suggestions of other things to try.
This conversation is best had away from the action. Go through exactly what the evidence is, one bit at a time, then look for what other experiments or investigations can be carried out. Then go back to the board and carry on.
In my example, we had a meeting with the office hardware guru and ran through the system, drawing it all up on a white board. Looking at how the FPGA logic worked in action, he suggested there might be a meta-stability issue in the FPGA. 





Step 8: Apply the fix
You understand the bug and have come up with a rational solution. You run the code and the problem appears to be solved. However, your job isn’t over yet.

Step 9: Try to break it again
Try to break the system again. To be sure you succeeded you will need to put the system through an appropriate series of stress tests an order of magnitude beyond that of the original implementation.
For instance, if a real-time system such as the one above, crashed every ten minutes and never lasted longer than an hour, but now runs for ten hours, the bug is almost certainly fixed.
You may find that the system behaves better, but still crashes. But at this point you may have discovered a new bug that had been masked by the previous bug. You need to treat it as such and go back to step one, creating a fresh investigation on the “cured” system.
Happily, in my example, our resident guru was correct and a simple modification to the FPGA solved the problem. There had been two bugs with one symptom, one which resulted in crashes on a period of about five minutes, the other on a period of many hours (typically about five). The nearly 24 hours in our soak test turned out to be a fluke. We had finally reproduced, analysed, understood and fixed the problem.

Step 10: Remember ‘disappearing’ bugs are still there if you haven’t fixed them
Sometimes bugs just appear to go away by themselves. This can be frustrating, but you can be sure that you haven’t fixed the bug. Either the initial report was incorrect or the bug is still there. These are the sort of bugs that reappear when your boss, his boss, or a customer is present.
It can be tempting to lift up the carpet and sweep these bugs under it, but don’t. Perhaps document it and carry on looking into other issues as it may return by itself. Ultimately though, you need to go back and fix it at some point. So, more effort needs to be applied in aggravating the problem to reproduce the bug.




Baggio WANG FAN
SHENZHEN JAAPSON TECHNOLOGY CO LTD
baggio@jaapson-pcb.com  
www.jaapsonpcb.com
skype: baggiowang0214

JAAPSON, Expert in HDI Multi-layer PCB Manufacturing




2015年11月12日星期四

10 Embedded Design Trends


Bluetooth, FreeRTOS, and multiprocressing are all on the rise in embedded systems, according to latest annual survey, released in at EE times!  FPGAs, 8-bit microcontrollers, and in-house custom operating systems are on the decline.

The following pages give a few snapshots of those and other top 10 trends in embedded systems designs.

The annual study takes a broad look at market and tech trends in embedded systems design. A total of 2,258 engineers responded to the latest survey, conducted online Jan. 18 to Feb. 21, giving a 2% confidence level for most questions.

Most respondents (55%) were from North America, with 22% in Europe and 14% in Asia. They came from a wide range of sectors including industrial (33%), consumer electronics (24%), communications (22%), automotive (18%), and medical (18%), among many others.

 
WiFi rules, but here comes Bluetooth
WiFi is twice as popular as the second most used wireless transport. But Bluetooth is catching up fast, particularly the 4.0/LE/Smart version. Surprisingly, cellular seems to be declining. Meanwhile, proprietary interfaces are declining, and 6WLoPan is not gaining traction yet.
 

 

Open-source takes over

For the first time in the survey's history, open-source operating systems outpaced commercial OSs. Use of open-source code now runs in 36% of systems, compared to 33% for commercial OSs.
 

 

Android, FreeRTOS lead the way

Asked to select all the open-source OSs they use, engineers said Android and FreeRTOS are their top choices. They are poised to exceed the in-house/custom OSs that have dominated use for years but have been in decline.
 

 

Show me the source

The most important factor in choosing an OS is availability of full source-code. According to our survey, engineers really want to fiddle with the bits. Of course, some tech support and no royalties are cool, too.
 

 

Multiprocessing goes mainstream

For the first time, half of survey respondents said they use more than one microprocessor in their current designs. In fact, the average number of micros is 2.4.
 

 

32-bit in, 8-bit out

Surveys have shown a slow but steady decline in use of 8-bit microcontrollers and a similar rise in 32-bits. The trend continues in 2014 when we asked about what MCU is used in your current design.
 

 

FPGAs trending down

FPGA use is trending steadily down from 45% six years ago (not shown) to 31% last year, rising very slightly this year to 32%. Stay tuned to see whether we have we hit the bottom or the decline continues.
 

 

Virtual doldrums in embedded

We started asking about use of virtualization in 2013 and found out it is pretty low among embedded systems designers. It dipped slightly in the latest designs, but we expect it eventually will gain traction
 

 

 

IoT on the map

Industrial controls has been the leading application among respondents for many years. This year the Internet of Things made a first, strong appearance on the list. Communications and computers are both trending down. Consumer electronics, automotive, medical, and electronic instruments all trend up.
 

 

Skeds are slipping

As we reported in March at EE Live!, respondents said their embedded design teams are getting a little smaller and slipping schedules more often. In 2014, 41% of all projects finished on schedule or ahead of schedule, and 59% finished late or were canceled.



LISA LIU
lisa@jaapson-pcb.com
www.jaapsonpcb.com
skype: jaapsoncircuits
Jaapson, HDI multi-layer PCB manufacturing for 10 years
 

2015年11月6日星期五

What Determines Impedance Control?


For standard circuit boards, a PCB manufacturer is given a set of patterns - copper patterns, hole patterns, ink patterns, which are combined into a single circuit board with all the pattern sizes and positions within certain tolerances. Failure to meet a certain size or position with the specified tolerance can be cause for the circuit board to be rejected. If a trace has been defined as an impedance control trace, it is not the trace size which is strictly defined, but rather the impedance. While a nominal trace size will be provided in the Gerber layer, it is understood the circuit board manufacturer can vary trace width, height, and dielectric thickness as long as the final impedance is within tolerance.

 

Generally speaking, 3 levels of service are available for an impedance control printed circuit board.

 

No impedance control. 

The impedance tolerance is loose enough that simply making a design with no extra precautions will result in the correct impedance as long as the design is made correctly within the standard specifications. This is the fastest and least expensive option since it places no extra burden on the circuit board manufacturer.

 

Impedance watching. 

The designer indicates the impedance control trace. The PCB provider adjusts the (W)width of the trace and (H)height of the dielectric and gets approval on the proposed specifications before starting manufacturing. A TDR (Time Domain Reflectometry) test can be performed to confirm the impedance for an additional cost.

 

Impedance control. 

Usually reserved for high-end designs containing either an odd design that doesn't fit the usual microstrip configuration or a tight tolerance. With manufacturing capability limits approaching the dimension requirements, confidence is not high the target impedance will be achieved on the first pass. The circuit board manufacturer first makes the board, getting as close to the target impedance as possible. Next a TDR test is done to determine if the impedance is within specification and adjustments are made as necessary. In the example below, the prepreg (composite fibers "pre-impregnated" with an epoxy) can be added or removed in 1 mil increments to affect H, and changes can also be made to W. Multiple iterations may be needed depending on the design.

 

 

At higher frequencies, the impedance will depend on the geometry of the circuit so it has to be calculated. These calculation are complex. 


 

In the case of a microstrip, the impedance will depend on 4 parameters :

 

H is the height of the dielectric. It can be changed in steps. In this example +/- 1 mil results in +/- 2 ohms

Er is the dielectric of the material. It is fixed once the material is chosen. Having a good idea of the Er is necessary since +/- 0.1 results in +/- 0.5 Ohms. To make things more complicated, only certain specialty materials like Rogers 4003 have well-defined dielectrics.

T is the trace thickness. An outer trace is plated, providing a 20% uncertainty in exterior traces. This results in a small uncertainty of +/-0.2 ohms.

W is the trace width. Typical trace width uncertainty is +/-2 mil which results in an uncertainty of +/- 2 ohms.

 


In the example provided, if the target impedance is 50 ohm, a 26 mil trace width is required. Since there is a tolerance on the input parameters it translates into a tolerance on the trace width. Achieving the calculated trace size should result in the required impedance.

 

A typical tolerance on final impedance is +/- 10%.

 

Achieving this requires a good understanding of the Er values and experience about how dielectric laminates behave. Ensure your PCB manufacturer has the knowledge and capabilities to meet your requirements. Specifying impedance control ensures you will need to work closer with your circuit board provider but the results are worth it.
 
 
 
Baggio WANG
baggio@jaapson-pcb.com 
www.jaapsonpcb.com
skype: baggiowang0214
JAAPSON, Expert in HDI Multi-layer PCB manufacturing

2015年9月8日星期二

Semi-flexible PCB technology



With simple depth-milling a standard printed circuit board can be prepared for flexible installations. So called "semi-flexible" printed circuits are offering a cost-efficient solution. They save connectors and increase reliability while decreasing size of the application and time needed for assembly. Semi-flexible PCBs are the perfect solution if you have flex-to-install requirements only and there is no dynamic bending during operation.

 

Often layout designers are reluctant to upgrade from a standard PCB with connectors to a notoriously expensive rigid-flexible printed circuit. The advantages are immense, but so are the costs and the layout requirements compared to standard PCBs. Many times this "jump" from standard technology to a high-tech segment is not necessary. Many printed circuits do not require dynamic bending capabilities in operation but only need to be fit into the housing neatly. This is called a "flex-to-install" requirement and here semi-flex offers a really cost-saving alternative technology.
 

 

Production of a semi-flexible PCB is identical with the manufacturing process of standard printed circuits. Semi-flexilbe boards can be produced as single-layer, double-layer or multilayer PCBs. With the exemption of a special solder mask that sustains bending, the materials are also identical to standard printed circuits. The only difference happens at the end of the production process when dedicated bending areas are milled down by z-axis routing. The remaining material can be bend and is thin enough to only carry the copper traces and little base material.

 

Design and installation of semi-flexible PCBs require some attention and modifications:

1.      The PCB should only be bend with copper on the outside of the bending area.

2.      Open copper structures, pads, annular rings or vias in the rigid part of the PCB should have a distance of at least 1mm from the bending area. In special cases 0,8mm are okay, too. The semi-flexible are cannot contain any vias, drills or open copper structures. The transition area from flexible to rigid should have a radius of 5mm or an obstuse angle. Trace-to-outline distance in the semi-flexible area should be minimum 0,30mm.
 

 

3.      The maximum bending radius depends on the lenght of the semi-flexible area:


 

4.      Currently, semi-flexible PCBs are possible up to 8 layers, while only one outer layer can be "semi-flexible" per bending area.
 
 
 
 

Baggio WANG FAN
-----------------------------------------------------------
SHENZHEN JAAPSON TECHNOLOGY CO LTD
Building 2, Tongfuyu Industrial Park,Shenzhen, China, 518104
Tel: 86-755-82596922
Fax:86-755-82596922/82596923
skype: baggiowang0214
baggio.wang@funsunpcb.com
baggio@jaapson-pcb.com
www.jaapsonpcb.com
 
JAAPSON, The Expert in HDI Multi-layer PCBs