---
title: "Ethernet CAN Gateway"
url: "https://maker.wiznet.io/chcbaram/contest/ethernet-can-gateway-by-chcbaram/"
markdown_url: "https://maker.wiznet.io/chcbaram/contest/ethernet-can-gateway-by-chcbaram/md"
type: "Contests"
author: "chcbaram"
author_url: "https://maker.wiznet.io/chcbaram/"
original_author: "chcbaram"
published: "2022-01-08"
language: "en"
hardware: ["WIZnet W5100S-EVB-Pico", "Microchip MCP2515", "OLED", "Button", "LED", "Resistor (220)"]
likes: 1
views: 2183
comments: 1
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# Ethernet CAN Gateway

> Ethernet CAN Gateway

Original author: chcbaram

## Components

- **WIZnet W5100S-EVB-Pico** x 1: Main board ([docs](https://docs.wiznet.io/Product/Chip/Ethernet/W5100S/w5100s-evb-pico))
- **Microchip MCP2515** x 1: CAN module
- **OLED** x 1: For display info
- **Button** x 2
- **LED** x 2: Indicator
- **Resistor (220)** x 2: For LED
- Software: **GENIVI Alliance CANdevStudio**: opensource GUI tool for CAN
- Software: **QT Group QCanBus**: opensource Qt plug-in

## Documents and links

- [wiznet_can_gateway](https://github.com/RRTstar/wiznet_can_gateway/tree/master/src/ap) (code): firmware
- [QtWiznetCanBus](https://github.com/RRTstar/QtWiznetCanBus) (code): Qt plug-in for CAN UDP
- [Expansion Board](https://github.com/RRTstar/wiznet_can_gateway/blob/master/hardware/fusion360/ECG_Schematic%20v10.pdf) (schematics): for compact
- [Expansion Board Gerber](https://github.com/RRTstar/wiznet_can_gateway/tree/master/hardware/gerber) (schematics): gerber file
- [Case](https://github.com/RRTstar/wiznet_can_gateway/tree/master/hardware/fusion360/case): for compact

## Article

## [For more readable page, Click me!](https://rrtstar.notion.site/WIZnet-Project-Description-1a7a3895fee94fd885f047f6af2a716b)

![](https://maker.wiznet.io/uploads/2022/04/wiznet_idx-300x261.png)

## Overview

There are many tools for controlling CAN devices. Among them, there is one of the open-source projects called Qt-based [CANDevStudio](https://github.com/GENIVI/CANdevStudio). CANDev Studio uses a common plug-in called Qt CAN plug-in, which can be used on a Qt basis. However, there was no plug-in here between CAN and Ethernet heterogeneous protocols except Virtual. So, we wanted to create a plug-in that can be used on the Qt base and a gateway that can control CAN devices via Etherent through that plug-in, and that's the project.

---

### Component Diagram

What should be done in the project was clear, as explained in Overview. Therefore, we decided to draw a component diagram to clarify what needs to be done, and to figure out if there is any problem with the composition first.

- **Qt App**: Qt-based application with GUI to control CAN devices easily.

- **QtWiznetCanBus**: A plug-in which use in Qt-based applications.

- **W5100S**: The main character of this project. For Ethernet.

- **Gateway**: Firmware running on WIZnet W5100S-Pico-EVB board to handle Ethernet packets, CAN packets and etc.

- **User Interface**: Hardware interfaces to use firmware on the board easily.

![](https://maker.wiznet.io/uploads/2022/04/img1-1024x567.png)

---

### Hardware

- [Link for hardware files](https://github.com/RRTstar/wiznet_can_gateway/tree/master/hardware)

We determined the necessary hardware configuration from the diagram above, and designed and built a PCB/case for a more compact design and configuration.

| Main Part | Qty | Note |
| --- | --- | --- |
| [W5100S-EVB-Pico](http://wiznetshop.io/product/detail.html?product_no=1049&cate_no=54&display_group=1) | 1 | MCU with W5100S for ethernet |
| [MCP2515 CAN](https://www.aliexpress.com/item/1005001621818243.html?spm=a2g0o.productlist.0.0.16835f55OL9Wg3&algo_pvid=fc0f8674-57f3-4fc1-a962-0b931b8fcddc&algo_exp_id=fc0f8674-57f3-4fc1-a962-0b931b8fcddc-1&pdp_ext_f=%7B%22sku_id%22%3A%2212000016846296965%22%7D&pdp_npi=1%40dis%7CKRW%7C%7C2849.0%7C%7C%7C1634.0%7C%7C%402101d4a716513005482507268e56e8%7C12000016846296965%7Csea) | 1 | CAN module (w/ transceiver) |
| OLED | 1 | Display device information (network, etc.) |
| LED | 2 | TX/RX Indicator |
| Resister | 2 | (220Ω) For LED voltage |
| [Button](https://www.devicemart.co.kr/goods/view?no=20207) | 2 |  |

#### **PCB 3D model**

![](https://maker.wiznet.io/uploads/2022/04/ECG_3D_PCB_2022-Apr-08_10-00-31AM-000_CustomizedView21427437757_png-1024x576.png)

#### **Case 3D model**

![](https://maker.wiznet.io/uploads/2022/04/Untitled-1024x576.png)

---

### Software

- [GitHub link for Firmware](https://github.com/RRTstar/wiznet_can_gateway)

- [GitHub link for Qt Plug-ins](https://github.com/RRTstar/QtWiznetCanBus)

The software was used as a combination of WIZnet ioLibrary + pico + CMake to minimize platform dependence.

#### Cores

Since the PICO has dual core, roles of these cores are separated as shown below for smooth packet processing.

| Core 0 | Core 1 |
| --- | --- |
| SystemManager |  |
| (OLED, UserButton) | Ethernet Manager |
| CAN Manager |  |
| Ethernet2CAN |  |

#### Shared Memory

We implemented queue buffers in shared memory between two cores to allow each manager (CAN, Ethernet) **to operate non-blocking**.

#### Event-Based Socket

In the case of Ethernet Socket, it was created **based on Event**, making it possible to operate differently depending on the OnWritable() and OnReadable() implementations.

However, due to the nature of the project's configuration, it is made to create only a single socket, so if you want to create multiple sockets, you need to modify the object more extensively.

#### QtCanBus Plug-in (Only UDP)

We referred to the [Cannelloni Can Bus plug-in project](https://github.com/tuvok/qtCannelloniCanBus), which used the Cannelloni protocol, and **created a more general plug-in** that could be used without Cannelloni.

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/dceb979d-a970-4be2-ab7c-33d0dc8bdf4d/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T073620Z&X-Amz-Expires=86400&X-Amz-Signature=00560a6226238cdce8e4c0db723b286e009b610160d745e8254e739a75e9e64f&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

---

### Results

[Embedded media](https://www.youtube.com/embed/5QxDcNw12uQ)

![](https://maker.wiznet.io/uploads/2022/04/Untitled-1.png)

![](https://maker.wiznet.io/uploads/2022/04/Untitled-2.png)

[Embedded media](https://www.youtube.com/embed/b_YnLaDCx6I)

---

### Development Notes (Korean)

- [\[WIZnet CAN\] 프로젝트 시작 이야기](https://blog.naver.com/chcbaram/222665692695)

- [\[WIZnet CAN\] W5100S-EVB-Pico OLED/DHCP 시험](https://blog.naver.com/chcbaram/222633967817)

- [\[WIZnet CAN\] QtCanBus 플러그인 만들기](https://blog.naver.com/chcbaram/222660869961)

- [\[WIZnet CAN\] 프로토타입 제작](https://blog.naver.com/chcbaram/222665278252)

- [\[WIZnet CAN\] 통신 구현/PCB/케이스 디자인](https://blog.naver.com/chcbaram/222695549871)

- [\[WIZnet CAN\] PCB 제작 및 조립](https://blog.naver.com/chcbaram/222713780881)

- [\[WIZnet CAN\] 케이스 조립](https://blog.naver.com/chcbaram/222714727763)

- [\[WIZnet CAN\] 펌웨어 빌드 및 다운로드 하기](https://blog.naver.com/chcbaram/222714767172)

- [\[WIZnet CAN\] Qt 플러그인 빌드 및 실행](https://blog.naver.com/chcbaram/222714926893)

- [\[WIZnet CAN\] CANdevStudio 빌드 및 실행](https://blog.naver.com/chcbaram/222715954802)

---

## Step by Step Guide

### Step 0. Get your parts

| Main Part | Qty | Note |
| --- | --- | --- |
| [W5100S-EVB-Pico](http://wiznetshop.io/product/detail.html?product_no=1049&cate_no=54&display_group=1) | 1 | MCU with W5100S for ethernet |
| [MCP2515 CAN](https://www.aliexpress.com/item/1005001621818243.html?spm=a2g0o.productlist.0.0.16835f55OL9Wg3&algo_pvid=fc0f8674-57f3-4fc1-a962-0b931b8fcddc&algo_exp_id=fc0f8674-57f3-4fc1-a962-0b931b8fcddc-1&pdp_ext_f=%7B%22sku_id%22%3A%2212000016846296965%22%7D&pdp_npi=1%40dis%7CKRW%7C%7C2849.0%7C%7C%7C1634.0%7C%7C%402101d4a716513005482507268e56e8%7C12000016846296965%7Csea) | 1 | CAN module (w/ transceiver) |
| [OLED](https://www.aliexpress.com/item/32672229793.html?spm=a2g0o.productlist.0.0.1011237cR8Isn1&algo_pvid=a302cb82-9997-4a19-9bf4-91872db2b534&algo_exp_id=a302cb82-9997-4a19-9bf4-91872db2b534-0&pdp_ext_f=%7B%22sku_id%22%3A%2265874427314%22%7D&pdp_npi=1%40dis%7CKRW%7C%7C1895.0%7C%7C%7C%7C%7C%40210318bb16513005724225670ee4f7%7C65874427314%7Csea) | 1 | Display device information (network, etc.) |
| LED | 2 | TX/RX Indicator |
| Resister | 2 | (220Ω) For LED voltage |
| [Button](https://www.devicemart.co.kr/goods/view?no=20207) | 2 |  |

### Step 1. Assembly parts

#### Pin Map

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/760ebb0b-29ea-471b-b15a-472bfe92a63e/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T074103Z&X-Amz-Expires=86400&X-Amz-Signature=9dafe22af4a853f439a53e1477f266bd87b879cc77e57a6879c81baff68d44a0&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

**MCP2515 CAN Module**

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/864cebbe-d449-453e-83e4-ff0ef1debc52/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T074147Z&X-Amz-Expires=86400&X-Amz-Signature=7b3abd826a23bb2752eecc6c916e409d1f73a050fe1891bbfc7103a51a04e0eb&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

| PICO Board Pin No. | GPIO | Function | MCP2515 | MCP2515 Pin No. |
| --- | --- | --- | --- | --- |
| 10 | GPIO7 | GPIO | INT | 1 |
| 14 | GPIO10 | SPI1 SCK | SCK | 2 |
| 15 | GPIO11 | SPI1 MOSI | SI | 3 |
| 16 | GPIO12 | SPI1 MISO | SO | 4 |
| 17 | GPIO13 | GPIO | CS | 5 |
|  |  | GND | GND | 6 |
| 39 | VSYS | 3.3V | VCC | 7 |

**OLED**

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/bd58b43d-df2f-429f-8a40-04d8ac412cd9/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T074208Z&X-Amz-Expires=86400&X-Amz-Signature=95b92e0934952b5077c3d30b775670bd1a5d7687d7ecc59a4e6346e936c6856c&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

| PICO Board Pin No. | GPIO | Function | OLED | OLED Pin No. |
| --- | --- | --- | --- | --- |
| 19 | GPIO14 | I2C1 SDA | SDA | 4 |
| 20 | GPIO15 | I2C1 SCL | SCL | 3 |
| 36 |  | 3.3V | VCC | 2 |
| GND |  | GND | GND | 1 |

**Reset Pin**

| PICO Board Pin No. | GPIO | 비고 |
| --- | --- | --- |
| 30 |  | RUN |

**User Pin**

| PICO Board Pin No. | GPIO | 비고 |
| --- | --- | --- |
| 9 | GPIO6 | Low Active |

**LED**

| PICO Board Pin No. | GPIO | Note |
| --- | --- | --- |
| 4 | GPIO2 | Low Active |
| 5 | GPIO3 | Low Active |

#### (method 1) Using Breadboard

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/6e5d03d4-5cc3-4c63-b435-9e9abafa4cb4/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T074229Z&X-Amz-Expires=86400&X-Amz-Signature=6b8b617fcaf65e3853bdcbf9562a04542bccd298211b7c62d1b2c6832a6c7c45&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

#### (method 2) Circuit board

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/d96e0c85-50d7-4a8d-84bf-e5872b3979d2/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T074244Z&X-Amz-Expires=86400&X-Amz-Signature=e325c85ffa8075614d35b618547d892076e83600e3b4d3571d84271ca9c9ac39&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/5bd6fb4e-c472-4ecc-ad59-d2043bd31604/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T074259Z&X-Amz-Expires=86400&X-Amz-Signature=ba3528a032e24d6532415174a1729742e70bb202e3cb7b793b1aac275415b113&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

#### (method 2) PCB - more expensive but compact

- [Link for schematics & gerber files](https://github.com/RRTstar/wiznet_can_gateway/tree/master/hardware)

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/6904d996-5d8c-4b73-b20d-1550eb2d3bfb/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T074318Z&X-Amz-Expires=86400&X-Amz-Signature=d8ad7f9325d1997c25068e3e3adfba315fcc80f0eca2bf85d45d4b64f58f9c15&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

### Step 2. (Optional) Housing

- [Case modeling file link](https://github.com/RRTstar/wiznet_can_gateway/tree/master/hardware/fusion360/case)

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/4d33b6af-6ecd-4d0a-abe2-fd20940ef4b8/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T074510Z&X-Amz-Expires=86400&X-Amz-Signature=cfed860fe4e2a69cd4a16e19f7db60b4695035e1735f160ea5579ff19d04f08f&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/32f1c315-6afc-4b02-ac93-4a9af05952b6/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T074524Z&X-Amz-Expires=86400&X-Amz-Signature=40ac931fc6f4345b0a47980cae1a779142695b3138dc80c000c52952ba1cc7c7&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

### Step 3. Build & Download Firmware (CMake based Project)

#### Installation

- [Install VS Code](https://code.visualstudio.com/)

- [Install git](https://git-scm.com/downloads)

- [Install cmake](https://cmake.org/download/)

- [Install python to download firmware](https://www.python.org/downloads)

- [Install ARM GCC compiler](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)

- [Install windows build tools](https://github.com/xpack-dev-tools/windows-build-tools-xpack/releases/) (for only Windows)

- [Install MinGW GCC](https://sourceforge.net/projects/mingw-w64/files/mingw-w64/) (for only Windows)

#### Set environment

- VS Code path in your workspace or entire system ([official manual](https://code.visualstudio.com/docs/getstarted/settings))

- For ARM gcc compiler, (only Windows) windows build tools, MinGW GCC

```bash
# for linux -> env.linux
# for macOS -> env.osx
"terminal.integrated.env.windows": {
        "PATH": "${env:PATH};D:/tools/build_tools/xpack-windows-build-tools-4.2.1-2/bin;C:/fw/tools/xpack-arm-none-eabi-gcc-10.2.1-1.1/bin;D:/tools/mingw32/bin",
},
```

#### Clone code from repository

```bash
cd
git clone git@github.com:RRTstar/wiznet_can_gateway.git
cd wiznet_can_gateway
git submodule update --init
cd external\\pico-sdk
git submodule update --init
```

#### Build

```bash
cd wiznet_can_gateway
cmake -S . -B build -G "MinGW Makefiles" -DPICO_BOARD=pico
cmake --build build -j4
```

#### Download (Just Drag & Drop)

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/54169e4c-78e7-4322-bc7c-10755f26da4a/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T074900Z&X-Amz-Expires=86400&X-Amz-Signature=d25d5c617d1b4b25de06b367048a09c1bf818103b7f5652ff95a76170296bc5e&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/e4a43de7-f392-4f71-98f4-c2ad28e858af/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T074930Z&X-Amz-Expires=86400&X-Amz-Signature=58c25527ea3af13f11ed1245bfe6710afa299e2a0a62b6aeaf6d82c2a81ede81&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

### Step 4. Build Qt GUI Plug-in

#### Install [Qt 5.15.2](https://www.qt.io/download-qt-installer?hsCtaTracking=99d9dd4f-5681-48d2-b096-470725510d34%7C074ddad0-fdef-4e53-8aa8-5e8a876d6ab4)

- (Only for windows) CHECK MinGW 8.1.0 64bit for additional installation

#### Clone code

```bash
git clone git@github.com:RRTstar/QtWiznetCanBus.git
```

#### Open Project & Build

- Execute Qt Creator

- Select [File] → [Open File or Project] on top menu bar

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/ac19f186-1c80-446f-a5fc-d4a1135fec12/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075007Z&X-Amz-Expires=86400&X-Amz-Signature=b7ab8ce5668febc1af00c93e9956cfbe77c250ff6004b2515899cfd7485c2566&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

- Select & Open [CMakeLists.txt] in the folder cloned above.

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/d3a2b7d2-28d9-413e-9523-98791984e6a4/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075016Z&X-Amz-Expires=86400&X-Amz-Signature=0e7658252ff6cc90f7211e885d7f0363b2d218bb7a41af5b060a0cd76cc409ec&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

- Configure Project (depend on your environment)

- MinGW is for just only Windows

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/b170b141-9d92-45b6-816e-c920ff556077/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075025Z&X-Amz-Expires=86400&X-Amz-Signature=dae4038e709369278e8399e137d76b4b5a719609982ac37725477dbc595ef6f0&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

- Opened! Yeeeeeah!!

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/196bc10b-254f-498a-b222-8aec2e8de225/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075035Z&X-Amz-Expires=86400&X-Amz-Signature=0a560ad292519cabc469b1b4396d94e7a5b5faf78f1e740f074dcf534fda6164&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

- Build

```bash
Crtl + B  # shortcut
```

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/9a8c9114-861d-4e4a-a76a-54fd9431bc2a/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075045Z&X-Amz-Expires=86400&X-Amz-Signature=2dfc7abb1f1a21f7196be29af551aa37343022874fe62ff74a35c02d140713d7&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject) ![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/c766cf51-a4f1-4256-a4e6-10f48dcf71df/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075117Z&X-Amz-Expires=86400&X-Amz-Signature=07a2ae275ed48860f51f9dfad1da6e6d9e791288b72db02e3ccd9227123da9c0&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

#### Copy dll file to Qt plugins folder

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/c791d0e8-9f69-46fa-95c3-5c99525192b5/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075131Z&X-Amz-Expires=86400&X-Amz-Signature=7478db1707160565595fe481cfda5cadd610a037d24fb654e4685c263252d363&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/e4efc315-a417-4c7b-bda8-83b04c1b3b11/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075144Z&X-Amz-Expires=86400&X-Amz-Signature=b226704d8c76f214f5594d68a5e407fe7b9b10356deb4f9079d9eb4ad1797aeb&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

#### Test Plug-in

- Open CAN Bus example (default by Qt)

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/1625481d-d346-4873-a74d-9de6ee0e958d/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075218Z&X-Amz-Expires=86400&X-Amz-Signature=8d78f537f9f6e676c7dc41baf7ca14e34f9e6f47849a27854efd43dfb929a0c9&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

- Build & Run

```bash
Crtl + B  # For build
Crtl + R  # For run
```

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/24ef2d9c-27ea-4fc9-924e-badf23d659fe/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075238Z&X-Amz-Expires=86400&X-Amz-Signature=6ba719b8bc01d5568d76a32d577f3e300830bb4e212103833d17258b6ee9c6fe&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

- Select wiznet_can

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/b197ea09-f8de-46c6-8a26-9e958d563eab/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075303Z&X-Amz-Expires=86400&X-Amz-Signature=b06bca00ac30ff03f96b0b9b8dcb80f0bfb72fb0645924bf0af29120bb424abb&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

- Enter your devices IP Address:Port (Check your OLED on your device)

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/e0052263-8568-42b1-9b11-08fecfc116a7/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075519Z&X-Amz-Expires=86400&X-Amz-Signature=100b606af3eaf5d617bf64da5991c24dd29fc90a05c331e56efb25beabf97151&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject) ![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/38ca1044-83b1-4046-a0eb-022f4cdc59b0/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075551Z&X-Amz-Expires=86400&X-Amz-Signature=a34d2d05a7e294d0ac7ff30ff3b1fcd754deaf878ce0b9b609f34d4ea31d9889&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject) ![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/9f2d8f69-b340-4a14-a805-9f436e65d8b5/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075608Z&X-Amz-Expires=86400&X-Amz-Signature=fa63f8bd2d6de19913c3a3f71183de8b516a59a95e3875f1598339f2958efaec&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

### Step 5. Build CANdevStudio

#### Clone code

```bash
git clone --recursive git@github.com:GENIVI/CANdevStudio.git
```

#### Open Project & Build & Run

- Execute Qt Creator

- Select [File] → [Open File or Project] on top menu bar

- Select & Open [CMakeLists.txt] in the folder cloned above.

- Build & Run

```bash
Crtl + B  # For build
Crtl + R  # For run
```

- Select [New Project...]

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/616b75d5-db49-48cd-b12b-d8b3d010b64f/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075658Z&X-Amz-Expires=86400&X-Amz-Signature=570ca965e679bd7caecafa9f1a1a22855b173a27243e919b5e35b4f8b7d8be63&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject) ![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/b433940f-ece2-4efe-96b1-cba5d7110a79/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075711Z&X-Amz-Expires=86400&X-Amz-Signature=bcf107a0ca6c89bc0c8c4fe09455787f5fa255a98eec16aecdabc5ed819052ac&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject) ![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/7571de17-0b95-41c0-9908-de60380c9d12/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075721Z&X-Amz-Expires=86400&X-Amz-Signature=a64b80e279b655c589e92822a144d914e937c478d3adc00a50ba5770921bf7cc&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

- Enter your devices IP Address:Port (Check your OLED on your device)

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/d129dcde-f2bf-4607-82f4-bc5b874f290c/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075735Z&X-Amz-Expires=86400&X-Amz-Signature=1c97ca85c933698a2dcd1efc049b9d2fd45001d4f3a313c24a3ee16975b65ee2&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

- Add & connect [CanRawVeiw] component to view CAN messages received.

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/6e397f42-47eb-4047-aaad-8395f8a3d5d6/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075744Z&X-Amz-Expires=86400&X-Amz-Signature=cf1ca8392b9ae6c7f89a7bd24b646f3f486b463ef41c2c7507489526dddd22f2&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

- Check operation status

![](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/286c55d2-1221-4acf-a317-5eacf5153d54/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220430%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220430T075800Z&X-Amz-Expires=86400&X-Amz-Signature=36899c817ab50cd488a14524a89ce9c9cb113b006b1712fe6796fd6270b2c300&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22&x-id=GetObject)

[Embedded media](https://www.youtube.com/embed/b_YnLaDCx6I)

---

Source: https://maker.wiznet.io/chcbaram/contest/ethernet-can-gateway-by-chcbaram/
