Go to content Go to menu

Arty-S7-50 MultiNet

Tuesday, June 2, 2020

arty_s7_50_multi_net_pcbs.jpg The prototype of my simple FPGA based SoC with multiple Ethernet interfaces worked so well that I decided to create a PCB for it and increase the number of network interfaces from two to four. It also includes a special PMOD connector for a SD-Card to boot a firmware or Linux from. Also two of the Arty’s four existing PMODs are also still available for extensions. PMOD-C and PMOD-D are no longer available as their pins are used for some of the Ethernet PHY modules.

Due to I/O limitations the Seven Segment Display was removed from the original design.
 
 
 
 
 
 
[Read More…]

fpga_net_1_l.jpg In my day to day business I work with Software Defined Networking (SDN) a lot. Especially with Open-Flow, Open-vSwitch and some commercial products.

Most of the time the projects are not “normal” ones where these techniques are used in larger scenarios like enterprise or data-center networks. Instead I use them on the other side of the scale in embedded environments for example to develop Space based satellite routers.

At the time of this writing we now have almost eight weeks lock-down due to the SARS-CoV-2 pandemic. This means no travel time to my office and instead working from home. So this spare time must be filled with some experiments. Unfortunately at home I don’t have the resources I normally have at my workplace. So no fancy, multi k-euro development boards and tools. Wanting an embedded system with at least two Ethernet interfaces I looked around in my electronic junkyard and found some interesting components which might give a not so bad platform for some networking experiments. Especially low level Ethernet packet handling (filtering, modifying) is on of my interests. Maybe playing with P4, NetCope, or P4FPGA without spending a fortune.

[Read More…]

StickLock

Wednesday, June 5, 2019

StickLock.png Using a YubiKey (or other USB security token) to unlock physical things.

While researching locks and lockable storage for a new premise I found lots of LockPicking information about how to hack and break into products from even renowned companies. It’s not only a waste of money buying “high security” products which could be unlocked by just a paper clip like shown in this Video but might also be dangerous.

At the same time I use my YubiKey daily with IT systems and services. So I thought to myself:

“Why not use a YubiKey as a key for physical storage/property?”.

So I started another research, if, how and with how much effort a lock for physical things could be designed which uses a standard USB security token as key.

Fortunately it was easy to design such a lock. The outcome is the “StickLock” (short “SL”) described in this project.

Note: Latest software could be found on GitHub.

[Read More…]

Recently, for a project, I needed to work with ns2 (1), (2). Adding own protocols to ns2 requires to compile it from the sources instead of just installing it via apt-get.

It has a lot of dependencies (e.g. tcl/tk) which where already installed on my system. According to here there is a all-in-one package of ns2 including ALL its dependencies. As my machine is always near to 100% full and I already have installed its dependencies for other projects I just downloaded ns2 source without dependencies. Downloading the sources and the well known stanza ‘configure / make / make install’ should be enough - I though.

But alas - configure didn’t find required dependencies. OK - so fix some paths to keep configure happy. But now lots of compile time errors occurred. I’m running on Ubuntu Linux 16.04 LTS 64bit and a lot of include files and libraries are not there where ns2’s configure script expects it to find. It also seems that ns2’s dependencies installed via apt-get have been compiled with different compile time options as ns2 expects. Google did not help much and so I decided to fix things so that I can successfully compile ns2 an start hacking new protocols.

This post shows the steps and also provides the patches.

Step 1: Install prerequisites (from package repository)

sudo apt-get install \
   tcl8.6 libtcl8.6 tcl8.6-dev \
   tk8.6 tk8.6-dev \
   libotcl1 libotcl1-dev \
   tclcl libtclcl1 tclcl-dev

Step 2: Get the sources (ns2 without dependencies)

wget \
    https://sourceforge.net/projects/nsnam/files/ns-2/2.35/ns-src-2.35.tar.gz/download \
    -O ./ns-2.35.tgz
tar xvf ./ns-2.35.tgz

Step 3: Apply the patches

The patches can be downloaded here ns-2.35-ubuntu-16.04-64bit.patch.

patch \
    -d ./ns-2.35 \
    -p2 \
    < ./ns-2.35-ubuntu-16.04-64bit.patch

Step 4: configure / make / make install

cd ./ns-2.35
./configure \
    --with-tcl-ver=8.6 \
    --with-tk-ver=8.6
make

Now you should have a ns binary in ns2 source folder. To ensure that ns2 compiled correctly, run validate to perform tests (warning: this takes long)

Step 5: Start hacking

For more infos about ns2 and ns2 development see the following links

This steps were tested with Ubuntu 16.04 LTS 64bit and it might be that they wont work with other versions or distributions. But they may help to fix problems there too.

Using pjsip with golang

Monday, September 24, 2018

go-pjsip.png

This article describes how to use the great, C/C++ based SIP library pjsip with Go.
 
 

[Read More…]