Technologies

C and C++ programming languages

General-purpose programming languages that are flexible, easy to use, and at the same time very efficient.

‘C’ is the oldest of the three languages and the most widely used. It was created by Dennis Ritchie in 1972 and designed for the development purposes of Unix. It’s the base language when it comes to programming. It contains 32 keywords and has plenty of built-in functions which make it easy to use as it can be run on many different machines. 

‘C++’ is the extension of the ‘C’ language. It was created by a Danish Ph.D. studetn Bjarne Stroustrup. The aim of ‘C++’ was to offer an enhanced version of ‘C’ which would allow more advanced capabilities. It’s more object-oriented and gives users more control in terms of system resources and memory.

Python

Python is a very popular programming language. It offers a wide range of functions and is ideal both for beginners and advanced users. It can be used to build websites, in machine learning as well as software testing. This language is very user-friendly and is often used by non-programmers in various business sectors such as book-keeping and scientific research.

Linux on embedded systems

Using Linux on embedded systems is very popular mostly because it’s an open-source operating system. It’s also enormously versatile as it supports a large number of CPU architectures and can often be found on embedded systems such as cell phones and smart heaters. There are many advantages of using Linux such as low cost, scalability, and built-in dynamic memory management among many others.

Internet of things (IoT)

Internet to things also known as IoT is a term used to describe physical devices which are web-enabled with the use of various sensors, can transfer data between other devices and the network as well update regularly. The number of devices that make up IoT is growing rapidly as it allows us to use them more efficiently without/or with little human intervention. Such devices can often be found both at home and in various environments such as the hospital or cinema.

PCB

PCB also known as a printed circuit board is a structure that can be fitted with conducting and isolating layers. Its main purpose is to support electronic components with the use of conductive pathways imprinted on the board. A PCB can be either single-sided or double-sided or even multi-layered. Printed circuit boards are used in almost all types of electronic devices e.g. heaters or air conditioners.

Raspberry pi 4B OTA

Multiple usage options such as:

  • Pinn boot manager with multiboot to setup SD-card;
  • sh scripts to backup and install OS images;
  • script to reboot to other partition;
  • Jfrog to do remote updates.

API

WizzDev developers have written several APIs in Python using the Flask microframework with Flask-RESTX extension. It is a lightweight and flexible tool, which allows developers to choose the best-suited extension, based on project requirements and quickly deliver ready products. Flask-restx extension simplifies the process of creating REST APIs and allows us to automatically generate Swagger documentation.
Examples:

  • IoT-Starter API: deployed on the AWS using API Gateway service. Used for managing data stored in DynamoDB and things in IoT Core using PynamoDB extension and AWS SDK.
  • Factory testing: website deployed on the Raspberry Pi. Carries out the Factory Testing process of MillHeat devices and provides detailed information for operators in the factory about devices that passed or didn’t pass the whole testing procedure.

Networking

WizzDev has experience in working with TCP/IP stack on various microcontrollers and general knowledge about computer networks.
Additionally:

  • Zabbix – an open-source tool for monitoring a wide range of IT components (networks, servers, virtual machines, etc.). Using Zabbix we can collect, analyze, visualize and detect anomalies of a variety of different metrics f.e CPU usage, network data transfer etc. Zabbix is very flexible in terms of the protocol used to collect data from the host’s devices.
  • GlusterFS is a network file system, which can scale to several PetaBytes of data. Gluster is well suited for data-intensive tasks and it is free and open-source, compatible with the majority of the hardware and operating systems.

AWS for IoT usage

Amazon Web Services is a cloud computing platform offered by Amazon. Its services include IaaS (infrastructure as a service), SaaS (software as a service), and PaaS (platform as a service). The different services offered mean that AWS can be used for various purposes such as cloud computing, data storage, or monitoring services among others.


WizzDev uses the common AWS stack to build and deploy IoT solutions using AWS cloud (IoT Core, DynamoDB, S3, Route53, API Gateway), which consists of the communication with the devices and web-based user interface with fast and reliable access to current and historical time series data. We provide our solutions in the Infrastructure as a Code, manner using Terraform to meet the best practices, regarding providing cloud-based solutions.
Also used in Smog Radar and later adapted for IoT Starter Project.

KiCad

Software used to design electronic schematics and printed circuit boards. We can create all files that are needed for the professional production of electronic devices. Microchip AVR is a family of low-cost 8-bit microcontrollers that can be used in many applications. For wireless communication, WizzDev used ESP8266 and ESP32 with WIFI transceiver, RN4870/70 with Bluetooth Low Energy, RN2483 with LoRa, SIM800/868 to transmit data over GSM network, and RC522 to read RFID cards. To make communication safe and hacker-proof it’s a good idea to use ATECC608 cryptographic coprocessor.

Python for GUI

WizzDev has implemented a few projects that required adding a User Interface – in this case a desktop application written in Python using wrappers for a popular C++ library Qt.
This framework enables easy application ports to other operating systems, be it Windows, Linux, or Mac.

Trinamic TMC5130-EVAL and TMCM-3110

WizzDev has developed technology that allows us to design and develop custom stepper motor controllers based on Trinamic’s chips (like TMC262 or TMC429).  We can provide you with a customized replacement for Trinamic’s integrated modules like TMCM-3110.

OpalKelly XEM7310-A75

