> ## Documentation Index
> Fetch the complete documentation index at: https://docs.t3gemstone.org/llms.txt
> Use this file to discover all available pages before exploring further.

# CAN Bus

> Controller Area Network (CAN)

<Tip>
  Bölüm bitiminde Gemstone geliştirme kartında sanal CAN arayüzü oluşturma hakkında bilgi sahibi olacaksınız.
</Tip>

Gemstone işletim sisteminde sanal CAN arayüzü oluşturularak herhangi ilave donanıma gerek kalmadan bu arayüz üzerinden
veri iletişimi sağlanabilmektedir.

<Frame caption="CanBUS Bağlantısı">
  <img className="rounded-lg" src="https://mintcdn.com/t3gemstone-754bcb96/xXa-dgH9QsK0Txx6/images/o1-board/36-canbus.png?fit=max&auto=format&n=xXa-dgH9QsK0Txx6&q=85&s=a210b34d0a8d8869900c6d1ea2152971" width="1031" height="597" data-path="images/o1-board/36-canbus.png" />
</Frame>

* Gemstone işletim sistemine bağlandıktan sonra sanal CAN arayüzü oluşturabilmek için `kernel-module-vcan-6.1.83-ti`
  modülünü kurunuz.

```bash theme={"system"}
sudo apt install picocom kernel-module-vcan-6.1.83-ti
```

* `modprobe` komutu ile kurulan modülü aktif ediniz.

```bash theme={"system"}
sudo modprobe vcan
```

* Aşağıdaki komutları takip ederek sanal CAN arayüzünü oluşturunuz.

```bash theme={"system"}
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
```

* `can-test.sh` isimli bir script dosyası oluşturunuz ve dosyayı açınız.

```bash theme={"system"}
touch can-test.sh
nano can-test.sh
```

* Aşağıdaki kodu kopyalayıp `can-test.sh` dosyasına yapıştırınız. Dosyayı kaydedip kapatınız.

```bash theme={"system"}
#!/bin/bash

while :
do
   cansend vcan0 123 #AABBCCDDEE112233
   sleep 1
done
```

* `cansend` ve `candump` gibi CAN paketleri gönderim alım komutlarını kullanabilmek için `can-utils` paketini kurunuz.

```bash theme={"system"}
sudo apt install can-utils
```

1. İki adet terminal açınız.

2. İlk terminalden CAN arayüzünü dinleme işlemini başlatınız.

```bash theme={"system"}
candump vcan0
```

3. İkinci terminalden can-test.sh scriptini çalıştırınız.

```bash theme={"system"}
./can-test.sh
```

<Frame caption="Sanal CAN arayüzü üzerinden haberleşme">
  <video controls className="w-full aspect-video" src="https://mintcdn.com/t3gemstone-754bcb96/oFj6OOIrYSQVBj-3/videos/can-test.mp4?fit=max&auto=format&n=oFj6OOIrYSQVBj-3&q=85&s=d7215bf1b14d0d81c1750d0f4fb3ef24" data-path="videos/can-test.mp4" />
</Frame>
