Inventory Reporter Tool

Software engineering teams use lots of hardware to develop new products. As a result, every colleague has minimum one Laptop or more like: one Desktop, multiple screens… Moreover all these machines have multiple test cards, network interface controllers, etc.

I recognized that most of the colleagues were suffering from tracking the inventory records.

The main problem was finding a hardware (e.g PCIe cards, RAMs, screens) in the team and this means excessive email traffic in the team. In addition, nobody knows who is responsible for which device. This situation was creating a strong friction for both of development and test processes.

To solve this problem, I created a simple Windows Application for Windows 7 and 10 machines which reports the hardware used by this machine automatically using C#, XML, and XSD.

With this solution, nobody needs to send emails for finding a hardware anymore. Here is the regarding generic tool designed to collect and report hardware information of a PC:

https://gitlab.com/birolcapa/inventory-reporter-tool

Simple Pcap Converter

Pcap is a binary file which stands for packet capture file format.

Wireshark, the world’s foremost and widely-used network protocol analyzer, uses pcap file format to save captured network traffic.

Sometimes I need to convert pcap files into different file formats.
The best solution for my problem is converting those to csv files.

Therefore, I created a simple pcap converter which makes my life easy.

Here is the regarding source code with example application:

https://gitlab.com/birolcapa/simple-pcap-converter

Simple Pcap Reader

Pcap is a binary file which stands for packet capture file format.

Wireshark, the world’s foremost and widely-used network protocol analyzer, uses pcap file format to save captured network traffic.

According to the capture scenario, sometimes I need to search a special frame inside the pcap files. Since these pcap files have thousands of frames, searching a special frame is a time consuming task.

Therefore, I created a simple pcap reader which makes my life easy.

Here is the regarding source code with example application:

https://gitlab.com/birolcapa/simple-pcap-reader

Programming RuuviTag with Windows

RuuviTag is a generic sensor node, which suitable for many applications. Both of hardware and software are 100% open source. Their website has enough details about the product: https://ruuvi.com/

As a developer, I would like to program this tag, but their default development environment is not Windows. Developing Ruuvi Firmware part says of https://github.com/ruuvi/ruuvitag_fw:

Instructions below are tested using OS X and Ubuntu, but basically any Unix distribution (or even Windows) should be fine.

So I started to search how can I create the development environment for programming RuuviTag with Windows 10. Here are the instructions:

  1. Read here: https://github.com/ruuvi/ruuvitag_fw
    It will give you the community’s default approach.
  2. Download and install Segger Embedded Studio for Windows from https://www.segger.com/products/development-tools/embedded-studio/

When I downloaded, the file name was:

Setup_EmbeddedStudio_ARM_v352_win_x64.exe:

  1. Download and install GNU ARM Embedded Toolchain 4.9 from https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update
    When I downloaded, the file name was:

gcc-arm-none-eabi-4_9-2015q3-20150921-win32.exe

I think it is a good idea to select checkbox so it will add regarding path to the environment variable: In my machine path variable was like that:

C:\Program Files (x86)\GNU Tools ARM Embedded\4.9 2015q3\bin

So if you run this in command promt:

arm-none-eabi-gcc –-version

In my machine the answer:

arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.9.3 20150529 (release) [ARM/embedded-4_9-branch revision 227977]

  1. Install Git. I installed from https://git-scm.com/
  2. Then clone the repo: https://github.com/ruuvi/ruuvitag_fw.git
  3. Open git cmd for windows: git-cmd.exe. In my machine it was here: C:\Program Files\Git
  4. Go to the arm toolchain by using:

cd C:\Program Files (x86)\GNU Tools ARM Embedded\4.9 2015q3\bin

  1. Run gccvar.bat file to get regarding environment variables for compiling with arm toolchain.
  2. Go to the cloned repo. In my machine it was here: D:\99_Temp\ruuvitag_fw
  3. Call make
  4. In the end you will have .hex files.
  5. To create DFU package, you need nrfutil python package. Open command prompt

