The core of the project is a hardware and firmware solutions that allows video recording during fishing.
INTRODUCTION
Fishermen, especially those who like underwater fishing or fishing from a boat, take a tablet with them. This tablet is equipped with a 20 meter wired analog color camera. While users reach their position on the water, they immerse the camera and start monitoring the position finding better areas.
BUSINESS OBJECTIVES
The objectives of the project set for IOMICO team by the Client were the following:
to review and improve the existing PCB solution;
to design and develop a QT user application;
to develop a firmware for camera and magnetometer;
to update OS build and establish a videostream and video recording
BUSINESS PROBLEM/OPPORTUNITY
to analyze existing application requirements, create a user friendly flow, keeping in mind that this application will not be able to be updated after mass production starts;
to investigate existent OS build, to improve it according to project requirements;
to investigate the CPU from Ingenic Semiconductor and provide environment with all settings needed;
to learn and update drivers and codecs according to existing hardware to set appropriate settings for better video stream.
APPROACH
The work was separated into several layers and each engineer was responsible for his area of engineering.
IOMICO team reviewed and left feedback to improve the existing PCB solution.
QT application
QT engineer worked sprints. We held all Scrum ceremonies daily and reported to our client with short demos of work results weekly.
All requirements were prepared in a form of Figma wireframes with detailed description of each UI component and actions user makes.
Sometimes we had to adjust some logic of the App because we faced hardware changes, for example the total number of buttons and their layout were changed etc.
Another issue is testing. For better testing it’s better to have access to all the latest versions of the App. The tablet doesn’t have access to the Internet and for external testing we had to send a new image every time instead of pushing changes to the repo as well as to install special drivers on the camera microcontroller.
Videostream
The camera has to record video and transmit a real-time stream on the tablet screen. The feature is supposed to use n5 and n12 drivers. Another part is a framebuffer processing.
In the current implementation device firmware provides switching from screensaver to working image. Under the working image, video, photos and application controls are distributed.
Switching includes:
output streaming video to the screen;
saving the video to a file or separate frames as a photo;
start the screensaver and get to work.
This item implements the transition to working mode. It is possible to save and display static images. The buffer should be cleaned for usage.
Switch from splash screen to streaming image implemented. Buffer offset fixed. In Uboot, the function drv_lcd_init records a buffer with 313 pixels offset. Accordingly, to correct the screen initialization bias by the kernel and rendering, so we had to add address offset to (720 (X resolution) - 313) = 407. But with the 0 index value = 406.
Camera firmware
Wired camera has multiple features:
recording;
navigation;
lightning.
Our task was to update the current driver for navigating. The navigation works by finding the North by magnetometer direction and showing it on the display. The challenge was to make possible the calibrating of the camera depending on the user location
LESSONS LEARNED
Working with videostream including framebuffer settings and codecs usage needs special investigation before project start.
CONCLUSION
Proper documentation and good communication with hardware manufacturers especially CPU factories are crucial.
The interaction between different departments (hardware, firmware, mobile application layers) plays significant role for holistic project development.
Our services
QT Software Development, Embedded Software Development
Industry
Entertainment
Technology
QT, Linux, n5, Gyroscope, Camera, Display
Team
Project Manager,
PCB Engineer,
Schematic Engineer,
Firmware Engineer,
Software Engineer