The system that allows area photo capturing during the flight. The system finds it’s utilization for multiple spheres of usage: farmers, firefighters, geologists, etc.
INTRODUCTION
The firmware is an embedded Linux program running on a System on Module (SOM). Such as the Neo4 (Cortex processor) or the Variscite NXP i.MX8.
The microprocessor’s job is to configure the local hardware and run the system autonomously as directed by the iOS app.
Manages and controls the hardware
The SOM and associated hardware include USB ports, USB hubs, ADC, DAC, WiFi, Bluetooth, cameras, serial ports, ADS-B receiver.
Picture taking control: initiate the camera to take the images, stamp the images with info and store the information on the SSD.
Logging of data to be used for debugging or analysis.
BUSINESS OBJECTIVES
Increase camera utilization efficiency: The objective is to optimize the use of camera resources to ensure that the device is capturing high-quality images while using the minimum resources possible;
Reduce the number of flights required to take all the pictures of the area;
Improve image capture quality: The objective is to improve the algorithms used for image capture and processing to ensure high-quality images are being captured by the device.
Adjust the process of storing data: The objective is to manage data properly in all edge case, e.g. when the SSD gets disconnected, etc.
BUSINESS PROBLEM/OPPORTUNITY
Inefficient use of camera resources: If the camera streams are not being used optimally, there may be a need to optimize the use of the camera resources, leading to lower costs and better utilization of the resources;
Low-quality image capture: If the images captured by the device are of low quality, there may be a need to improve the image capture and processing algorithms to ensure high-quality images.
Inadequate data storage: If the current storage solution is insufficient, there may be a need to upgrade the storage infrastructure to accommodate more data and ensure better data management.
APPROACH
iomico team started from investigation of the current hardware and firmware. After that we compared the AS-IS state of the product with the TO-BE state (based on the gathered requirements) that gave us understanding of the scope of work and timelines.
In the beginning our main goal was to fix all the critical bugs on Neo4 version of the device to improve the quality of the product. Our assumption was that it would allow to acquaint new customers.
In order to build a manageable delivery process we decided to go with Scrum framework.
TECHNICAL DETAILS
Solution provides capability to make landscape pictures from the plane.
The main operation system is embedded Linux. Standard buildroot for Neo4 and Yocto for i.mx8 device. Device contains USB ports with hub to connect cameras, and SSD disk (USB or PCIe connection). The Neo4 board boots from SDcard, i.mx8 device boots from the internal eMMC. Besides there are some periphery: GPIO, LEDs, WiFi, Bluetooth, accelerometer BMI160, temperature, humidity and pressure sensor BME280, shake detector with adc interface and ADB sensor. The main application collects frames from the camera streams and save them to the storage. The application consists of C/C++ modules and additional S3 uploader library with AWS cpp sdk. The application can send images to the AWS cloud with the S3 protocol.
Currently we have two devices: with Neo4 board and with i.mx8 SoM.
RESULTS
At the moment we fixed all the major bugs, like issues with capturing photos, storing data (photos, logs) on SSD which allows to optimize frequency of flights.
LESSONS LEARNED
Before start of the project it is necessary to review AS-IS state of the product (firmware and hardware) to make sure we don’t need to do any refactoring and redesign of the PCB in order to unblock further development steps.
Robust testing is essential: The project highlights the importance of comprehensive testing, especially during the development of complex hardware and software systems.
Effective communication is key: The project also underscores the need for effective communication between team members to ensure that everyone is on the same page and working towards a common goal. Clear communication helps to identify issues and resolve them quickly.
Continuous improvement is necessary: The project shows that continuous improvement is essential to the success of a project. The team must constantly review the system's performance, identify areas for improvement, and implement changes to enhance the system's performance and functionality.
Proper documentation is crucial: The project demonstrates the importance of proper documentation of the system's architecture, design, and implementation. Documentation helps to ensure that everyone on the team has a clear understanding of the system's functionality, and it can be used as a reference when making future changes or improvements.
CONCLUSION
Overall, the project is a significant achievement that demonstrates the team's expertise in designing and implementing a sophisticated system that can capture high-quality landscape photographs from an airplane. The system's functionality and features make it an excellent solution for aerial photography, and the lessons learned from the project will be invaluable to future endeavors.
Our services
Embedded Software Development, Mobile Software Development
Industry
Security
Technology
C/C++, AWS IoT
Team
1 Project Manager
1 Schematic Engineer
2 Firmware Developers