Devices - Embedded Devices
Introduction
The main purpose of the new 2.x firmware is to provide a fully value, configuration and monitoring surface to the device, making easier the work of the distributors, developers and the support staff. In the future this firmware will be installed on all the Raspberry(/NanoPI) devices.
Technical details
On the devices the familiar Raspbian operation system is running. The firmware is a NodeJS application, that provides the web surface and monitor the system. The internet browser is not a Chromium anymore, it is an Electron. The Electron contains embedded the Chromium, so the websites will show up the same way as in Chromium did. The Electron does not include any unnecessary thing, like translate, right click menu, pop-up help and it does not need installation.
Stability
During the development of the system our main goal was, to prevent system freezes and make the system restart possible without any human interaction. To make this possible, we built in multiple protection methods.
- The NodeJS application is listening, that the Electron provided web surface is running or not, if the application surface is not available, the system will restart itself. The listener triggers every 30 second, but the system will restart after 2 minutes.
- The operation system is listening, that the NodeJS is running, if it is not, it will restart it. (Checks every 1 minute)
- The web surface notices, if the connection with the NodeJs has been stopped working. (You will see a Reconnecting screen, while it goes back online.
Starting the device
The system loading time is usually around 50 sec(depending on the built in hardware), you will see the Q-net loading video, then it forwards you to the firmware. If the internet is not connected, the loading time is slower, because it will wait 100 sec, for get IP.
Surface of the firmware
The design of the firmware is fully responsive, it is easy to use on every resolution and every device, from mobile devices to full HD screens.
Main screen
After the device starting, this screen will appear. In this screen the system will wait 10 seconds to any touch even, then it tries to connect to the server and s tart the application(switch to software keyboard, ticket dispenser or media player site). If any touch event occurs, the timer will stop and it will be possible to access the Control Panel.
items on the screen:
upper left
Here are the resource details of the device. The CPU, memory and storage usage. Below the small icons displays the status of the device (from left to right):
- DeviceController is installed and running
- Ethernet cabel connected
- Onboard Wi-Fi available
- Microphone connected
- Webcamera connected (ticket dispenser)
upper middle
From top to bottom:
- The device’s MAC address
- The device’s IP address
- The device’s WSID
The WSID is automatically generated at the first start. The ID is user-friendly. Two English word (adjective + noun)+4 random number It is easy to memorize this way(e.g.:cold-snow-5582). The WSID can be change on the setting tab.
The device controllers WSID generated the same way, but with a “dc-“prefix.
upper right
The device’s actual date and time.
function buttons on the bottom
If the device has onboard Wi-Fi, a Wi-Fi button on the right will appear. It is possible to turn on the Wi-fi in AP(Access point). The Wi-fi will turn of automatifally after 10 minutes. More information about this, at the configuration section. The button on the right make it possible to access the application’s site, if the server is available, the button will turn green.
waiting for the server
This screen will appear, if the timer expired on the Main screen or we press the “Open the app” button. In this case the firmware checks, that the previously configured server is online (the server address should be visible at the middle of the screen), if yes, it will jump to the application screen. If it is not available, the firmware will wait on this screen to the server, and it will continuously try to connect.
Control Panel
The control panel menu is to configure the device, monitor the resources, test the hardware devices and check log files.
The Control panel is accessible locally and remote as well. To remote access, type the following in the browser: http://
Login
Before you can access to the Control Panel, login is required. You must enter the password here, to prevent unauthorized logins. The default password is: “qnet1234”
Control panel
Dashboard
After successful login, this screen will be shown. In this screen we will see summarized information about the device and we can reboot it. („Reboot device”)
On the bottom left, we can see additional information. The green globe means, that the device has working internet connection.
Settings
You can set up the device’s parameters here. The „Basic” and „Advanced” buttons can hide and unhide additional options.
From top to bottom:
- Websocket ID setup, and screen rotating
- Device Controller WSID setup and the listening port(SD20)
- Server setup (protocol, v6 server address, v6 server port)
- Network settings (DHCP or static)
- Set date and time
- Nightly restart. Due the limited memory of the device and the long term usage of the browsers, it is recommended to restart the device every night. This function restarts the device the previously set time. Best time for this is before the opening hours.
After pushing the “Save” button, the device will automatically reboot, if it is necessary
HW test
In this page it is possible to test every connected device. Some of these options only available, if the hardware is connected to the device.
- Printer test 2” – Printing 2” test ticket
- Printer test 3” – Printing 3” test ticket
- Paint – testing touch panel with paint (exit with double touch)
- Calibration – touch calibration
- Monoscope (exit with double touch)
- Pixel test – For testing LCD pixels. Red, green, blue, white and black screens are switching (exit with double touch)
- Voice record test – microphone test (record, then play). It is recommended to try this on pc, the recorded voice can be play on the PC.
- Start player – video player test. It can be useful, in case it will be an SH46 media player (it starts omxplayer-t with a bunny video). (exit with double touch)
- Start camera – starts to show the connected webcamera. It works only with remote access. (Exit by clicking “HW test” button again)
Logs
It is possible to check log files here.
- System – log of the operation system. Messages, alerts and errors regarding the operation system (/var/log/syslog)
- Device Controller – log file of the Device Controller. It always shows the logs of the last day (opt/qnet/dc/logs/*.log)
- Firmware – the log of the firmware (that provides this surface) itself. (/var/log/firmware.log)
This surface is listening the log files, if a new line is written in them, it will automatically show up here, no need to refresh. Due the limited resources, only the last 1000 lines are visible here.
The „Stop following” button turn off the auto refresh. With remote access it is also possible to download the whole log file with the “Download” button.
Remote screens
These screens are only available in remote access mode.
Terminal
In this surface, we get a remote terminal with the browser, logged in with “root” user! Every command is usable, same like an SSH connection. If an another menu is selected on the right, the terminal will close automatically.
VNC
On the device, the VNC server is always running. In this page we can connect to the VNC server, and the screen of the device will be visible. It can be useful with a ticket dispenser or SH46.
Important! The video player’s screen is not visible through VNC! It is possible to check that the video player is running, in the terminal, type “htop” command and check”omxplayer” process is running.
The VNC transfers the pushed buttons, mouse moving and clicks as well. The F5 and F12 buttons are useable as well. These buttons will be transferred to the device and not run in the local browser.
The VNC is also accessible via vncviewer, on the standard way. The password is “qnet1234”.
Server
This menu is only accessible, if the server is configured and online.
Q-net v6 application screen
After the configuration is done, the firmware should forward us to the application itself.(ticket dispenser, media player, clerk). The application can be closed by touching the bottom left corner of the screen, after this you will be returned to the firmware’s page.
This exit method works with all application (CF04, software keyboard, SH46)
The following hotkeys are also available:
- F5 – refresh screen without cache
- F12 – open developer tools
configuration options
configuration locally
In case of touchscreen devices, the configuration is the easiest locally, on the device. After the device starts, it is possible to enter the Control Panel by touching it. A virtual keyboard makes it easier to fill text fields.
Tutorial video: https://youtu.be/Eb7gZwwy4fA
remote configuration
The web surface of the firmware is accessible from remote devices. It can be configured from or PC or notebook. To remote access, the device’s IP address to a browser.
Tutorial video: https://youtu.be/MWxSyYSKXY8
configuration from mobile (ap mode)
In case of devices with WiFi, it is possible to turn on the WiFi in AP mode. The devices can be configured this way even from a mobile phone.
Usually the customer does not have available WiFi connection, where both the device and our mobile could connect. In this case the device itself turn on the WiFi in AP mode, so we can connect to the device. The Wifi SSID is the WSID of the device with an „-AP” suffix.
The password is the default qnet1234.
The only available website on this Wifi is the website of the firmware on the http://q.dev address.
The Wifi connection can be instable, if the power source is weak.
The Wifi network is available only for 10 minutes, it will turn off automatically after that period.
Tutorial video: https://youtu.be/Yqf1um1MISE
useful informations
The device does not have built in clock. To show the right time, internet connection is required. It is possible to set time/date in the setting menu, but the device will forget it after a power off.
useful commands
- htop – check running processes
- df –ahl – show free space
- arecord -l | grep Sound – microphone connected
- ls /dev/video0 – webcamera connected
- netstat -tulpn | grep 80 – checking port 80
- cat /boot/config.txt | grep rotate – read screen orientation
- sudo touch /forcefsck – check filesystem at next start
known issues
- Sometimes the CPU usage is incorrect
- Camera screen can be watch only remotely