×

Happy to Help!

This website doesn't store cookies. Enjoy the experience, without worrying about your data!

Great, thanks!

Monthly Archives: July 2018

  • 0

Validation Engineer / Senior Validation Engineer

Category : In India

 

Job description:  5 positions

Embitel is looking for Validation Engineer/Senior Validation Engineer for our product engineering services for automotive domain. We work in areas like powertrain, Body control, Chassis, Automotive Infotainment, Connected Car, AUTOSAR, Safety standards (ISO26262), ADAS, Vehicle Communication, Vehicle Network and Diagnostics and IoT.

Automotive business unit is focused on design and development of automotive control units and automotive networking & diagnostics solutions. The control units team is working with global tier 1s and OEMs in the area of body control units, seat systems, motor control, EV solutions, telematics systems etc. Networking and diagnostic team is supporting global clients in the area of automotive protocols like CAN, LIN, UDS, J1939, OBD, Ethernet, XCP etc.

‘Change is the only constant’- This is what automotive industry has been witnessing at this point of time. At Embitel Technologies, you will be part of the exciting journey of building R&D intensive solutions for Infotainment, Car Heads-up Display, Automotive Control Units, ADAS, Telematics, Protocol Stacks and more.

 

Education: Engineering or Technical degrees preferred (B.E/B.TECH/M.E/M.TECH/MCA/M.Sc)

Experience Required: 1 to 10 years

Location: Whitefield, Bangalore and Pune

 

Primary Skills:

  • 1+ yrs of experience in Software Verification & Validation
  • Experience in SDLC, STLC (Software test Life Cycle) with various Software Engineering activities like Requirement Analysis, Development of Test Plans and Testing etc
  • Automotive Domain Experience
  • Experience in testing HW/SW systems (black box and white box testing)
  • Excellent interpersonal and communication skills, strong reasoning, analytical and strategizing skills
  • Experience in different testing tools for static analysis, unit and integration testing
  • Knowledge of MISRA C:2012 Coding Standard

 

Secondary Skills:

  • Experience in EA(Enterprise Architect) tool for validation
  • Working experience on verification of USB 2.0/3.0 Host/Hub
  • Experience in testing tools like QA static analyzer, CANTATA for automated unit & integration testing for embedded C

Email:hr@embitel.com


  • 0

Hardware Engineer / Senior Hardware Engineer

Category : In India

 

Job description: 4 positions

Education: Engineering or Technical degrees in Hardware design engineering

Experience Required: 3 to 8 years

Location: Bangalore

 

Primary Skills:

  • Good knowledge of product reliability, including circuit analysis (PSPICE ) and design support. It also involves all aspects of component selection, including cost, availability, and technical analyses.
  • Review of HW documents for production.
  • Should able to handle changes of electronic circuits, schematics, PCB-Layouts, PCB panel drawings.
  • Good oral and excellent written communications skills .
  • Ability to work with little or no supervision.
  • Evaluation of components for prototypes
  • Evaluation of 2nd Source components / comparison measurements of parameters
  • Should able to consider cost, availability, and technical advantages of various component choices during the design phase.
  • Ensure all existing and new internal part numbers and descriptions are correct.
  • Maintain the Schematic libraries in the ERP system
  • Assembly and testing of prototypes, analysis of test results
  • Should able to Perform Tests/Validation of products (using local test services)
  • Maintain an effective configuration management and traceability

 

Secondary Skills: 

  • Experience in electronic and mechanical component analysis and selection.
  • Ensure complete technical documentation of the HW
  • Reviews of requirements analysis during the different phases of the HW development process.
  • Achievement of project objectives concerning quality, costs and schedule
  • Build and maintain test equipment in development department
  • Good Knowledge of reliability modeling and predictions (including MTBF calculations) ,should able to perform fault analyses

Email:hr@embitel.com


  • 0

Software Engineer / Senior Software Engineer – QT/IoT

Category : In India

 
Job description: 3 positions

Education: Engineering or Technical degrees preferred (B.E/B.TECH/M.E/M.TECH/MCA/M.Sc)

Experience Required: 4 to 7 years

Location: Bangalore

Notice Period: immediately (15 days max)

Duration (if onsite):  yes, 1 to 3 months immediately after joining

 

Primary Skills: 

  • Qt (cute) toolchain oecore-i686-qte (ARM)
  • Qt creator 4.6.1
  • QSQLITE plugin
  • C++
  • Linux
  • SDL Passolo localization tool
  • Log4cplus logging API
  • Embedded

Email:hr@embitel.com


  • 0

How Proof of Concept (PoC) Development Can be the ‘Stepping Stone of Success’ for your IoT projects

If you are part of a R&D or IT team of an organization who is evaluating an IoT project, you may be able to relate with this situation:

  • You have taken up the responsibility of Digital Transformation of the existing systems and processes. But you are finding it difficult to convince yourself and/or other stakeholders for a large scale IoT implementation across the enterprise.
  • You are wondering how to demonstrate the benefits of this enterprise IoT project, with the help of a tailor-made solution & using actual data from your factory-floor or assembly. You desire to invest only 5-10% of the overall project cost, for this demonstration. Based on the results of the demo, your organization should be able to make a decision regarding investment in a full-scale IoT implementation.

These kinds of low-cost IoT designs (best suited for demonstrations) are known as Proof-of-Concept (PoC) solutions or a Minimum Viable Products (MVP)

PoC solution development for IoT projects has become a preferred route of Digital Transformation for global businesses across domains like Automotive, Mining, Food Processing, Healthcare, Oil & Gas and other Industrial Automation use-cases.

Sagar

In order to understand the reasons behind the (growing) popularity of IoT PoC development, we had a detailed conversation with Vidya Sagar, Head – IoT & Infotainment Solutions at Embitel Technologies.

