Sampi – A Logic Analyzer
September 20th, 2009
Not completely true; Right now, Sampi is only a frequency counter, but our aim is to create a logic analyzer that is far more advanced than any tool we know of. The project started after we bought a ASIX Sigma software based logic analyzer. Great hardware, but the supplied software was useless. As a result, we started developing open source logic analyzer software.
Some of the design goals are:
- Fast user interface that can be fully controlled using the keyboard
- Multiple modes of plotting input data
- Python scripting support. This can be used to write decoders on-the-fly, and the verify that protocols behave correctly.
- A library of protocol specifications which can be used to simply debugging (e.g. SD/MMC card protocol)
Sampi is written in C++, licensed under GPL and is vendor independent. This means that all software logic analyzers can be used with a driver.

The SIGMA used during development contains an FPGA, but requires that the configuration (firmware) is uploaded by USB on every boot. To grab the firmware, we simply intercepted the USB traffic with a LD_PRELOAD wrapper. This worked well, but a more reliable method was desired. The firmware resides in a obfuscated format in the windows binaries provided free of charge by the vendor, and after a little trickery, we were able to extract it. A tool to extract the firmware to use SIGMA in open source software is available in our git repository.
Electronic Door Lock: A 2009 Approach
September 19th, 2009
Since PING expanded to more than a handful active members, we have had several generations of door locking solutions. The first solution involved a long IDE-cable, a CD-ROM and a computer which issued the eject command in order to control the lock. The 2009 revision of the door lock is the most advanced and stable so far, and has the following features:
- A strong mechanical lock
- Username/password authentication in a graphical UI
- RFID authentication
- Bluetooth authentication
The design consists of five modules:
- The locking mechanism (industry standard electric door lock)
- The lock controller board (Atmel ATTiny 461 SMD) with locking, USB and RFID firmware
- RDM630 RFID reader connected to the lock controller by UART
- Computer controlling the graphical user interface (placed outside the room), connected by ethernet
- Main control computer (connected to the GUI through ethernet, and lock controller through USB)
It will probably not score any points for looks, but it provides ease of use and some safety to our premises.
The circuit was designed in Kicad and routed using FreeRouting. Source code and circuit is of course available in our git repository with GPL license.
The lock has three magnetic sensors onboard to detect bolt position and if the door is open or closed. The sensors, a button and the RFID chip is monitored by an ATTINY 461 connected by USB to the host computer. We use the V-USB implementation by obdev, which enables us to have a low-speed USB interface to the AVR with very few extra components.
The motor which engages the bolt requires a 12 V power supply, and USB only delivers 5V. This was solved by using a DC BOOST converter (LT1373) providing enough power over the USB line. To control the motor we designed an H-bridge using BJT transistors.
The RFID chip sends tags (14 byte hex) by 9600,8,N,1 UART as soon as a tag is sensed. The ATTINY does not have an UART, so our firmware emulates this by synchronizing to the bitstream.
The host computer runs a simple program that validates RFID tags and provides an interface for openening the door. It also monitors Bluetooth connections. Users entering username or password to unlock the door do so on a dedicated computer located outside our office. This computer and the host computer communicates by a secure TLS connection.
As a result of this project, members of PING are now able to unlock the office door by using their username and password, by presenting their RFID proximity card, or by having Bluetooth enabled on their mobile phone.
PING Labs
September 1st, 2009
PING Labs is a subproject of the student organization PING at the Department for Informatics, University of Oslo. It was started in 2006, but we never found ourself documenting projects, techniques and results. This blog is an attempt to share our ideas, and perhaps also entice new members to join PING and PING Labs. PING’s focus is mainly on (free) software, and the lab expands this to also include hardware projects. We have equipment for microcontroller development, PCB manufacturing and SMT soldering, and have completed a number of projects since 2006. We will try to document some of them in later posts.