cd C:\Python27
C:\Python27>curl -O https://bootstrap.pypa.io/get-pip.py
C:\Python27>get-pip.py
C:\Python27>cd Scripts
C:\Python27\Scripts>pip install nrfutil

  1. When you run following command you should get response from nrfutil:

C:\Python27\Scripts>nrfutil version

In my machine it was like:

nrfutil version 4.0.0

  1. To create DFU package run following command under C:\Python27\Scripts>:

nrfutil pkg generate --debug-mode --application _build/ruuvi_firmware.hex --hw-version 3 --sd-req 0x91 --key-file ~/git/ruuvitag_fw/keys/ruuvi_open_private.pem ruuvi_firmware_dfu.zip

In my pc, this command was like:

nrfutil pkg generate --debug-mode --application D:\99_Temp\ruuvitag_fw\ruuvi_examples\ruuvi_firmware\ruuvitag_b\s132\armgcc\_build\ruuvi_firmware.hex --hw-version 3 --sd-req 0x91 --key-file D:\99_Temp\ruuvitag_fw\keys\ruuvi_open_private.pem D:\99_Temp\ruuvitag_fw\ruuvi_examples\ruuvi_firmware\ruuvitag_b\s132\armgcc\_build\ruuvi_firmware_dfu.zip

With this effort, I was able to get the sources, compile them and run on RuuviTag just using only Windows 10.

Suggestions for Visiting Istanbul

One of my Dutch friend had planned a mini-trip to Istanbul, therefore he asked me what they should definitely do/visit and what they should not do.
I recognized that I did not think about that before from a tourist’s point of view. It was a hard question, but thanks to my two friends who has many guests from different nationalities. With their suggestions, I am able to write an answer as following:

First of all this website seems really good: https://www.lonelyplanet.com/turkey/istanbul
You should definitely see Istanbul old city.
You should see at least following historical places:

  1. Sultan Ahmet (Blue Mosque)
  2. Aya Sofya (Hagia Sophia)
  3. Topkapı Palace
  4. Basilica Cistern
  5. Grand Bazaar

You should do Bosphorus Ferry Trip.
You may also do a Princess Island tour.

See the options here https://goo.gl/GyR9zJ:

  1. Als je maar één dag hebt
  2. 48 uur in oud Istanboel: dag 1 en dag 2

Eating
Good to go:
Kadikoy Ciya Sofrasi: http://www.ciya.com.tr/ or https://goo.gl/K9ZjFU
Karakoy Gulluoglu: https://www.karakoygulluoglu.com/

Alternatives:
Kadikoy Yanyalı Fehmi: http://www.yanyalifehmi.com/ or https://goo.gl/gt2hDK
Karakoy Koskeroglu: http://www.koskeroglu.com.tr/ or https://goo.gl/8q4hh6

Shopping
With the latest exchange rates, you may find the shopping very cheap.

You need Turkish Liras. We usually use 5, 10, 20, 50, 100 Turkish liras.
Don’t prefer to take or use 200 Turkish Liras.
There may be fraud with 200 Turkish Liras.
See here:
https://en.wikipedia.org/wiki/Turkish_lira
Credit card usage is common. But be careful with your debit card.
Don’t allow anyone to use your debit card by using magnetic stripe.

And something about prices: There are non-negotiable price tags in most of the city’s retail outlets. Most exceptions to this rule can be found in the Grand Bazaar.

Transport
You can use Uber, it is possible, but it is currently illegal in Turkey 🙁
Be careful with the taxi drivers. (yellow cars which have a label Taksi)
Always use google maps to check if he is on the right way, or he is trying to make the road longer to get more money.
And the last thing about public transportation: https://goo.gl/JCksmZ

Self-Organising Team

While I was working at Siemens Turkey, I saw a poster in our office.

The roots of the Turkish phrase is coming from this video I suppose (But I am not 100% sure):

https://www.youtube.com/watch?v=nkiAbbNRwyU

I don’t want to translate it, because translation removes the power of the phrase 🙂

Whenever I look at that poster, I smile. Therefore, I wanted to put that also here:

