Free Trials

Download a free trial to find out which Altium software best suits your needs

How to Buy

Contact your local sales office to get started on improving your design environment

Downloads

Download the latest in PCB design and EDA software

  • PCB DESIGN SOFTWARE
  • Altium Designer

    Complete Environment for Schematic + Layout

  • CircuitStudio

    Entry Level, Professional PCB Design Tool

  • CircuitMaker

    Community Based PCB Design Tool

  • NEXUS

    Agile PCB Design For Teams

  • CLOUD PLATFORM
  • Altium 365

    Connecting PCB Design to the Manufacturing Floor

  • COMPONENT MANAGEMENT
  • Altium Concord Pro

    Complete Solution for Library Management

  • Octopart

    Extensive, Easy-to-Use Component Database

  • PRODUCT EXTENSIONS
  • PDN Analyzer

    Natural and Effortless Power Distribution Network Analysis

  • See All Extensions
  • EMBEDDED
  • TASKING

    World-Renowned Technology for Embedded Systems Development

  • TRAININGS
  • Live Courses

    Learn best practices with instructional training available worldwide

  • On-Demand Courses

    Gain comprehensive knowledge without leaving your home or office

  • ONLINE VIEWER
  • Altium 365 Viewer

    View & Share electronic designs in your browser

  • Altium Designer 20

    The most powerful, modern and easy-to-use PCB design tool for professional use

    ALTIUMLIVE

    Annual PCB Design Summit

    • Forum

      Where Altium users and enthusiasts can interact with each other

    • Blog

      Our blog about things that interest us and hopefully you too

    • Ideas

      Submit ideas and vote for new features you want in Altium tools

    • Bug Crunch

      Help make the software better by submitting bugs and voting on what's important

    • Wall

      A stream of events on AltiumLive you follow by participating in or subscribing to

    • Beta Program

      Information about participating in our Beta program and getting early access to Altium tools

    All Resources

    Explore the latest content from blog posts to social media and technical white papers gathered together for your convenience

    Downloads

    Take a look at what download options are available to best suit your needs

    How to Buy

    Contact your local sales office to get started improving your design environment

    • Documentation

      The documentation area is where you can find extensive, versioned information about our software online, for free.

    • Training & Events

      View the schedule and register for training events all around the world and online

    • Design Content

      Browse our vast library of free design content including components, templates and reference designs

    • Webinars

      Attend a live webinar online or get instant access to our on demand series of webinars

    • Support

      Get your questions answered with our variety of direct support and self-service options

    • Technical Papers

      Stay up to date with the latest technology and industry trends with our complete collection of technical white papers.

    • Video Library

      Quick and to-the-point video tutorials to get you started with Altium Designer

    Agile Development for Embedded Systems: The Best of Both Worlds

    Zachariah Peterson
    |  July 14, 2019

    Single board computer

    You might want to use agile development to build this embedded system

    As unique hardware platforms that provide computing power in a variety of applications, embedded systems combine the best of every techie’s dreams: hardware design and software development. Design processes for simpler embedded systems tend to be linear, and the hardware and embedded software may even be developed in parallel by different design teams. As systems become more complex, and as customer requirements continue to diversify, design teams need to rethink conventional methodologies.

    Agile development methodologies are normally referenced in terms of software, but these design and development techniques can be adapted to hardware design, including embedded systems development. As embedded software really requires many of the same processes and ideas used in traditional software development, it is also amenable to agile methodologies. Unifying embedded software design and PCB design into a coherent workflow requires rethinking both processes as an iterative, continuous process.

    If implemented correctly, these methods can help prevent unnecessary redesigns and ensure that a product’s functionality more closely matches a customer’s requirements. Pulling this off takes the right design and collaboration tools that are adaptable to any design methodology, including agile development.

    Adapting Agile Development to Hardware Design

    I have never worked on a software project that was delivered on schedule or on budget. It’s just the reality of the industry. Hardware development projects at least appear to have a tendency to be completed on schedule, thus many project managers might prefer to manage hardware projects. No matter how carefully project managers plan development for a new software platform, there is almost always some unforeseen incompatibility or change in customer requirements.

    One of the key tenets of agile design is that change during a design process is inevitable. As such, a design team needs to be adaptable to changes in customer requirements, electrical functionality, manufacturability, and even mechanical design for an enclosure and packaging. In embedded systems design, a development team faces changes from two directions: disruptions in the PCB component supply chain, and embedded software.

    Implementing the iterative process at the heart of agile development helps a design team quickly adapt during the development process and address changes as they arise, rather than addressing them following batch testing at the end of development. This requires consistent and clear communication between team members and with the end customer. Since the embedded software and hardware portions of a given project may be underway simultaneously, both sets of teams must collaborate.

    Embedded systems design

    How Does the Traditional Workflow Change?

    At the outset, design and functionality requirements should be clearly defined, both in terms of hardware and the embedded software. This is where communication with the customer becomes critical as it ensures the customer fully understands the functionality and feasibility of their new product.

    As part of defining requirements, milestones should be clearly specified throughout the project, but should also be adaptable to change. Working towards milestones while accommodating hardware and embedded software design changes is undertaken in an iterative process. This iterative process lies at the heart of agile development methods, both in software and hardware design.

    One common problem in linear design processes is lack of periodic testing. QA tends to involved too late in the process, making redesign extensive and expensive. PCB design and software testing should be conducted throughout the design process. With the hardware portion of the project, rules-checking features and electrical simulations are the best way to examine functionality before manufacturing prototypes. This helps you plan design modifications much earlier in the design process.

    BGA escape routing on a tan PCB

    There are many variants of agile processes, and the workflow and ideas involved in each are too long to list in a single article. At the heart of successful agile development for embedded systems is using design software with the right development, data management, and collaboration features.

    Using Collaboration and Version Control Tools

    The software industry has made copious use of version control tools for years, and hardware design platforms are finally catching up. The problem with typical PCB design platforms is that the embedded software and hardware portions of a project have been traditionally confined to at least two different programs. This requires yet another tool to provide collaboration and version control during a project.

    A design platform that provides all the standard and advanced PCB design tools required for hardware design and embedded software development nicely facilitates collaboration among team members on a single project. When version control tools are integrated alongside these features, your team can now quickly revert to old design versions when necessary, mimicking the trial-and-error process used in software development.

    As component sourcing and manufacturing are essential for any hardware project, periodic agile team meetings during design iterations should focus determining any necessary design changes to accommodate disruptions in the supply chain. These may influence the design of embedded software during the project.

    When your team has real-time sourcing and obsolescence information within your PCB/embedded software design platform, you can quickly swap components in your device and even reduce the time required for design modifications. Access to this sourcing information early in the design process can even help your team eliminate later design modifications as you can anticipate sourcing problems and adjust your hardware platform as necessary.

    The schematic, PCB layout, and embedded systems design features in Altium Designer® can now be integrated with the data management features in Altium Concord Pro®, giving designers a complete tool set for agile development of embedded systems. The TASKING features in Altium Designer give designers an industry-standard tool set required to create embedded systems for a variety of applications.

    Contact us or download a free trial of Altium Designer and Altium Concord Pro. You’ll have access to the industry’s best routing, layout, simulation, and MCAD collaboration tools in a single program. Talk to an Altium expert today to learn more.

    About Author

    About Author

    Zachariah Peterson has an extensive technical background in academia and industry. Prior to working in the PCB industry, he taught at Portland State University. He conducted his Physics M.S. research on chemisorptive gas sensors and his Applied Physics Ph.D. research on random laser theory and stability.His background in scientific research spans topics in nanoparticle lasers, electronic and optoelectronic semiconductor devices, environmental systems, and financial analytics. His work has been published in several peer-reviewed journals and conference proceedings, and he has written hundreds of technical blogs on PCB design for a number of companies. Zachariah works with other companies in the PCB industry providing design and research services. He is a member of IEEE Photonics Society and the American Physical Society.

    most recent articles

    Back to Home