Embedded

Software-udvikling

 

Igennem årene har vi opbygget en solid ekspertise i at identificere de rette konsulenter til enhver form for softwareprojekt.
Vi er eksperter i at finde alt fra specialister inden for hardcore embedded softwareudvikling og softwareudvikling på Windows, Linux, servere, smartphones og tablets.

Embedded software

Vores kompetencer

Platform

Fra blankt papir til robust arkitektur: Opdag vores skræddersyede løsninger, der matcher dine projektbehov.

Applikation

Fra simple knapper til avancerede brugergrænseflader: Opdag vores tilgang til at skabe produkter, der interagerer sømløst med brugerne.

DSP

Specialister i avanceret signalbehandling: Vi skaber brugerinteraktion i alt fra medicinsk udstyr til apps på iOS og Android.

Kommunikation

Fra traditionelle protokoller til IoT: Vi er specialister inden for kommunikationsprotokoller strækker sig fra industriens præferencer til IoT’s komplekse behov.

Tools

Fra diverse udviklingsmiljøer til topkvalificerede specialister: Vi mestrer alt fra programmeringssprog til versionskontrolsystemer. Uanset din udfordring, leverer vi ekspertise – fra algoritmeoptimering til AWS Cloud.

Proces & Metode

Fra vandfaldsmodeller til agile projekter:  Vi foretrækker testdrevet udvikling, men er vi fleksible og følger dine præferencer. Vi rådgiver, men det er dine behov, der bestemmer.

Platform

Fra blankt papir til robust arkitektur: Opdag vores skræddersyede løsninger, der matcher dine projektbehov.

Applikation

Fra simple knapper til avancerede brugergrænseflader: Opdag vores tilgang til at skabe produkter, der interagerer sømløst med brugerne.

DSP

Specialister i avanceret signalbehandling: Vi skaber brugerinteraktion i alt fra medicinsk udstyr til apps på iOS og Android.

Kommunika-tion

Fra traditionelle protokoller til IoT: Vi er specialister inden for kommunikationsprotokoller strækker sig fra industriens præferencer til IoT’s komplekse behov.

Tools

Fra diverse udviklingsmiljøer til topkvalificerede specialister: Vi mestrer alt fra programmeringssprog til versionskontrolsystemer. Uanset din udfordring, leverer vi ekspertise – fra algoritmeoptimering til AWS Cloud.

Proces & Metode

Fra vandfaldsmodeller til agile projekter:  Vi foretrækker testdrevet udvikling, men er vi fleksible og følger dine præferencer. Vi rådgiver, men det er dine behov, der bestemmer.

Ole Larsen, softwareudvikler

Mød en af vores konsulenter

Med over 20 års erfaring er Ole Larsen er alsidig softwareudvikler med særligt fokus på embeddede løsninger. Han har arbejdet som konsulent i TechPeople siden 2015 og før dette hos Kontron Technology, global markedsleder inden for komponenter til embeddede teknologier.

LÆS MERE OM OLE

I Kontrons danske afdeling designede han bl.a. et embedded motherboard (x86) til industrielt brug. Opgaven omfattede hele processen, fra bring-up og manufacturing test til kundeproblemer og tilpasninger. Hos Kontron var BIOS udvikling det primære arbejde, men der var også opgaver med CPLD/FPGA som LPC/FWH/SPI flash emulator, LVDS patten tester. Desuden designede Ole et Application Programming Interface til support for special features på Embedded motherboard, på både DOS, Windows og Linux.

Oles kernekompetencerne spænder vidt, bl.a. programmering af BIOS (AMI/Phoenix), Windows, DOS, Linux, device driver og Bare-Metal. Han er stærk i programmeringssprogene C, C++ og ASM (x86/8051/ARM/6510) og har kendskab til VHDL.

Som konsulent hos TechPeople har han bl.a. arbejdet med at videreudvikle protokolkode til trådløse sensornetværk på assembler-niveau, software til styring af håndsæt og debugging. Han har også designet en gateway til et instrument til temperaturkalibrering for Ametek i Allerød.

Oles interesse for computere startede, da han fik sin første Commodore 64 og Bare-Metal programmering kan føres tilbage dertil. Debugging og Reverse Engineering er også en passion og IDA fra hex-rays er et favoritprogram.

Ole Larsen

Platform

Vi er ofte involveret i projekter, hvor vi starter med et tomt stykke papir og udarbejder en robust arkitektur, der matcher de krav, der er fastlagt for projektet.

