As we start the new year, we’d like to take the opportunity to give thanks and appreciation to our customers, employees and partners – We wish you all a productive new year and look forward to working with you on interesting and challenging projects. We also thought it would also be a great time to look back at our highlights of 2022.
We are pleased to see that our company has continued to grow – our head count grew by an additional two engineers thanks to Harrison Marcks and Pawel Zalewski joining our team. We continued to gain new customers this year including some new countries for us: three from the United States 🇺🇸 and one from Sweden 🇸🇪. Many of our existing customers are re-engaging us on new projects – a signal to us that they are happy with the service we’ve provided. As a result of the growing demand we are always looking for new engineers to join the team – see our careers page for more.
As our company grows we’re keen to ensure that the service we provide is consistent and always improving, as a result we’re working hard to ensure we have the right structures and processes in place. We also felt that this is the perfect time for us to implement an ISO 9001:2015 quality management system – we made good progress on this in 2022 and are hoping to become certified in 2023.
In 2022 we worked within a wide range of markets including retail, transport, industrial, infrastructure, medical, research, film/TV and security. We hope to write up some case studies later in the year so we can share more details about some of these projects. We also continued to work on a wide range of reference boards and custom hardware including ST’s STM32MP157, Ambarella’s CV22 and CV28, NXP’s i.MX6 and i.MX8, Xilinx’s ZU9EG, Arm’s Morello, NVIDIA’s Jetson Nano and Xavier NX, Ti’s AM335x and AM3517 and a range of popular SBC’s including various variants of Raspberry Pi, RockPi 4 and RockPi E. We also worked on x86-64 based hardware such as AMD’s Ryzen and Intel’s Compute Card.
Many of projects we’ve undertaken this year have involved creating a Linux distribution, often for new custom hardware – as such we’ve continued to work with Yocto and Buildroot. Last year we ported the Ambarella distribution for CV22 to Yocto – this year we found ourselves porting the Ambarella distribution again, but this time for the CV28 and to Buildroot. This year we have also ported from a vendor supplied Yocto distribution to Buildroot. As you can imagine we’ve continued to refine our knowledge in working with these various build systems.
In addition to developing Linux distributions, we’re often asked to provide an over the air software update mechanism. This year we’ve integrated SWUpdate into several distributions, we’ve learnt a lot from doing this – in particular with regards to it’s performance when working with devices with mobile or unreliable and slow connectivity – we’ve learnt how to best configure SWUpdate to tolerate intermittent connections (blog post coming soon) and we’ve reduced the amount of data that needs to be downloaded by making use of delta updates. For one customer we’ve also gained a lot of experience in adding support for various USB modems to Ofono.
Our work hasn’t been limited to Linux distributions though, we’ve spent time investigating USB issues, adding kernel and bootloader support for new boards, porting customer kernels with lots of out of tree patches to newer versions, debugging and improving the performance of GStreamer pipelines, debugging obscure issues with synchronised cameras, developing middleware written in C and C++ and have even worked with Kubernetes.
Many of the projects we undertake typically involve effort associated for security hardening. At the end of 2021 we implemented a Jetson Nano Yocto BSP with secure file system encryption, alongside security hardening and a security review. Our review highlighted the potential for a PCIe DMA attack (it’s easy to forget about hardware based attacks!) – Even though we couldn’t find examples of PCIe attacks against ARM platforms we knew it is theoretically possible, we also knew that hardware contained an IOMMU which ought to be able to mitigate such attacks, and from what we could see it appeared to be used. However we wanted to know for sure and the only way was to obtain some dedicated hardware and find out – we’re glad we did because we found a vulnerability in the the NVIDIA Linux Driver Package (L4T) which left the Nano vulnerable to this attack. We reported this to NVIDIA under responsible disclosure where they acknowledged the issue (CVE‑2022‑21819) and fixed it in their next release.
Our optimisation skills were put to use earlier in the year when we demonstrated that it’s possible to cold boot an i.MX8 and perform image classification with TensorFlow within 2 seconds of power being applied. We wrote about this on our blog and published a YouTube video. The demo was performed on a Coral Dev Board which features Google’s Edge TPU coprocessor. Following on from our work on this demo we became a service provider for coral.ai – more details on our partnership can be found here.
In our last Year in Review we hoped that we would become a more active participant in the open-source community – we’re pleased to have taken some good steps in this direction. This year we’ve developed a Yocto layer to support Arm’s Morello Board, this is a demonstrator for Arm’s prototype architecture that leverages the hardware concepts behind CHERI (read our blog posts to learn more about the architecture). This layer will soon be hosted at morello-project.org with our engineer Pawel Zalewski as the maintainer. This year we also also made public lsudt, a hybrid of lsusb -t and udev which makes it much easier to understand the topology of a USB tree and see associated devices (dev nodes) – this is part of a new effort to upstream our internal board farm infrastructure. More generally, as we are working with customers on their projects, we are being much more proactive in identifying fixes or areas of development that could be developed upstream – this often reduces the amount of ‘out of tree’ code associated with a project that would otherwise have to be maintained as the project matures. This year a number of our employees attended the Embedded Linux Conference in Dublin, which we find is an excellent way to keep up to date with everything going on – we hope to talk at next years event.
Finally, we believe that our company should have a positive impact in the areas where we work, in previous years (2020 and 2021) at Christmas we raise money for a selected charity. This year we chose to raise money for The Trussell Trust, an organisation that supports a nationwide network of more than 1,300 food banks. We’re really proud to have raised more than £1k through a combination of donations from The Good Penguin and it’s employees as well as a series of charitable EBay auctions to sell off our unwanted, rare or exotic technology. We hope that as our company grows, so too will our charitable efforts.
2022 has been a productive and busy year for us – now that we’ve recharged our batteries over the Christmas break, we’re ready for another year of interesting projects and challenges. As always please don’t hesitate to reach out to us if you need assistance with your project – we’d love to hear from you.