Skip to content
Talk to us

Mining

Companies that build equipment for mine sites, where a display sits on a vehicle and has to survive the environment around it. They need a platform they can hold still for years, and a way to test the boards they build on it.

Hardware
NXP i.MX6Q
The work
Platform bring-up, and the middleware around it

The work

A machine definition, a kernel port, and the interface on top

The platform built from the board up, with a browser engine as the interface

Case data

Industry
Mining equipment
Product line
Vehicle and equipment displays
Silicon
NXP i.MX6Q
Scope
Machine configuration, kernel port, boot loader, touchscreen, browser interface, Yocto release upgrade
  1. The machine

    We wrote the machine configuration for the board. It is the file every later build depends on.

  2. Kernel port

    We moved the kernel to 5.4. It was the largest single piece of work in this engagement.

  3. Boot loader

    We worked on both Barebox and U-Boot for this platform.

  4. Touchscreen

    We brought it up and we made it work with the interface above it.

  5. A browser as the interface

    We integrated the WPE WebKit engine, so the interface is written as a web application and runs without a desktop under it.

  6. Interface architecture

    We advised the customer's own front-end team on how to structure an application that runs this way.

  7. Yocto release upgrade

    We moved the platform to the Dunfell release, and we added the system packages the product needs.

  8. Serial port

    A serial port dropped data. We found the cause and we fixed it.

Middleware, and bindings for the languages above it

One service the applications talk to, and a specification that outlives any one of them

Case data

Industry
Mining equipment
Product line
Platform middleware for vehicle displays
Scope
Requirements, gRPC service and command-line client, foreign function bindings, protocol specification, watchdog tests
  1. Requirements

    We wrote them with the customer before we wrote any code, because middleware that gets this wrong is expensive to change later.

  2. The service

    We built a gRPC server, and a command-line client for it that an engineer can use directly.

  3. The specification

    We wrote the protocol buffer definitions. They are the contract between the service and everything that calls it.

  4. Language bindings

    We built foreign function bindings, so applications call the service from the language they are already written in.

  5. Watchdog

    We wrote the integration tests for it. A watchdog that is not tested is a watchdog nobody should trust.

How the boards get tested

An evaluation of automated hardware testing, and the reliability work it found

Case data

Industry
Mining equipment
Product line
Hardware and production test platform
Scope
Test framework evaluation, application platform compatibility, boot and rendering fixes, network reliability
  1. Test frameworks

    We reviewed LAVA and Labgrid against what this product needs from automated hardware testing. It was the largest piece of this project.

  2. Application platform

    We checked that the platform runs IoT Edge and Rust applications, which is what the customer intends to ship on it.

  3. Boot appearance

    The screen showed the wrong colours during boot. We found where in the chain it happened.

  4. Locale and rendering

    We fixed how the interface renders text for the languages the product ships in.

  5. Ethernet

    We investigated a network reliability fault and reported what we found.

Tell us what your product must do

Write one paragraph about the product, the silicon and the deadline. An engineer who does this work will read it and answer you.