Hardware specific programming
C is used for most projects, and Python is also used on Raspberry Pis (and sometimes on FPGA systems). VHDL is used for simple FPGA controls; we program mobile and desktop applications in C#.
When programming prototypes, primarily for trade fair model making in the automotive sector, a variety of technical requirements must be reconciled with the desire for innovative design and operating concepts. Components from the “Internet of Things” (IoT) area are ideal for this – they are compact, cost-effective and versatile.
We create the software for operating the interactive and automated model components. This ensures the evaluation of sensor signals, it contains the background logic for all processing processes and generates the resulting control commands for lighting effects and actuators.
Due to many years of experience in integrating a wide variety of hardware components (sensors, actuators, MCUs as well as input and output peripherals), we can cover a wide range of designs and versions of these modules:
Depending on the purpose, catalog of requirements and available installation space, Arduino boards in all versions and sizes, Raspberry Pis, STM32 systems, PSoCs or FPGAs are used.
Programming of lighting effects with intelligent RGB LEDs (WS2812 "Neopixel", APA102 "Dotstar") installed as individual LEDs, strips or arrays for individual icon lighting up to flat LED matrix displays.
Integration of displays of all sizes, from micro-OLEDs (0.5") to color OLEDs to TFT displays, connection via serial (SPI/I2C) or parallel interfaces to display menus, Animations and info screens.
Touch, proximity and motion detection, evaluation of pressure, temperature, color and brightness information.
Control of stepper motors, servo motors and DC motors (brushed or brushless, up to 30A) with driver ICs, motor shields or ESC.
Individual components and modules are assembled in advance on breadboards or protoshields and put into operation in order to test and optimize both the electronic functions as well as the control and programming before integration into the overall system.
In order to integrate the various hardware components into an intelligent and interactive overall system, the software we create contains functionalities specifically tailored to IoT:
C is used for most projects, and Python is also used on Raspberry Pis (and sometimes on FPGA systems). VHDL is used for simple FPGA controls; we program mobile and desktop applications in C#.
All common technologies and protocols – WLAN, Bluetooth, Ethernet, LoRa, UART, SPI, I2C, CAN and LIN – can be used to network the components with each other, even in combination.
Lighting effects, display animations or operating sequences can be simulated and optimized on a PC before the IoT hardware is actually programmed.
Additional functions that go beyond the built-in controls and sensors can be controlled by an external app (Android, iOS) or PC/Mac application.
By connecting a mobile or desktop application, changes to the configuration can be made at runtime, for example to dynamically adjust light colors or response times.
In addition to the reference projects listed here, we have also implemented other, much more complex projects for Faurecia, about which we are not allowed to provide any information due to NDAs. These include setups with over 5,000 Neopixel LEDs or systems with up to 18 Arduinos, PCs and projectors as well as TFT and OLED displays of all sizes.
Trade fair model of an instrument panel with illuminated and servo-controlled ventilation openings ("DecoVents"), micro-OLED displays and control of the fan motor (photos © Faurecia)
SHOW PROJECT
Driver's door with touch-controlled window lift, ventilation/heating and seat massage functions (photos © Faurecia)
SHOW PROJECT
Grayscale OLED control as well as light animations for the ventilation openings (air vents) and a separate speaker ball, operation via touch or tablet app (photos © Faurecia/YouTube)
SHOW PROJECT
Complete demonstrator of a networked cockpit with interactively controllable lighting of the ventilation openings (air vents) and light animations in the driver's door (photos © Faurecia/YouTube)
SHOW PROJECT
Trade fair demonstrator of various motorized air outlet variants with light effects, controlled by a tablet app.
SHOW PROJECTVHDL project for the Arty Z7-20 board with HDMI pass-through and mirroring of a screen area to the connected NHD-2.4-240320CF TFT display (320x240 pixel resolution, driver IC ST7789, interface 16 bit parallel). Frame rate approx. 160 fps.
SHOW GITHUB REPO
VHDL project for the Arty Z7-20 board with HDMI pass-through and mirroring of a screen area to the connected NHD-1.8-128160EF TFT display (128x160 pixel resolution, driver IC ILI9163, interface 8 bit parallel). Frame rate approx. 200 fps.
SHOW GITHUB REPO
C project for the Raspberry Pi 3 with mirroring of a screen area onto the connected NHD-2.4-240320CF TFT display (320x240 pixel resolution, driver IC ST7789, interface 16 bit parallel). Frame rate approx. 20 fps.
SHOW GITHUB REPO
C project for the Raspberry Pi with mirroring of a screen area onto the connected NHD-1.8-128160EF TFT display (128x160 pixel resolution, driver IC ILI9163, interface 8 bit parallel). Frame rate approx. 34 fps.
SHOW GITHUB REPO