Skip to main content
  • Products
  • Evaluate our Software
  • Downloads
  • Free Utilities
  • Purchase
  • Support
  • About Us
  • Blog
  • Forum
  • Search
    • Contact Us
    • Forum
    • Knowledge Base
    • Web Shop
    • Newsletter
    • RSS
  •   Jobs
  •   Videos
  •   Blog
  •   Sustainability
  • emVNC-Server
  • Tools

emVNC server
Virtual Network Computing for embedded systems

Access and interact with any embedded target device via USB or TCP/IP.

Contact us
Downloads
Documentation
SEGGER emVNC
  1. 1.Overview
    1. 1.1.Key features
  2. 2.Virtual display
  3. 3.Connection
    1. 3.1.VNC over anything
    2. 3.2.Connection via USB
    3. 3.3.RFB
  4. 4.GUI-independent
  5. 5.Supported clients
    1. 5.1.User authentication
  6. 6.Use case
    1. 6.1.Remote support for maintenance services
    2. 6.2.Setup display for headless devices such as a printer
  7. 7.System requirements
  8. 8.Memory footprint
    1. 8.1.RAM usage starts below 400 bytes
    2. 8.2.Memory consumption in detail
  9. 9.Licensing

Overview

emVNC-Server (Virtual Network Computing) makes it possible to see the display of, and operate, an embedded system via USB (using SEGGER's emUSB-Device), TCP/IP or any other socket-like transport layer.

emVNC was designed specifically for embedded systems. It provides both the server module for the embedded system and the client application for computers. The PC-side application is multi-platform, for Linux, macOS and Windows, and available for download free of charge.

Key features

  • Enables remote and virtual displays even for headless systems
  • Supports any communication channel (USB, TCP/IP and other socket-like interfaces)
  • VNC/RFB server implementation designed especially for embedded systems
  • Very low memory footprint requirement
  • Flexible integration with any graphics and communication libraries, such as emWin
  • Works with any physical or virtual display
  • Standard protocol features for user authentication and reduced network throughput
  • Free VNC Client with VNC over USB support for Windows, Linux, and macOS available
  • No extra hardware required

Virtual display

For an embedded system that has a display, this display can be mirrored on the remote computer. For an embedded system without a display, the virtual display content can be shown. It can even be used as a console/terminal for text only, if desired.

Remote access with SEGGER's emVNC-Server.
Remote access with SEGGER's emVNC-Server on a headless system (no display).

Connection

VNC over anything

Due to its abstract programming interface, the VNC protocol of the emVNC-Server can be transferred via any socket-like transport layer. emVNC supports TCP/IP using SEGGER's emNet and VNC over USB using SEGGER's emUSB-Device, other transport protocols can be easily added.

Connection via USB

Being able to connect via USB is very cost effective and opens a vast array of options. And since USB is already widely used, emVNC can be implemented very easily just by plugging into an existing interface.

There is no extra hardware cost and very little memory is required - in flash and RAM - meaning emVNC can even be used in small embedded systems with limited memory.

RFB

The connection is established via the standard Remote Framebuffer Protocol (RFB), which also enables the use of other VNC clients on devices such as PCs, tablets or smartphones.

emVNC can also be used in parallel with existing functionality.

GUI-independent

The emVNC-Server is GUI-independent. It works seamlessly with SEGGER’s emUSB Device plus a graphics library, such as SEGGER’s emWin. This makes it uniquely suitable for use on embedded devices as there are no limitations on the display hardware.

Use with emWin is highly recommended for high performance and resource efficiency.

emVNC comes with examples for use with and without emWin.

Supported clients

The emVNC-Server supports all standard VNC clients. This protocol implementation has been tested so far to work with the following VNC clients:

  • SEGGER VNC Client
  • gvncviewer
  • SSVNC
  • Remmina
  • RealVNC
  • TightVNC

User authentication

The emVNC-Server provides password protection. Once predefined, users can access the target device by simply entering this password.

SEGGER VNC Client on macOS connected to STM32F746-DISCO board running emVNC Server virtual display playing product demo
SEGGER VNC Client on macOS connected over USB to a STM32F746-DISCO board running a emVNC-Server virtual display to play a product demo.
SEGGER VNC Client on macOS connected over USB to STM32F746-DISCO board running a emVNC Server virtual display playing terminal demo
SEGGER VNC Client on macOS connected over USB to a STM32F746-DISCO board running a emVNC-Server virtual display to play a terminal demo.
SEGGER VNC Client on macOS connected over USB to a STM32F746-DISCO board using a emVNC Server virtual display to play SEGGER demo
SEGGER VNC Client on macOS connected over USB to a STM32F746-DISCO board using a emVNC-Server virtual display to play the SEGGER demo.
SEGGER VNC Client on macOS connected to STM32F746-DISCO board running emVNC Server virtual display playing SEGGER demo
SEGGER VNC client on macOS connected over USB to a STM32F746-DISCO board running an emVNC-Server virtual display to play the SEGGER demo.
SEGGER VNC Client main window on macOS
SEGGER VNC client main window on macOS with the USB device selection visible.
SEGGER VNC Client on Windows connected over USB to emPower board running emVNC Server virtual display playing terminal demo
SEGGER VNC Client on Windows connected over USB to a emPower board running a emVNC-Server virtual display to play a terminal demo.
SEGGER VNC Client main window on Windows
SEGGER VNC Client main window on Windows with the USB device selection visible.
SEGGER VNC Client on Ubuntu connected over USB to a STM32F746-DISCO board running emVNC-Server virtual display playing product demo
SEGGER VNC Client on Ubuntu connected over USB to a STM32F746-DISCO board running a emVNC-Server virtual display to play a product demo.
SEGGER VNC Client main window on Ubuntu
SEGGER VNC Client main window on Ubuntu with the USB device selection visible.

Use case

Remote support for maintenance services

VNC connections are mainly used in cases of remote maintenance. This allows adjustment and maintenance of, for example, heating systems without the need to check the display or control the system at the customer's site. With emVNC, it is possible to integrate the emVNC-Server module into the firmware of the heating system. This ensures that the radiator can be controlled both via its display and via the network.

In the case of a malfunction report, for instance, it is possible to access the radiator via the network on which it resides, to read out log files and to fix errors remotely without the need to send maintenance workers out to the customer.

Setup display for headless devices such as a printer

VNC over USB could be used to create a “headless” printer. In many cases, the display of a printer is used once, to connect to wifi, and then never again. From then on, wifi is used to send information to the printer and to receive information from the scanner. The display is superfluous.

By using VNC over USB, a simple, cost-efficient USB interface could replace the printer display completely. 

The first time the printer is used, the connection to the computer (or phone or tablet etc.) is established via USB. Once the wifi setup is complete all interaction can be remote.
Removing the physical display would simplify the design and reduce cost while also making interaction friendlier and more convenient.

Printer

System requirements

  • Multi-tasking: The VNC Server needs to run as a separate thread. Therefore a multi-tasking system is required to use the emVNC-Server. We suggest embOS.
  • When using TCP/IP as the transfer method an IP stack like emNet is required.
  • When using USB as the transfer method a USB device software like emUSB-Device is required.

Memory footprint

RAM usage starts below 400 bytes

The memory consumption of emVNC-Server itself in RAM is below 400 bytes. The total RAM usage depends significantly on the size of the frame buffer. The frame buffer itself depends on the colour depth and size in pixels. If a graphical user interface software such as emWin is used, emVNC can directly access the frame buffer of the GUI software.

Memory consumption in detail

The following table shows the approximate ROM and RAM requirements of emVNC:

ComponentROMRAMNotes
emVNC-Server6.3 KByte0.3 KByte

+ transfer buffer size (the size of the transfer buffer is user-configurable and can be as low as 64 bytes) 

+ size of the USB device software
or
+ size of the TCP/IP stack

Additionally a frame buffer is required to hold the virtual display, this depends entirely on the color configuration and the size of the virtual display.
The calculation is as follows: <bits per pixel> * <virtual display width> * <virtual display height> / 8.
For example for a 320x240 display with 32 bits per pixel you need 320 * 240 * 32 / 8 = 307200 bytes (300 KByte)
For a monochrome display of the same size you need 320 * 240 * 1 / 8 = 9600 bytes (9.3 KByte)
For a minimal configuration with a monochrome display of size 100x32 you need as little as 100 * 32 * 1 / 8 = 400 bytes.
When using a graphical library (like emWin), the graphical library normally already provides a frame buffer which can be used by emVNC.

Licensing

emVNC is available under various Embedded Software License models and delivered in source code packages. With a wide range of licensing options, emVNC can fulfill commercial requirements as well as technical requirements. All licenses are one-time payments. emVNC is royalty-free and not subscription-based. This makes the software a part of the equipment expenses, keeping the costs static.

The emVNC licenses include:

  • 6 months of updates and support by SEGGER's Embedded Experts.

* Applies to second seat and all additional seats of the Single Product License and Single Developer License.

 

Headquarters

SEGGER Microcontroller GmbH

Ecolab-Allee 5
40789 Monheim am Rhein, Germany
info@segger.com
Tel.: +49-2173-99312-0
Fax: +49-2173-99312-28

Locations

USA: SEGGER Microcontroller Systems LLC

Boston area
101 Suffolk Lane
Gardner, MA 01440, USA
us-east@segger.com
Tel.: +1-978-874-0299
Fax: +1-978-874-0599

Silicon Valley
Milpitas, CA 95035, USA
us-west@segger.com
Tel.: +1-408-767-4068

China: SEGGER Microcontroller China Co., Ltd.

Room 218, Block A, Dahongqiaoguoji
No. 133 Xiulian Road
Minhang District, Shanghai 201199, China
china@segger.com
Tel.: +86-133-619-907-60

ISO 9001 certified

ISO 9001

30+ years of experience

First-class embedded software tools since 1992
  • Imprint
  • Disclaimer
  • Privacy Policy
© 2025 SEGGER - All rights reserved.