Sagar has more than 18 years of experience specifically in the domains of product engineering, Infotainment, Car HUD and Industrial IoT.

This blog is inspired by the insights we gathered during the conversation. It can serve as a guiding light for your IoT PoC development projects!

Q1. You have been collaborating with organizations from varied industrial segments & of different sizes. In your observation what are their objectives for implementing and investing in IoT?

Sagar: At a very broad-level, the objective of an organization to implement IoT projects would be to reduce the operational costs, or to improve customer service levels. These are achieved by continuously monitoring network of devices and taking appropriate actions by making sense of the real-time data.

Having said that, at the micro-level, every customer has a unique way to define their objectives and will opt for a full-scale IoT implementation only if they have are able to experience very tangible benefits before a commitment is made.

Q2: From IoT Design to Deployment: Where does PoC development stand in the Bigger Picture?

Sagar: A well-defined Proof of Concept (PoC) is very crucial to demonstrate both the value & feasibility of your IoT solution, before proceeding for a full-fledged implementation.

It is recommended to also define the expected results that one aims to achieve through a PoC demonstration. Typically, a PoC can help you to demonstrate 70-80% of the objectives expected of the full-scale IoT implementation.

An IoT PoC is an ideal solution to experience tangible benefits by investing fraction of the overall cost and efforts. Thus, a PoC can serve as a testing water to ascertain how likely the actual implementation is capable of achieving the desired business goals.
PoC

PoC saves you from a disaster during a full-fledged IoT implementation application Source: Titoma.com
 

Q3. You mentioned that a PoC can help to demonstrate 70-80% of actual business goals. Can you explain this with an example?

Sagar: Let us consider implementation of IoT in an Oil & Gas Industry as our example., Imagine that you want to implement IoT to check the overall oil loss occurring in a fuel delivery system. Here, you will have to analyze the project from business and technical perspectives. You list down all the steps involved to form the solution. You develop the PoC using the minimum hardware& software components to check if the IoT based solution is feasible or not. If you are able to demonstrate that the solution enables reduction of  cost associated with any proliferation, or an oil spill by at least 70% at the PoC  stage itself , then it serves as sufficient  reason to proceed with the full scale implementation.

Q4. What  are the critical design considerations that are often overlooked during a PoC development ?

Sagar: While starting a PoC project it is very important to focus on the end goals to be achieved. For example, let’s say it takes certain modules (software & hardware) to build a PoC. You assembled the modules, out of which some modules were custom made specifically to achieve a certain result. The PoC was successfully demonstrated and approved by the customer. Next as we go for a full-fledged development, if the objective is changed then we have to scrape off all the modules used during the PoC and start all over again.

This leads to too many complications. First, whatever you have created and assembled goes waste. Second if you starting afresh with new hardware and software modules for your actual IoT project, which is different from the components for your PoC, then it creates a suspicion in the customer’s mind. They may not be sure if the new set up will manage to give the result, demonstrated during the PoC.  Thus it is always better to think of the actual implementation as the bigger picture before developing a PoC.

So when you’re choosing hardware platform and software platform make sure it is more or less aligned with your actual IoT implementation goal & can be reused. Suppose that in the PoC stage of an IoT project I have to integrate a small microcontroller. I can do this using either the Raspberry pi or Beagle Bone. And I write the software code and import certain software libraries to execute the necessary actions. But after the PoC if I realize that these modules cannot be used for the actual implementation of the IoT project, then it’s a whole lot of wastage of money and time.

So, whatever you do in the PoC should be reusable when you do the actual IoT full-fledged implementation.