Der skal træffes en række valg om platformen med hensyn til CPU/MCU, operativsystem og f.eks. muligheden for at kunne opdatere produktet fra afstand.

Vi adskiller altid produktets logiske kode fra den hardwarenære del via et abstraktionslag, hvilket sikrer, at udskiftning af hardwarekomponenter vil have minimal indvirkning på fremtidige softwareændringer.

Board bring-up

Bootloader (U-Boot)

Toolchain

HW Debugger (Lauterbach / J-Tag)

BSP

OS

FreeRTOS / Mbed OS

eCos

Linux (Yocto / Buildroot / Android / …)

Windows, Windows CE/Embedded

Driver

SPI

I2C

UART

ADC

Display / E-ink

LWIP

CPU/MCU

Arm M/7/9/11

80×86/8051

Atmel AVR

PIC

TI MSP430

Board bring-up
  • Bootloader (U-Boot)
  • Toolchain
  • HW Debugger (Lauterbach / J-Tag)
  • BSP
OS
  • FreeRTOS / Mbed OS
  • eCos
  • Linux (Yocto / Buildroot / Android / …)
  • Windows, Windows CE/Embedded
Driver
  • SPI
  • I2C
  • UART
  • ADC
  • Display / E-ink
  • LWIP
CPU/ MCU
  • Arm M/7/9/11
  • 80×86/8051
  • Atmel AVR
  • PIC
  • TI MSP430

Applikation

I de fleste produkter vi udvikler indgår en eller anden form for interaktion med brugeren. Det kan være alt fra en enkelt knap og en lysdiode til et avanceret grafisk brugerinterface med touch betjening og endda haptisk feedback.

Nogle produkter, bl.a. inden for for medicinsk behandling, anvender ofte en Windows eller en Linux maskine som frontend til den embeddede platform. Her lægges meget af applikationens logik og interaktion med brugerne gennem et GUI værktøj som QT eller MFC/WPF.

Vi har desuden mange kunder, som tilbyder Apps der kommunikerer med produktet. Det har givet os stor erfaring med både native IOS og Android udvikling eller gennem frameworks som Xamarin samt en kombination heraf.

MMI/GUI

MFC / WPF

wxWidgets

Android

QT

Databehandling

Algoritmeudvikling

Dataopsamling

Styring og regulering

Dataanalyse

Data logning

Mobil & Front-end

IOS / Android

Xamarin / Cordova / PhoneGap

HTML / CSS

AngularJS

Bootstrap

UX Design

MMI / GUI
  • MFC / WPF
  • wxWidgets
  • Android
  • QT
Databehandling
  • Algoritmeudvikling
  • Dataopsamling
  • Styring og regulering
  • Dataanalyse
  • Data logning
Mobil & Frontend
  • IOS / Android
  • Xamarin / Cordova / PhoneGap
  • HTML / CSS
  • AngularJS
  • Bootstrap
  • UX Design

DSP

Vi har mange kunder, der arbejder med avanceret signalbehandling, bl.a. inden for audio og video.

På dette kompetenceområde findes der ikke ret mange konsulenter i Danmark. Derfor har vi gennem tiden haft stor succes med at hente udenlandske konsulenter hertil i kortere eller længere perioder.
Ud over at hjælpe med bolig har vi en fast procedure for at give vores udenlandske konsulenter ekstra opmærksomhed, så de trives mens de er på besøg.

Anvendelsesområder

Talegenkendelse

Audio processering

Video processering

Image processering

Fingerprint

Kryptering

Signalanalyse

Filter design

Kvantisering

Equalisering

Latency reduktion

Parallelisering, load balance

Vektorizing

Kompression

Encryption

Frekvensanalyse

Algoritme-optimering

Fixed-point, floating-point, SIMD

Mobil & Front-end

Conexant, TI, Analog Devices

Intel, AMD, ARM CPU

AMD, Nvidia, Intel GPU

Freescale, Microchip, Atmel

Anvendelses-områder
  • Talegenkendelse
  • Audio processering
  • Video processering
  • Image processering
  • Fingerprint
  • Kryptering
Signalanalyse
  • Filter design
  • Kvantisering
  • Equalisering
  • Latency reduktion
  • Parallelisering, load balance
  • Vektorizing
  • Kompression
  • Encryption
  • Frekvensanalyse
  • Algoritme-optimering
  • Fixed-point, floating-point, SIMD
