Development of the interface part (frontend) in C+LVGL according to the layouts in Figma
It is necessary to implement the application interface according to the layouts in Figma on the LVGL + C stack for Raspberry Pi Zero 2W
What the device is
Raspberry Pi Zero 2W with an installed system image, in which LVGL is already integrated, the standard Raspberry graphical interface is disabled, and there are the following input-output devices:
- 320x480 display (driver integrated)
- touch (integrated into the system, standard driver)
- membrane keyboard (connects via SPI, API\SDK will be provided)
- measurement sensor connected via USB (you will not need to work with it and implement the exchange protocol, we will either work with a sensor simulator or you will simply assume in the code that the data has been received).
What needs to be done
- Implement the interface from Figma on the device using the LVGL library and the C programming language (implementation of the graphical interface and logic). The interface must be fully functional (all transitions between screens, input and display of values, working with the archive, etc.), but there is no need to work with real data. For example, you implement the "Save" button for measurements, implement the archive interface for saved measurements, while for the save button and when viewing measurements, you simply place stub functions that simulate this; the necessary code will be added later.
- Communications (wifi, usb, Novotest lab) - at this stage, it is not necessary to fully implement the exchange; it is sufficient to have a fully implemented interface with network/device overview and connection/pairing + software stubs for connecting external libraries and/or launching external applications and/or subsequent implementation of exchange in C\LVGL.
- Saving measurement results in the device archive (memory) and reading them from the archive (memory) (viewing saved measurements in the device Archive) on the device screen. You only need to implement the interface according to the layouts and leave stubs that simulate writing to disk and reading from disk.
- Ensure 30 FPS when the interface is running. This is achieved automatically when working on the specified stack, but this requirement needs to be formally stated because there will definitely be those who can make a stable solution stop working stably.
In total, the result of your work is a complete mockup of the device interface according to Figma, with all screens, all transitions between screens, and simulation of value output.
Development result
- A working application on the LVGL\C stack, with FPS of at least 30.
- In the application, a fully implemented interface according to Figma (graphics and logic). Measurement, calibration, archive on the device (saving, viewing), device settings - all screens, all transitions between screens, simulation of output of all values.
- Communications (USB, Wifi), Archive, and other modes where real physical data is required - the interface is fully implemented, you use virtual data + stub functions simulating data reception and transmission.
I do not publish Figma layouts in open access. If you feel capable and, most importantly, have experience implementing something similar on the above-mentioned stack - please send a personal message with a request, I will provide a link and access to view the layouts. It is highly desirable to immediately indicate examples of implementations of something similar in essence or stack or describe your experience in developing something similar in this request.
To understand the interface in principle, I provide several window options (there will be about fifty in total).
Measurement

Archive

Settings

-
Good day.
I have experience working with different systems: both embedded and desktop. I created a small demonstration program. However, since my "Raspberry Pi" is still on the way, I worked with what I have on hand: a network mini-computer (SNC Hi3516). Since the mini-computer does not have video outputs, the demonstration software is divided into two parts:
1. A graphical client is running on the mini-computer - it contains the logic, uses LVGL, and sends the contents of the graphical buffer to the graphical server.
2. A regular PC acts as the graphical server and sends mouse events.
Since links in bids are not welcome, I can send it in a private message.
The cost and deadlines depend on the layouts and implementation requirements: exactly as is or to have the same functionality.
For example, the "Measurements" page uses a wheel-type widget, but with fixed elements on the edges - the first and the hundredth. There is no exact widget like that in LVGL, only a "wheel." But, this is not a problem; we can create a widget as per the layout, assembling it from LVGL "primitives."
… I can roughly estimate as follows:
1. "Memory & Archive" page: 100-200 UAH.
2. "Measurements" page: 500-700 UAH.
By "page," I mean both the image and the accompanying useful code.
Deadline - approximately one month.
> Ensure 30 FPS when the interface is working.
#if LV_DEF_REFR_PERIOD > 33
# error "Don't mess around. Keep it at 30 frames per second."
#endif
-
739 6 0 Hello!
I have already completed two orders where I developed a graphical interface on LVGL for Waveshare ESP32 controllers, which I configured to work at 30-45 FPS (I can send photos and videos of the projects for evaluation in private). I also have extensive experience in creating graphical interfaces in C++ Qt and Golang Fyne (the implementation algorithms for interfaces in LVGL and these two frameworks are very similar). It will not be difficult for me to simply transfer the visuals from Figma to C/LVGL code.
I can start developing the interface on a simulator to save time. However, for the final delivery of the project, to guarantee 30-60 FPS and the correct operation of the membrane keyboard (it may not always work correctly via SPI), I physically need the actual device. I have already had such experience working through an emulator: uploading firmware and configuring microcontroller parameters remotely so that everything works was very stressful for both me and the client, especially with unstable internet due to power outages. Therefore, in previous projects, all clients directly sent me their microcontrollers via NP (accordingly, I sent them back via NP as well).
I have set a conditional cost for my work, as I am not yet familiar with the scope of your task.
I would be very happy to continue working on your project!!!
Current freelance projects in the category C & C++
Reverse engineering of console utilities for querying SSD controllers (Flash ID)1. Purpose of the work Extraction of the application programming interface (API) for interaction with SSD/NVMe controllers from the provided set of console utilities (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron, etc.). The result should be working code in C/C++… C & C++, Desktop Apps ∙ 9 days 17 hours back ∙ 6 proposals |
Development of a Minecraft Java Seed Map / Seed Viewer for the websiteDevelopment of Minecraft Java Seed Map / Seed Viewer for the websiteProject Description A browser-based tool Minecraft Java Seed Map / Seed Viewer needs to be developed, which will work on our website and allow the user to enter a seed from Minecraft Java Edition and view an… C & C++, HTML & CSS ∙ 10 days back ∙ 16 proposals |