Q5. What are the steps involved in an IoT PoC development?
Sagar:
The first and foremost thing that should be done before developing a PoC for your project is a cost-benefit analysis.

  1. Cost-benefit Analysis to validate if the IoT implementation is worthwhile. Identify the business requirements and the desired results that PoC is expected to demonstrate ( which would be about 70-80% of the final business goal.
  2. Selecting the hardware and software modules – which might involve a combination of off-the-shelf and custom made modules.
  3. Preparing the setup for PoC development- This includes:
    • Identifying the data collection points within the customer’s IoT ecosystem,
    • Development of the sensor nodes
    • Development of the gateway device
    • Integration of the communication model
    • Choosing the ideal cloud platform (3rd party or any internal cloud server)
    • Establishing connection with the cloud
    • Connecting the cloud with the user interface or dashboard
  4. Demonstrating the PoC to all the stakeholders responsible for approving the PoC of the IoT project.

Q6. Can you share some examples to explain more about custom module development for the PoC?

Sagar: For example, you want to build an intelligent sensor node and you may have to build a custom gateway which will cater to a specific protocol. Gateways are much lesser of problem, but, most of the time when it will comes to intelligent sensor node the data collection point varies with the application. It could be as simple measuring the temperature and humidity or it could be very complex like measuring the flow and quality of the fuel/oil.

Based on the complexity you can choose right hardware sensors and custom build the intelligent sensor module and also plug in all those communication related protocols and build the Pilot project.

Q7. While developing the PoC, should one simulate the data or use actual data- what is your advice?

Sagar: I would say, during the PoC design and development phase you may feed some data for simulation. But during demonstration of  the PoC, one should fetch the data from the real working environment. Usability will be a question if we use the simulated data so it’s better to use the actual data from the real operating conditions. So,At the end, we have to make sure that we  don’t harm the regular production so we take care of all the rapid prototyping.

Q8. Ideally, how long does it take to develop a PoC for IoT applications?

Sagar: The general perception about the IOT development projects are that they can be completed within 3 to 4 months. But in practice, what we have seen is that it takes at least 6 months for the development itself and then another 4 to 6 months for the actual validation in the field on a pilot production. In nutshell, it takes a good 12 to 15 months for a full-fledged implementation of IoT.

But with an IoT proof of concept (PoC), depending upon the complexity of the project; the minimum viability of the project can be assessed in just 2 to 4 months. PoC stands for Minimum Viability with Maximum Returns.

Q9. How do you evaluate the total cost of the project before going for a full-fledged production?

Sagar: Usually, the PoC requires about 10-15% of the overall investment of a full-fledged production. So based on the PoC cost, you can evaluate the cost of the overall project implementation, to a certain extent. At around 15% of the overall project cost, the customer can validate his initial assumptions about the IoT project & identify if the results are as close to what he intends to have.

Q10. Other than the feasibility analysis & design optimization factors, what benefit does a PoC development approach for IoT  projects provide to the customers wanting to implement IoT in their business?

Sagar:  One of the prominent advantages of PoC from the customer’s point of view is a chance to validate and review vendor selection, in addition to those we have already discussed. This is one of the intangible benefits of going by the PoC way for IoT implementation. If before the production stage, you are not happy about the vendor, then you can always change the vendor. The IP right of the PoC is with the customer and hence he can approach yet another vendor if he wishes to, for final IoT project development.

We thank Vidya Sagar, Head – IoT & IVI, Embitel Technologies, for sharing his valuable insights on the PoC implementation process.


  • 0

Classical CAN v/s CAN FD: Decoding Their Data Transfer Capabilities and Compatibility with the Bootloader Software

In simple terms, Controller Area Network (CAN) can be understood as a medium that links all electronic systems in the vehicle. It is the CAN Bus that supports all the communication between different Electronic Control Units (ECU) within a vehicle.

When CAN Bus standard was defined by BOSCH in 1980, the electronic components were a few. The payload on the network did not go beyond 8 Bytes. The data rate required for software flashing was also not very high as software still did not control a lot in the vehicles.”

Fast-forward 20 years since the introduction of the CAN Bus! We will find ourselves overwhelmed by the scale of all things software within the Automotive Industry

From the number of vehicle ECUs (control units) to the complexity of the automotive software, everything has scaled up to the newer heights.

Hence, a faster In-vehicle networking Bus standard became the need of the hour. In 2014, the enhancement to CAN was finally launched. It was called CAN FD (Flexible Data-rate). As a result, the senior avatar of CAN (remember 1980s) was awarded an honorary prefix and was rechristened (for ease of naming) as the Classical CAN.

Why the Need for CAN FD

The bandwidth requirement of the new automotive applications has been increasing more than gradually! This is mainly due to the Volume, Variety and Velocity of data from sensors and other sources being fed to the in-vehicle network of control units. Automotive ECU reprogramming is another area where large size binary files are required to be transferred over the in-vehicle network.

The bit rate and payload limitation of CAN started impeding activities like automotive ECU flashing, and faster communication for ADAS applications.

High data rate and larger payload were achieved by modifying the frame format of CAN. This new frame format (CAN FD solution) has the capability to support higher bandwidth than 1 Mbit/s and hence it could manage data payloads higher than 8 bytes.

Since the new frame format solution has the ability to support flexible data-rates (up to 8mbps) depending on the requirement of the application, it was christened as CAN Flexible Data-rate or CAN FD.

We will go into a little more details to understand how exactly CAN FD is able to fill the gap created by inherent nature of CAN operations

The data over CAN is sent in frames. The receiving nodes send an acknowledgement flag as soon as they receive the frame. As this acknowledgement is send into the transmitted frame, the sender gets an in-frame response after a successful transmission.

The transceivers present between the CAN and the vehicle ECU and the length of the physical cables often cause propagation delay. It also directly impacts the bit rate resulting in slower data transfer.

CAN FD solves this problem by using two separate frames to send the real data and the acknowledgement data. Higher bit rate is used to transmit the data itself and the nominal bit-rate is allocated to control data (acknowledgement).

We will elaborate a little more on it when we discuss the CAN and CAN FD compatibility.

The Connection between Bootloader and Controller Area Network (CAN)

In an automotive ECU, the primary function of Bootloader software is ECU Re-programming also called as ECU Flashing. The Bootloader receives the updated program through the CAN and then performs the necessary function.

There are three phases of ECU reprogramming/flashing, namely, delete, download/program and verify. In these three phases, the download time is the key factor.

In the automotive applications like ADAS, Infotainment, CAR HUD and others, the size of the software packages is quite large. Classical CAN may take several minutes for the update or file-transfer as its max data rate is 1 Mbps.

On the contrary, with a data-rate up to 8 Mb/s supported by CAN FD ECU flashing can be accomplished in seconds. Unarguably, this is a huge advantage.

The block diagram shows the physical layer of CAN FD stack.

CAN FD Physical Layer

Classical CAN v/s CAN FD: The Striking Differences

Some of the differences which are also the main advantages are quite obvious. It includes the higher bit rate and support for larger payload. We will try to bring out some more discreet yet important differences.

But let’s first discuss the more obvious ones.

  1. Increased data rate: From a max of 1 Mb/s to up to 8 Mb/s, the change is glaring. Increased data rate is highly beneficial in re-programming the applications like ADAS (Advanced Driver Assistance System), as large data packets are needed to be transmitted.
  2. Large Payloads: CAN FD supports 64 bytes of data field as compared to 8 bytes in CAN. This huge leap in payload size translates into faster and more efficient in-vehicle network communication among the vehicle ECUs. End-of-line software upgrade also becomes faster affair with CAN FD.

    With 64 bytes of payload supported, there is no need for the splitting of the long messages as well. This simplifies the handling of the data, thus contributing in efficient data transmission.

    And now let’s move on to the discreet ones:

  3. Message Format: The message frame format has undergone some crucial changes in CAN FD bus standard. The most primary being the ability to send the control data (arbitration and acknowledgment) with a different bit rate (usually 500 Kb/s) and send the actual data at a higher bit rate.

    Another improvement in CAN FD is the introduction of CRC (Cyclic Redundancy Checks), that takes care of the larger frames by taking CAN Stuff bits into the account. The diagram below shows the major differences between the message frames of CAN and CAN FD.

    CAN FD Message Frame

  4.  

  5. Data bit rate dependency: Propagation delay is quite common in CAN bus standard due to the transceivers and cable length. Propagation time is nothing but the time required to send the signal to the most distant node and get it back. The bit-rate will directly depend on the propagation delay as there is a reciprocal relation between them.

    There is no such dependence of bit rate on signal propagation delay. Reason being the difference in the message frame format that we discussed in the above section.

The Automotive Industry Outlook

CAN FD has been around for only 4 years and is still in the process of being adopted. The vehicles that are already in production still have classical CAN and migration is rather tricky and not very viable.

Automotive OEMs are introducing CAN FD in the new cars by adding the CAN FD transceiver to the vehicle control unit.

It does escalate the hardware cost a little but it is expected to deliver the benefits and RoI, considering the faster data transmission and ECU reprogramming that CAN FD enables.

CAN FD and Classical CAN: The Compatibility Factor

A Classical/Classicalal CAN controller will not be compatible with CAN FD, however, the vice-versa is true. Backward compatibility very much exists between CAN FD and classical CAN.

It implies that both CAN and CAN FD nodes can be used together as CAN FD is backward compatible with Classical CAN. However, special hardware would be required.

Following are some of the reasons why CAN and Can FD backward compatibility is possible:

  • Dependence of data bit-rate on transmission characteristics and physical layer and not on propagation delay.
  • Some of the compatibility issues can be resolved by the transceivers that feature passive partial networking and are both CAN and CAN FD tolerant.

The Conclusion

“The future bandwidth requirements are going to be higher and CAN FD seems to fit the bill. CAN FD is also perfect for communication in Electric Vehicles as they demand higher bandwidths. The communication between the vehicle control units, DC inverter ECU, battery management systems etc. in an EV definitely calls for very high data transmission and inter-ECU communication. CAN FD has a serious use case here.”

Even in gasoline and diesel powered cars, new electronic architectures are under extensive research. We could even possibly witness CAN FD subnets in Powertrain and Body Control Module along with Ethernet. Whatever the future may hold, the legacy of CAN will continue with CAN FD.


  • 0

Check C framework for Automotive Applications: A Powerful Unit Testing Tool that’s Smart & Flexible

A lot rides on the electric control units ECUs and the software that sits inside it. From the manufacturer’s reputation to the safety of the vehicle occupants, embedded software is powerful enough to leave an impact on these critical factors.

Hence, there is no scope for errors and bugs when you are developing automotive embedded software for critical vehicle ECUs.

So, as an automotive software developer, what should one do to ensure that the automotive ECU software is foolproof? Software Testing is your friend in need!

As the automotive software are quite complex with each module having several functionalities, the software testing process also gets quite tricky and time consuming.

Tools like Check C come to the rescue of the automotive software developers and the testing engineers like you, to ensure that you deliver quality products.

In this blog, we will talk about the capabilities of Check C tool and how this tool makes the unit testing process a little easier for the automotive software development team.

Overview of Check C, a Unit Testing Tool

Essentially, Check C is a software tool for writing and executing unit tests. However, there is more to what meets the eyes.

Check C is an open source tool and this is one of the reasons why it so popular among the embedded software engineers. Ask any seasoned embedded software developer and they will tell you how special the tool is.”

It may not be an automated unit testing tool, but it can enable automatic execution for the unit testing processes. The fact that Check C is standardized also makes it a reliable tool for automotive ECU testing.

The Prowess of Check C as a Unit Testing Framework

Simplicity is a vital aspect of the frameworks that need to handle complex codes. Check C is a winner in those terms. It boasts a very simple framework for the testing team to define the test cases.

There is a separate address space where the tests are run. This leads to the detection of both code errors and assertion failure that may cause segmentation faults.

Also, Check C supports test reporting in following formats:

  • XML
  • Tap
  • Subunit
  • And a generic logging format.

Of these formats, XML has been the format of choice across the software testing community.

Features of Check C testing tool:

  • Modifiable Code and Manual Scripting:

    For performing Unit Testing, as per statement coverage and branch coverage, the software testing team is required to write the scripts and codes manually.

    Of course, Check C framework verifies the codes and scripts, but gives the developers the flexibility to write the test cases according to their understanding.

    For instance, the code to generate the test report can be customized to support desired test report formats.

    Let’s say one needs to add the hyperlink to the test reports. So that, in case of the failure of any test cases, the developer can simply click on the hyperlink and C file will open. This is possible to implement using Check C framework.

    Also test reports that are generated as text files can be converted to XML files by writing simple scripts.

    Manual Scripting also offers some advantages, for example, in case of code changes, the script used previously will not give 100% test coverage. This makes it easy to identify any issue with the new code.

  • Check C APIs:

    Check C provides APIs for unit testing. Some of these APIs are Start Case-End Case, ck_assert_int_eq and more.

    Here is a code snippet that clearly depicts how one of the Check C APIs, Start_Test, End_Test work

    Check C APIs

    Each test case starts with START_TEST and ends with END_TEST. Similarly, other APIs have their functions clearly defined.

  • The Unit Testing Methods supported by Check C Tool

    Statement Coverage: This method is also known as Line Coverage because in this method, the tool checks every executable line of the code once. The objective of statement coverage is to identify ‘dead codes’!

    These are basically software codes that may have been written by the developer by assuming that certain condition will be fulfilled. However, during the execution of the entire function, such assumed condition is never satisfied and a specific set of code never gets executed (hence the name ‘dead code’).

    Branch Coverage: It is a little in-depth unit testing method, in which ‘if..else’ branches are tested. It can happen that a developer misses to include the ‘else’ condition in the branch causing output anomalies.

    Such errors can be easily identified by the branch coverage method. Branch coverage ensures that the branch is tested for both ‘true’ and ‘false’ scenarios. It helps in the validation of all the branches and mitigates any abnormal code behavior.

    Calls Executed: This part validates internal functions or API calls within the code. It checks whether the right function is being called and also whether the function is giving the desired output.

    Check C lets the software testing team input the parameters for API calls and validate the feedback/output based on those parameters.

    Modified Condition/Decision Coverage (MCDC):Ideally, every piece of code should have an entry point and an exit point. However, any instance of multiple entry/exit points need to be identified and reported. Check C does this efficiently with MCDC.

    Instances of misplaced break statement, pressing of ESC character and more will always lead to partially executed loops (certainly not desired and recommended).

    Also, there may be a scenario when two or more conditions (say A & B) need to be met for a particular test case to be 100%. Statement and branch coverage will not suffice here as they check only one condition. If the first condition is true, it will not execute further.

    These issues are identified by Check C using the modified condition/ decision coverage. To label a software code as “Tested Ok” for deployment in the production server, the percentage of statement, branch and calls executed is usually set at 100% and for MCDC, it is kept around 90%. This percentage can be specific to the projects and the safety criticality of the software component.

    At times, even after running all the test cases, MCDC may be at 70-80%. Check C provides a Dot GCOV file that can help the developer understand which part of the code did not execute.

    Shown below is a sample Unit test report and MC/DC code coverage report. The coverage percent along with other relevant info is mentioned

    Check C 3_MCDC_Embitel
     

    For Example: #### for the line/branch not executed

    Taken 0- for MCDC coverage failure

    Call 0- for call not executed

    Features That Make Check C the Preferred Tool for Unit Testing

    There are plenty of reasons why Check C is one of the most widely used open source unit testing framework. Following are the most striking features of Check C:

    • A lightweight tool that uses same language and development environment as the developer
    • Easy, systematic and a comprehensive method of organizing and executing the test cases
    • Check C Framework code can be modified according to specific testing needs
    • Reusable test functionality
    • Customized test report generation
    • Debugging the code using Dot GCOV file.
    • Automated regression testing

    These features bring along with them a host of advantages. We have enumerated some benefits of using Check C:

    The Benefits of Check C as a Unit Testing Framework

    • Code Robustness is ensured
    • Run-time error can be avoided
    • Open source nature reduces cost of development
    • Modifiable code for flexibility
    • Powerful tool as it simulates all test conditions
    • Boundary value checking
    • Dead code removal through various test coverage
    • Functionality can be validated efficiently

    Migration of Check C from Linux to Windows

    Check C is originally written for Linux. However, it can be migrated to Windows and other operating systems too.

    Migration to Windows OS is performed using Cygwin Software. It can be easily installed using the setup file freely available online on Cygwin website.

    The image shows the commands needed to run to get this migration started

    Check C 4

     

    After the installation, you need to download the Check C source code which is open source and available on https://sourceforge.net/projects/check/files/latest/download.

    A few commands on the Cygwin Terminal and you are good to go. A detailed tutorial for migration of Check C to Windows OS can be found online.

    Final Thoughts

    Check C as a unit testing framework does not attempt to be an automated unit testing tool. In fact, it aids the developer in executing the test cases in an ideal environment.

    It allows the developer to add manual scripting and do the desired code modification. With a semi-automated flavor to the framework, it is just what the developers coding in C language require- power with flexibility!


    • 0

    Amazon Web Services Recognizes Embitel Technologies as a Standard Consulting Partner

     

    Bangalore, 13th July, 2018: Embitel Technologies is now a Standard Consulting Partner as part of the Amazon Web Services Partner Network (also known as APN) program.

    This program is designed to help AWS Partner firms in enhancing their business competency in a particular solution area, through additional prominence and business benefits extended by AWS.
    Under the APN Partner Program, the partner firms can attain any of the 4 performance tiers namely- Registered, Standard, Advanced, and Premier.

    The partners can advance through these four tiers depending on pre-defined criteria as prescribed by Amazon Web Services. When an experienced cloud technology company like Embitel Technologies is recognized as an APN consulting partner, it helps businesses in designing, planning, migrating, and/or building of new applications on the AWS cloud platform.

    An APN Consulting Partner firm could be a System Integrator, a Digital Agency, a Managed Service Provider (MSPs), a Strategic Consultancy, a Reseller,  or even a Value-Added Reseller (VAR).

    AWS-Standard-Consulting-Partner-Status

     

    Embitel has earned this recognition by successfully demonstrating its technical proficiency in delivering advanced cloud solutions on AWS, for its Ecommerce customers across India and Middle-East.

    To achieve the Standard Consulting Partner badge, Embitel had successfully met the specific requirements mandated by APN including –

    • Active Customer References for the projects on AWS cloud platform,
    • AWS professional accreditations and certifications (Technical and Business),
    • Investments on AWS cloud platform, among others.

    As a Standard Consulting Partner of the APN, Embitel Technologies is enabled to leverage exclusive AWS resources such as APN Marketing central and free usage of AWS platform for qualified Proof-of-Concepts of the customers.

    Additionally, Embitel Technologies will be eligible for AWS technical and business training and accreditations, AWS Managed Service Program, AWS Test Drive and an exclusive access to the APN Partner Portal.

    The APN Consulting partner badge helps in creating a differentiating factor for the partner firm and showcases the service-level expertise to their AWS customers.

    Working with an APN recognized partner firm ensures that the customers can leverage key AWS services without having to bother about monitoring, automation, and management of their application on AWS platform.

    Embitel Technologies has been partnering with global brands including – CompuIndia, Desire, Homestudio, Malabar Gold & Diamonds, SACO, Spencer’s & many more; helping them in their AWS Cloud journey with best-in-class services.

    A milestone in its journey towards providing cutting-edge solutions, this recognition from the APN will enable Embitel Technologies to deliver value-added cloud based solutions to their customers on AWS.

    Webp.net-compress-image


    “We believe that this partnership is an official recognition for the kind of work we have been doing and that this is just the beginning of a new chapter and new opportunities.“


    Neelavanna Kannan, IT Manager, Embitel Technologies.

     

    About Embitel Technologies

    Embitel Technologies offers cutting-edge solutions to the global retailers in the areas of E-Commerce, Mobile and Cloud technologies.

    Embitel has helped numerous businesses gain competitive advantage and deliver great customer experience through end-to-end digital commerce solutions, from consulting to implementation to maintenance.

    Headquartered in the silicon valley of India, Bangalore, Embitel has global presence with offices in Germany, the US, and representation in the Middle-East.

     

    About APN

    The AWS Partner Network (APN) is a global partner program for Amazon Web Services (AWS). The primary goal of the partner program is to help APN Partners in building robust AWS-based businesses or solutions by giving them advanced business, technical, marketing support.


    • 0

    ISO 26262 Compliant Unit Testing Strategies: A Step Towards Achieving Functional Safety in Automotive Product Development

    It is always better to be safe than sorry! And when human life is at stake, the commitment to safety requires to be of highest order.

    We are talking about safety of the automobiles – passenger vehicles, commercial vehicles, off-road vehicles, Electric Vehicles and more. To be more specific, we are referring to the Functional Safety in Automotive.

    As per the ISO 26262 standard, functional safety corresponds to the fool-proof design and development of electric and electronic components of a vehicle.

    “There are an exploding number of electronic and electric components in a modern-day automobile. A lot of them including the anti-lock braking system, airbags, electronic power steering and more have a direct impact on the safety of the driver and the passengers. Rigorous and standardized software and hardware testing process is one of the ways to ensure robust and fool-proof systems.”

    In this blog, we will talk about the unit testing aspect of the functional safety. The need for such a guideline will also be discussed.

    The transition from ISO 9001 based Testing to ISO 26262 Compliant Unit Testing

    As already mentioned, the safety criticality of several automotive components is quite high. In such scenarios, the functional safety at both unit level and system level needs to be ensured.

    A few years back when ISO 26262 was uninitiated, the unit testing standards were in compliance with ISO 9001. The need for the concepts of ‘functional safety’ arose when certain failures in safety critical components started getting reported on a regular basis.

    After Though testing has always remained a part of automotive product development process, but after these recalls, the testing process was in dire need of a revamp.

    On top of this, the numerous car recalls by many global automotive OEMs over the years also added fuel to the fire. In these recalls, sometimes, the fault was found to be with the airbag and at times, with the braking system.

    Though testing has always remained a part of automotive product development process, but after these recalls, the testing process was in dire need of a revamp.

    One of the major aspects where ISO 26262 compliant Unit Testing differs with ISO 9001 is related to the writing of the test cases. For ISO 26262 compliance, the test cases are always written in accordance with the safety requirements.”

    New concepts and methods of unit testing have been included in the ISO 26262 that make it ideal for achieving functional safety in automobiles. We will touch upon these methods further in the blog.

    ISO 26262 Compliant Unit Testing: What Makes the Process Different?

    If we look from a broad perspective, ISO 26262 guidelines are focused on making the software codes more comprehensible, reliable and easy to test. One of the example is the restriction of the software component and their interface sizes. By doing so, the code is rendered less prone to errors.

    The ISO 26262 unit testing guidelines aim at demonstrating that only the unit design specifications are fulfilled and any unrequired feature is done away with.

    Such requirement based unit testing lets the automotive testing team input the values and check the output. Depending on the output, the bugs are identified and processed.

    Understanding the Unit Testing Recommendation Table, Defined by ISO 26262

    The section 6 of ISO 26262 standard has the recommendations for unit and integration testing. The recommendation table 10 has all the methods for software unit testing. Whereas, the table 11 recommends the methods for derivation of the test cases.

    We will go through each of the methods to have a better understanding:

    ISO 26262 Table 10 – Methods for unit testing of the software

    Requirement-based test: This method helps in systematic identification of implementation failures. The failures occurring due to incomplete and inconsistent requirement are also identified.

    In this method, the input values are derived from the behavioral requirements which are usually developed previously. If there are no documented requirements, they need to be deduced from the functional model as it has the executable specifications.

    It has to be made sure that for all the requirements that have to be implemented by a software unit, one test case must be defined.

    After the requirements are finalized, requirement-based testing is applied. As we can see in the table, it is mandatory for all ASIL ratings (A to D).

    ISO 26262 Unit Testing 1

     

    PS: The ‘+’ symbol in the table implies Recommended and ‘++’ implies strongly recommended

    Interface Testing as per ISO 26262 standard: Correct implementation of interfaces is very strongly recommended by the ISO 26262 unit test recommendation table. This is because, every software unit may have been tested individually but their communication with other units is also very critical.

    During the interface testing, the value range of the incoming signals from the interface is defined and divided in classes. These classes have a boundary value which is used to define the test cases. After the test cases are defined interface testing can be performed.

    Interface testing is performed to detect early failures that could go unnoticed till the integration testing process. At that stage, it would be even difficult to localize the issue.

    Fault Injection Testing: Quite a self-explanatory term, fault injection implies the insertion of some arbitrary faults. This may include corrupting the values of CPU registers, code mutation, corrupting the variable value and more. Faults can be injected either at compile time or run-time.

    This testing is done to ensure that the software unit behaves in an expected manner at the occurrence of any error.

    Fault Injection Testing is strongly recommended, but only for automotive products that require ASIL D compliance.

    ISO 26262 Unit Testing 2

     

    Resource Usage Test: This test is performed to ensure that the unit being tested does not eat up a lot of CPU memory. Resource Usage testing is usually done on the target platform or the simulator. This test is strongly recommended only when the software product is targeting to be ASIL D compliant.

    Back-to-back Comparison Test: The software unit under test must behave like the model based on which the unit was designed. Back-to-back comparison test achieves exactly that.

    For this test method, a model is required that can simulate the unit being tested. The test suites from the source code are applied to the model and vice versa. The results of both the scenarios are compared and output is recorded.

    ISO 26262 Recommendation Table 11- Derivation of Test Cases

    The entire process of requirement based testing depends on the test cases you have defined. ISO 26262 underlines some methods to derive these test cases to ensure the software is assigned the required ASIL level.

    We look at some of the test case derivation methods at a glance:

    Requirement Analysis: Every software unit will have some behavioral requirements. For instance, if a function is supposed to return ‘0’ as the output for a negative input value, we will keep -1 as a test case value.

    If you are using some unit testing tools, these values will be generated based on the requirements. It is strongly recommended for all ASIL levels.

    Analysis of the Equivalence Classes: There is a range of input values for which the behavior of the software unit should be similar. This range is called the equivalence class.

    These classes can be identified based on the input and output division. The input range thus derived is categorized under a subset of the unit. Once the equivalence classes are determined, a value that represents the class is chosen and test class is generated based on it.

    Equivalence class test generation is strongly recommended by ISO 26262 recommendations for ASIL B to D compliance.

    Boundary Values Analysis: Every input can have a minimum and maximum possible value, called the boundary values. For software being tested for ASIL B, C or D, test generation based on boundary values is strongly recommended.

    The Metrics for ISO 2626 Compliant Unit Test Coverage

    Statement Coverage: A part of unit testing, statement coverage covers those lines of codes that have been tested at least once. Only one test case is required. Statement coverage is strongly recommended only for ASIL level A and B.

    ISO 26262 Unit Testing 3

     

    Branch Coverage: Branch coverage is applicable at a decision point, for eg. an ‘if…else’ condition. In such a scenario, both true and false condition need to be executed. Naturally, two test cases are required here. It is strongly recommended for ASIL B, C and D functional safety compliance.

    Modified Condition/Decision Coverage (MCDC): This is where Functional Testing becomes a very serious business. MCDC is highly recommended for ASIL level D. Here, every condition in the decision in the ‘if.. else’ condition or the loops, can independently influence the outcome.

    Role of Testing Tools in ISO 26262 compliant Unit Test Process

    The Unit Testing tools can be quite helpful in helping you achieve the right ASIL level for your software. Running the unit test methods manually can be an extensive task and prone to errors.

    Tools like Reactis and CANTATA etc. ease the process considerably. They can help the developers automate the testing process by

    • Test case derivation
    • Framework generation
    • Execution of the test cases
    • Test report generation etc.

    Many of these tools are built around the ISO 26262 guidelines and offer complete structural coverage metrics at the software unit level.

    Concluding Thoughts

    ISO 26262 has become a de facto standard for automotive industry in terms of functional safety. The unit testing recommendations by ISO 26262 should be followed in letter and spirit to build a really safe automotive system.

    If you are new to ISO 26262 and functional safety, we recommend these blogs for you to have a clear understanding of concepts like safety management, ASIL level etc.


    • 0

    Understanding FOTA in the Times of ‘Connected Cars’

    On an average, an automotive vehicle today comprises of approximately 100 Electronic Control Units (ECU) and over 100 million lines of software code. And this number is growing rapidly since the introduction of Connected Cars.

    Market experts suggest that by 2020, there will be 300 ECUs in a car, managing most of the functions within a car.

    In such a complex automotive electronics and software set-up, the need to remotely manage and update the vehicle ECU software becomes all the more important.

    Any security attack on any Electronic Control Unit (ECU) of a vehicle may prove to be dangerous for the passengers, and cause a bad reputation for the automotive OEM.

    To avoid such crisis, Firmware Over The Air (FOTA) updates have been identified as a robust, reliable and cost-effective method for remotely managing the software updates of connected car systems.

    In case you are wondering how FOTA has emerged as a savior? Well, this blog may help you find some answers.

    What is FOTA (Firmware Over The Air) update?

    FOTA update is nothing but a remote software-management technology for embedded systems, which facilitates wireless firmware upgrade on a device.

    FOTA upgrade involves firmware bug fixes, improving the automotive ECU’s functionality, and replacing older firmware version with an updates version (for either fixing an issue or to add a new software feature).

    A FOTA update event refers to downloading a new firmware within the car ECU, sent from a firmware server located in cloud via a wireless channel such as WiFi/ BLE/GPRS. The FOTA upgrade could include replacing a specific firmware image within a ECU’s Flash memory or adding juts a patch to an already existing firmware image to effect the required changes in the or ECU’s FLASH.

    FOTA for Automotive (“FOTOMOTIVE”)

    At a time when the automotive industry is witnessing some disruptive trends, including electrification and autonomous/self-driving vehicles, it is important for OEMs’ to implement efficient software management strategies.

    And this is where FOTA update technology is being leveraged by the automotive industry.

    FOTA Automotive

    FOTA in Automotive Source: Symphony Teleca

    Why do we need FOTA?:

    1. Cost- Efficient and better managed firmware update:

      Most of the vehicle development process is spread across numerous stakeholders and geographical location. In such a case, performing any firmware update could be a challenging task that involves multiple revisions and modifications.

      Thus, an over-the-air update through wireless network eases the task while lowering any additional cost and time consumed for multiple software/firmware updates during the entire lifecycle of a car.

      IHS automotive had estimated that the total OEM cost savings from OTA (firmware and software ) update process will grow more than $35 billion in 2022 from $2.7 billion in 2015.

    2. Upgrade the firmware safely, anytime & anywhere:

      One of the critical uses of a FOTA update is to send an update to the car, post-decommissioning. FOTA enables the cars to be upgraded remotely, without having the end user to worry about a software-related recall or update. Many OEMs have relied on over the air upgrades to fix major functional faults in their automotive software.

      With FOTA, often most of such firmware bug can be fixed without the need for a vehicle recall by either sending a new firmware or sending a small patch to update the existing firmware with the bug fixing module.

      For example, some time back, Tesla’s Model S’s caught fire in collisions. Tesla dealt with this by sending out an update that changed the suspension settings. Since the update, no further fires have been reported, (although it’s not very clear if this was due to the update).

    3. Lowers the Time to market:

      As already discussed above (point 1) FOTA has been helping the OEMs with reduced time-to-market by updating firmware while the vehicle is still on the production line.

    Future of FOTA in Automotive

    The market reports are clearly suggesting that the future of FOTA in automotive looks bright. This is especially applicable for the automotive industry which is shifting its gear towards software driven development of the autonomous systems.

    The Research and markets has confirmed in its report that Automotive Over the Air (OTA) Updates market is set to grow at a CAGR of 58.15% during the period 2018-2022.

    And many of the leading automotive players are already on the path of making seamless and secure update of FOTA in automotive systems, a reality.

    In 2017, Bosch had come up with new features required to carry out wireless, over-the-air (OTA) updates for cars of the future. These OTA updates ranged from control units and in-car communication infrastructure, to modern encryption technologies and the Bosch IoT cloud.

    markus heyn

    In a few years from now, automatic software updates will be possible in every new car,

    Dr. Markus Heyn, a member of the Bosch board of management

     

    Similarly, seventeen OEMs have chosen HARMAN’s Remote Vehicle Updating OTA version 11 solution enabling 25 million vehicles, making it a pioneer of the commercially deployed OTA solutions in the market.

    Also, an emerging trend in FOTA in automotive, is the Vehicle relationship management/ VRM.

    VRM promises to improve vehicle data management through a more transparent and streamlined process.

    The VRM component consists of VRM Portals (Content Management, Administration and Reporting), Cloud-based, multi-tenant VRM platform (with modules for Data analytics / management; Vehicle, user and component management) & FOTA/ SOTA agent (Resident in target device or car)

    Benefits of Vehicle Relationship Management (VRM):

    Vehicle Relationship Management VRM

    Source: Symphony Teleca

    In the wake of advancements in network and software security, designing a secure OTA firmware (FOTA) upgrade component, addressing the current security challenges in automotive systems, is taking the center stage.

    A secure FOTA mechanism that encompasses embedded device security, communication channel security, authenticity of firmware, integrity of downloaded updates, is being considered. OEMs are looking at security mechanism such as digital signatures, encrypted security protocols to ensure integrity of firmware over the air (FOTA) upgrades.

    A report released by ABI Research says that, by 2022 there would be 22 million vehicles on the road that can get a FOTA upgrade. Thus in the future, firmware and software updates could be more common, more secure and more streamlined.

    Let’s look at what lies ahead!


    • 0

    Complex Device Driver Development for AUTOSAR Compliant Powertrain ECU

     

    About the Customer

    Our customer is an Electric Vehicle OEM, based out of India. They have been pioneering the Electric Vehicle revolution in India with their wide range of products in passenger and utility vehicle segment.
     

    Business Challenge

    The customer had designed an AUTOSAR 4.0 compliant Powertrain ECU (Electronic Control Unit). Following software modules had been designed, as part of the AUTOSAR layered architecture:

    • An application layer
    • RTE (Run Time Environment), and OS,
    • Base Software Module (BSW) and MCAL.

    However, at a later stage need was felt for the addition of a few new hardware components in the powertrain ECU like speed sensors, and Real Time Clock (RTC), I/O expander, H-Bridge etc.

    These newly integrated components were required to communicate with the microcontroller. However, these hardware components had to be kept separate from the AUTOSAR software architecture due to challenges such as

    • Speed constraints with I2C channel.
    • No specification provided by AUTOSAR to interface components like RTC etc.

    Hence there was a need to develop Complex Device Divers (CDD) for the Powertrain ECU

    In a nutshell, our customer’s EV (Electric Vehicle) team was confronted with the following challenges

    • Design and development of the Complex Device Drivers (CDD) for the specific devices.
    • Configuration of the interface between CDDs and the AUTOSAR application layer through SPI and I2C channels.
    • Development of the APIs to enable transfer of data between the application layer and CDD.

     

    Embitel’s Solution

    Our Automotive Team’s job was clearly cut out, as the customer had already built the AUTOSAR layer with base software module, application layer and MCAL.

    We started by developing the Complex Device Drivers for each of the devices required by the customers and proceeded to the APIs development.

    Here is the complete solution that we successfully delivered for the Electric Vehicle OEM:

    • Complex Device Drivers (CDDs) for the required hardware components
    • I2C and SPI channel configuration for application layer and CDD communication.
    • Functional specification (APIs): Configuration of list of signals required by the application to control the non-AUTOSAR hardware devices.
    • Documentation of the APIs and the parameters for data exchange between two layers.

    Powertrain ECU

    As per our established software delivery process, we provided the design documents (software architecture) as well. This would help our customer to understand the architecture and enhance the software in future.
     

    Features of Complex Device Driver Solution from Embitel

    • Solution developed based on AUTOSAR 4.0 Specification
    • Programmers guide for the configuration of the driver
    • AUTOSAR ARXML for Configuration
    • Test Specification, Verification and Test Reports Generation
    • Configurability in multiple variant of the same hardware

     

    Tools and Technologies

    • TI microcontroller platform
    • Code composer IDE
    • Vector DaVinci Configurator tool
    • Vector CANoe- Simulation tool
    • XDS 100v2 Debugger