Mobil & Frontend
  • Conexant, TI, Analog Devices
  • Intel, AMD, ARM CPU
  • AMD, Nvidia, Intel GPU
  • Freescale, Microchip, Atmel

Kommunikation

Vi kommer sjældent udenom kommunikation i en eller anden grad. Igennem mange år har vi opsamlet kompetencer i protokoller, lige fra nogle, der næsten ikke anvendes mere til nutidens mest anvendte. 

Udvikler vi for industrien har den sine foretrukne protokoller. Tilsvarende har consumer-produkterne deres egne favoritter.

Inden for IoT-området anvendes der ofte mange forskellige kommunikationsprotokoller, hele vejen fra en simpel batteri-baseret sensor og helt op til en avanceret cloud-løsning. Her er vi efterhånden blevet specialister.

Wired

USB

TCP/IP

CAN / CANOpen

Modbus

Profibus

POWERLINK

Wireless

Bluetooth / BLE

GSM / GPRS

NFC / RFID

WIFI

DECT

GPS

Mesh netværk

Neocortec

Zigbee

Z-Wave

IoT

Azure

Google Cloud

AWS

IBM Node-RED

MQTT

JSON / XML

Security

Wired
  • USB
  • TCP/IP
  • CAN / CANOpen
  • Modbus
  • Profibus
  • POWERLINK
Wireless
  • Bluetooth / BLE
  • GSM / GPRS
  • NFC / RFID
  • WIFI
  • DECT
  • GPS
Mesh netværk
  • Neocortec
  • Zigbee
  • Z-Wave
IoT
  • Azure
  • Google Cloud
  • AWS
  • IBM Node-RED
  • MQTT
  • JSON / XML
  • Security

Tools

Vi bliver mødt af mange forskellige udviklingsmiljøer ude hos vores kunder. Vi mestrer de fleste programmeringssprog og det i kombination med forskellige versionskontrolsystemer og værktøjer i øvrigt.

Er der et sprog vi ikke kender endnu, så lærer vi hurtigt.

Vi finder de nødvendige specialister, for eksempel én, der kan afvikle algoritmer på grafikkort, eller en specialist fra Malaysia med erfaring i applikationsudvikling på AWS Cloud.

Kort fortalt – vi sætter en ære i at finde nålen i høstakken.

IDE – udviklingsmiljø

Eclipse

Visual Studio

Visual Code

Borland

LabView

IAR

Versionskontrol

Git

GitLab

Github

SW review (Gerrit/Review Board)

SVN

TFS

Sprog

C

C++ (89/11/14)

C#

Java

Python / Perl

Assembler

Javascript

NodeJS

Matlab / Octave

Make / CMake

OpenGL

IDE – udviklingsmiljø
  • Eclipse
  • Visual Studio
  • Visual Code
  • Borland
  • LabView
  • IAR
Versionkontrol
  • Git
  • GitLab
  • Github
  • SW review (Gerrit/Review Board)
  • SVN
  • TFS
Sprog
  • C
  • C++ (89/11/14)
  • C#
  • Java
  • Python / Perl
  • Assembler
  • Javascript
  • NodeJS
  • Matlab / Octave
  • Make / CMake
  • OpenGL

Proces & Metode

Vi arbejder både i projekter, der følger en vandfaldsmodel såvel som i agile projekter i mange afskygninger.

Vi vil meget gerne arbejde med testdrevet udvikling. Men ligesom alt andet vi gør, så arbejder vi sådan som vores kunder ønsker vi skal gøre. Vi kan anbefale løsninger, metoder og processer, men vi er ikke religiøse omkring det. Det er vores kunder, der bestemmer.

Agile

SCRUM / Scrummaster

Kanban

SAFe

TDD / Unittest

Jira

Version One

eXtreme programming

User stories

DevOps

Continuous Integration

Continuous delivery

Docker

Jenkins

Metoder

UML / SysML

Multithreaded programmering

Realtids programmering

Designpatterns

Algoritmer

Use cases

Software arkitektur

Machine learning / AI

Reguleringsteknik

Agile
  • SCRUM / Scrummaster
  • Kanban
  • SAFe
  • TDD / Unittest
  • Jira
  • Version One
  • eXtreme programming
  • User stories
DevOps
  • Continuous Integration
  • Continuous delivery
  • Docker
  • Jenkins
Metoder
  • UML / SysML
  • Multithreaded programmering
  • Realtids programmering
  • Designpatterns
  • Algoritmer
  • Use cases
  • Software arkitektur
  • Machine learning / AI
  • Reguleringsteknik