“When the team is working together for long enough to remember the rules and apply them by themselves without even any kind of lead or guidance.

When the team has already built a self-operating, previously approved system and all the members are intuitively conscious about what needs to be done when.

So that the leader (i.e. scrum master for agile teams) does not feel the need of guide or assist the members and just advise them to do what ever they feel like to do.”

PS: I thank the guy who designed that poster. Unfortunately I didn’t know who prepared the poster, I will add his/her name when I learn it.

Embedded World

Bu sene arkadaşlarım ile birlikte Embedded World Fuarını ziyaret ettim. Fuar ile ilgili dikkatimi çeken hususları not aldım. Bunları sizlerle de paylaşmak isterim.

Fuar ile ilgili ayrıntılara şu bağlantı aracılığı ile ulaşabilirsiniz:

https://www.embedded-world.de/en/visitors/facts-figures

Entrances & hall allocation başlığını kullanarak katılımcıları öğrenebilirsiniz.

27.02.2018 İlk günden notlar

1 ve 2 nolu kısımları gezdik. Gömülü sistemlerde hesaplama gücü ön plana çıkmış.

“n” adet “core”u olan “x” Ghz işlem kapasitesine sahip “y” adet iletişim portu bulunan cihazlar ön plandaydı.

En ilginç cihazlardan biri: http://www.kalrayinc.com/portfolio/processors/

Display kısımları çok ilgimi çekmedi. e-ink dislay’ler halen pahalı.

Görüntü verisi üzerinden veri çıkarmak sanırım gördüğüm en ilginç IoT fikri idi. Fikir Intel’in bölümünde ADLink tarafından sunuluyordu: https://emb.adlinktech.com/en/ConnectingtheUnconnected.aspx

28.2.2018 İkinci günden notlar

4 ve 4a nolu kısımları gezdik. Buradaki çözümler genellikle test ve güvenlik üzerine yoğunlaşmıştı.

Siemens ALM tool’u olan Polarion’u tanıtıyordu.

IAR’ın embedded trust uygulaması ilginçti. Secure Boot manager sayesinde doğru sertifikaları seçip ardından kod download etmek mümkün. Boot manager atılan koda bakıp “key”ler uyuşmuyorsa download’ı kabul etmiyor.

Automated unit testing ve integration test tool’ları embedded dünya için dahi hayli yaygınlaşmış.

Kaspersky OS işletim sistemi güvenlik ile ilgili ilginç örneklerden biri idi. Embedded cihazlar için yazılan uygulamaların koşabileceği güvenli bir işletim sistemi sunduklarını söylüyorlar.

01.03.2018 Üçüncü günden notlar

3 ve 3a nolu kısımları gezdik.

Genellikle komponent tedarikçileri ve MCU üreticileri yer almaktaydı.

Burada STMicroelectronics firmasını anmadan geçemeyeceğim: http://www.st.com/content/st_com/en.html

Her konuda oldukça başarılı çözümleri, mükemmel tool’ları, son derece kullanıcı dostu ürün tanıtımları ile fuarda bana göre en başarılı kurulumlardan birine sahipti.

Aşağı yukarı her MCU üreticisinin Ethercat device sdk’sı vardı. PROFINET için ise genellikle özel çipler üreten firmalar vardı. TSN discovery kit üreten firmalar da vardı.

Her embedded hardware tasarımı yapan mühendisin korkulu rüyası JTAG konnektör sorununu kolay bir şekilde ortadan kaldıran gördüğüm en yaratıcı çözümlerden biri: http://www.tag-connect.com

Oldukça keyifli bir fuar gezisi yaptım. Bu konular ile ilgilenen herkese Embedded World Fuar’ını öneririm.

Wie kann man MATLAB lernen?

Eine Studentin hat dem folgenden Problem geschrieben:

Ich muss MATLAB lernen und es ist so schwer für mich. Ich probiere das Problem beim Arbeitsblatt lösen aber ich kann das Arbeitsblatt nicht verstehen. Wenn ich mit studieren anfange, langweile ich mich. Und ich möchte nicht weitermachen. MATLAB lernen ist ermüdend.