In some of the projects, OpalKelly was used to control stepper motors, specifically for automatic control of the system of pumps and valves. WizzDev has also created a demo showcasing the possibilities of using FPGA to transfer large amounts of data using USB 3.0. The PC-end application is written in Python. See our source on GitHub: https://github.com/wizzdev-pl/fpga_data_transfer_demo

NXP MIMXRT1060-EVK (imxrt1062)

WizzDev has experience with NXP’s imxrt1062 processors targeted for Machine Learning nn the Edge applications. Also used Tensorflow Lite for some image recognition.

Quectel BC66

GSM modem. A popular choice in various IoT applications to assure internet connection without access to WiFi.

STM32F407

A 32-bit Microcontroller produced by STMicroelectronics. Part of the ARM-architecture (Advanced Risk Machine) family of Microcontrollers. Very easy to work with, reliable, with low-power consumption, and used in a wide variety of different products.
Comprehensive development of IoT devices: PCB design and prototyping, firmware development, cloud, and mobile app integration. WizzDev mostly specializes in STM32 (from F0 to H7 series).

ESP32 (ESP32-WROOM-32D,…)

ESP32 technological stack includes usually WiFi communication (both as AccessPoint and Station), BLE communication, HTTPS/MQTT cloud communication, HTTP server with REST API, OTA updates via BLE/WiFi, and of course peripheral hardware control (motors, displays, sensors). Our developers mostly work with esp-idf from Espressif, with C or C++. Apart from firmware development the company also provides advisory services and technical support for mass production.

Toradex Colibri iMX7 with YOCTO build

Edge processing with embedded Linux on powerful ARM computer on module. Thanks to full customization of the YOCTO build process we were able to optimize system startup time to two seconds from power-up to communication with CAN device. More information can be found on our blog.

Qt with QtCreator IDE PySide2

It’s a cross-platform application framework that can be used to build applications with different languages such as C++, QML, or Python, but bindings are provided for other languages too. It supports a wide variety of features for desktop, embedded, and mobile platforms. Qt is very popular in terms of rich GUI (Graphical User Interface) implementation in embedded applications and rich software libraries
Development of cross-platform GUI applications with Qt (Linux, Windows, MAC), both in bare C++ and in Python (with PySide2 wrapper). PC application with both user-friendly GUI and powerful computations and algorithms in the backend. GUI prototyping and development with QtCreator.

Google Test/Unity/CMock pytest

Strong emphasis on both software and firmware quality, assured by comprehensive unit tests with Google Test/Unity/CMock/pytest in C, C++, and Python. Not only for PC applications but also for embedded systems for microcontrollers.

Python 3.6, 3.7, 3.8.
PyCharm (IDE)
pyinstaller and innosetup

Comprehensive development of Python applications with GUI (with Qt and PySide2 libraries). Strong emphasis on live-time control applications for laboratory equipment and high-performance processing (with multithreading, GPU and Numba compilation). Delivering Python applications to the customer packed as executable files with package installer, thanks to pyinstaller and innosetup.

HDF5

Comprehensive development of Python applications with GUI (with Qt and PySide2 libraries). Strong emphasis on live-time control applications for laboratory equipment and high-performance processing (with multithreading, GPU and Numba compilation). Delivering Python applications to the customer packed as executable files with package installer, thanks to pyinstaller and innosetup.

Redis

Open source key-value data store. It has many applications when it is required to store persistent data in an easily accessible form.

Libusb

Open-source desktop USB communication handling library. The library supports all types of USB from USB 1.0 to USB 3.1. The library provides synchronous and asynchronous handling of USB communication. The library provides handling from USB device enumeration and hotplugs to data transfer.

pyOpenSSL

Open source cryptographic library. The library provides functionality to generate security keys and encrypt the data.

OpalKelly Front panel API

OpalKelly FrontPanel API is a USB stack that provides an interface for super-fast USB data exchange between FPGA and PC. The Opal Kelly handles the fastest USB transfer speeds.

OpenCV

OpenCV is the biggest image processing tool and AI library. Wizzdev used it for image preprocessing and point tracking technologies.

CMSIS-DSP

CMSIS-DSP is an open-source signal processing library that contains various digital signal processing functions for ARM Cortex-M and Cortex-A processors. Wizzdev used it for audio signal preprocessing like creating spectrograms.

Docker

Docker provides functionality to containerize developed programs. Docker improves the process for deployment of the programs and improves CI processes. Wizzdev used docker to containerize build processes, unit testing, and creation of test environments.

Free RTOS

The name stands for an open-source real-time operating system (RTOS) for embedded systems. Developed by Richard Barry in 2003 and was later purchased by Amazon Web Services (AWS). Its main features revolve around it being fairly small and easy to use. It supports various architectures and is usually written in the C programming language. 

Yocto

An open-source Linux Foundation project that allows developers to build bespoke Linux systems for embedded products. It helps create customized systems by providing various useful templates, tools, and methods. It supports ARM, MIPS, PowerPC and x86/x86-64 architectures.

Nvidia Jetson

The Nvidia Jetson is a computing board developed by Nvidia. It’s basically a small and very powerful computer which lets you run multiple systems and at the same time has a very little power consumption of 5 watts. It’s designed for accelerating machine learning applications.

Free Estimate

Please tell us about your project. The more we know about it, the more effectively we can assist you.

We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.