Ich habe die folgende Lösung vorgeschlagen:

Es gibt viele Bücher und Webinars für MATLAB. Es gibt auch „Mathworks.com“. Die Website hat viele Beispiele. Du solltest ein Webinar für MATLAB sehen. Dann solltest du die Beispiele auf der Website lesen. Du solltest die Beispiele selbst lösen. Wenn du ein Beispiel löst, langweilst du dich nicht. Du findest schön, dass du ein Beispiel lösen kannst. Dann versuchst du ein neues Beispiel. Wenn du es nicht lösen kannst, fragst du deine Frage auf „Mathworks.com“. Sie wollen dir helfen. Mit ihrer Hilfe kannst du dein neues Beispiel lösen. Wenn du praktisch machst, lernst du viel.

Ölüler Evinden Anılar

Ölüler evinden anılar, Dostoyevski’nin bir romanı.
Romanda Alexandr Petroviç Goryançikov’un hapse düşmesi, hapisteki hayatı, diğer mahkumlarla ilgili gözlemleri anlatılıyor.
Goryançikov’un duyguları, düşünceleri, diğer mahkumlarla olan ilişkisi, diğer mahkumların duygularını ve düşüncelerini anlamaya çalışması müthiş anlatılmış.
Mujik ve soylu ayrımının hapishanede bile devam etmesi, diğer mahkumların ruh hallerinin ele alınışı, hapishanenin ve çevresinin anlatılışı, kıyafetlerin ve yemeklerin hali, prangalar …
Roman boyunca prangaların seslerini duymak mümkündü benim için.
Kitapta benim için oldukça vurucu olan birkaç yer var:
Veremli bir mahkûmun ölüm sahnesi. Mahkûmun ölümünün ardından Çekunov adlı bir mahkûmun “Bunun da bir anası vardı” dediği an.
Romanı neredeyse yarıda bırakmama neden olacak zavallı Akulka’nın içler acısı hikayesinin kocasının ağzından anlatılması. İnsanlar ne zalim.
Aklımdan çıkmayacak hamam sahnesi. Dostoyevski diyor ki “Hamamın kapısını açtığımız zaman cehenneme girdim sandım …”. Gerçekten de cehennem gibi bir hamam tasviri, kir, pislik, kalabalık, boğucu, sıcak bir ortam. Goryancikov’un yıkanmak için hapishane kıyafetlerini ve prangalarını çıkarmaya çalışması ve bu sırada hissettikleri, utanma, pişmanlık.
Unutamayacağım şu söz: Bir insanı cezalandırmak, onun ruhuna işkence etmek isterseniz, ona yaptığı işin ne kadar anlamsız olduğunu gösterin ve onu bu işleri yapmaya zorlayın.
Ve son olarak, hapisteki son gün, özgürlüğe, yeni hayata kavuşma. Mahpusluğun sona ermesi.

Network Traffic Replayer – Colasoft Packet Player Automation Tool

When I make a contribution to Wireshark, I need to test my implementation before I commit my changes.

One of my test cases is checking whether Wireshark captures and shows the packets correctly.

Therefore, I should create network traffic for this test case.
After some searching, I found a tool: Colasoft Packet Player.

Colasoft Packet Player is a UI tool and works at Windows. (I think it is a Windows Form Application). These properties were good for me since I was doing my tests by hand at Windows.

When I thought that I should do these tests automatically, I searched a way of making this. (I know there are many Windows and Linux tools which work from command line). Since Colasoft Packet Player doesn’t have an API, I should find a way of UI automation. (By the way, I want to use my PC especially keyboard and mouse, while the tests are running).

And I learned following:
– Understand Colasoft Packet Player UI by using Microsoft Spy. See my previous post for details.
– How to make Win32 API calls by using C#

As a result I have written following code for automating Colasoft Packet Player.

https://gitlab.com/birolcapa/network-traffic-replayer

Following GIF is generated while one of the Unit Tests is running.