Review: Saleae Logic16 Logic Analyzer

My newest toy is a sixteen channel Saleae logic analyzer:

../../../_images/saleae_logic16_1_small.jpg ../../../_images/saleae_logic16_2_small.jpg ../../../_images/saleae_logic16_3_small.jpg

The Saleae Logic16 is one of the very few cross platform logic analyzers available, with application software that runs under Linux, Windows, and on the Mac.

Below you will find my first impressions, if you would like to know something specific that’s not stated on the Saleae homepage then just ask in the comments below.

Hardware

It works with logic levels between 1.8V and 5V, you either select 1.8V to 3.6V or 3.6 to 5.0V from the menu. The lower voltage settings should work in most circumstances. The 5V setting is provided to reduce the likelihood of channel to channel crosstalk when using 5V signals.

The inputs are protected against overvoltage (high DC impedance, low-capacitance diode clamps) and a resettable fuse protects the USB ground return line.

It can sample 2 channels at 100MHz, 4 channels at 50MHz, 8 channels at 25MHz or all 16 channels at 12.5MHz and can record up to 10 billion samples.

The aluminum case looks high-end and the carrying case is really nice and handy.

I haven’t opened the device and don’t know what’s inside, I would guess some kind of FPGA but that’s all I can tell at the moment. (Update: a very nice review on YouTube: https://www.youtube.com/watch?v=5yZ-2rxwRmU)

Software

The software is cross platform and works on Linux, Windows, & Mac. There is also an SDK available for writing your own analyzer plugins in c++ and a device API, which provides low-level access to the logic analyzer.

Installation

  • Download the Logic 1.1.15 (64-bit).zip from http://www.saleae.com/downloads or the beta version from http://www.saleae.com/beta
  • Extract it somewhere
  • And run the install_driver script, which only copies the udev rules file 99-SaleaeLogic.rules to /etc/udev/rules.d/99-SaleaeLogic.rules

Features

  • Supported Protocols: asynchronous serial, I2C, SPI, CAN, 1-Wire, UNI/O, I2S/PCM, MP Mode 9-bit Serial (i.e. Multidrop and Multiprocessor mod), Manchester, DMX-512, Parallel, JTAG*, LIN*, Atmel SWI*, MDIO*, BiSS C*, PS/2 Keyboard/Mouse*, HDLC*, HMDI CEC*, and USB 1.1*. (* currently in beta)
  • Measure pulse wide and period and calculate frequency
  • Measurement cursors
  • Export data in different formats
  • ...

Some experiments

Generally a logic analyzer has the advantage (compared to using another micro controller, what I’ve done until now), that you can not only see the decoded data, but also the timings and that you can analyze unspecified protocols. A logic analyzer has also mush more channels than an oscilloscope and can capture a large amount of digital data.

Async serial

Recently I bought some cheap FT232RL USB to TTL serial adapters from eBay that work with 3.3V and 5V logic levels.

After adding a serial decoder and specifying which channel should be decoded I can see the decoded characters right above the signal:

Saleae Logic16: Decoding "Test\r\n"

Saleae Logic16: Decoding “Test\r\n”

Read more...

Arch Linux ARM: Network tools missing

wifi-menu

wifi-menu

The newest Arch Linux ARM image for the OLinuXino (http://archlinuxarm.org/platforms/armv5/olinuxino) ships without the tools needed to configure a wireless connection.

Why?

Other people are experiencing the same problem, why remove such fundamental tools, and the hint pacman -S wireless_tools is not very helpful if you have no internet connection.

So how should I install additional tools if can’t setup an internet connection.

Let’s try to download them on another PC, copy them to the SD card and then install them on the OLinuXino.

Read more...

Installing CadSoft Eagle 6.5 in Fedora 19 x86_64

“Linux users please download the file ftp://ftp.cadsoft.de/eagle/program/6.5/eagle-lin-6.5.0.run and run it. This self-extracting shell script will guide you through the setup process. You may need to click on the above link with the right mouse button and select “Save Link As…”. To run this file you need to make it executable, or enter “sh eagle-lin-6.5.0.run” in a shell window. System requirements: Linux based on kernel 2.6 for Intel computers, X11 with a minimum color depth of 8 bpp, 32-bit runtime environment with the libraries libssl.so.1.0.0 and libcrypto.so.1.0.0.”

—Source: http://www.cadsoftusa.com/download-eagle/?lang=en

32-bit runtime libraries

[chris@thinkpad ~]$ sudo yum install glibc.i686 libXrender.i686 libXrandr.i686 libXcursor.i686 libXi.i686 freetype.i686 fontconfig.i686 libstdc++.i686 zlib.i686

libssl.so.1.0.0 and libcrypto.so.1.0.0

[chris@thinkpad ~]$ sudo yum install openssl-libs.i686
[chris@thinkpad ~]$ sudo ln -s /usr/lib/libssl.so.1.0.1e /usr/lib/libssl.so.1.0.0
[chris@thinkpad ~]$ sudo ln -s /usr/lib/libcrypto.so.1.0.1e /usr/lib/libcrypto.so.1.0.0

libpng14.so.14 and libjpeg.so.8

Not longer needed.

[chris@thinkpad Downloads]$  yum install glibc-devel.i686 zlib-devel.i686
[chris@thinkpad Downloads]$ wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng14/libpng-1.4.12.tar.gz
[chris@thinkpad Downloads]$ tar -xzf libpng-1.4.12.tar.gz
[chris@thinkpad Downloads]$ cd libpng-1.4.12
[chris@thinkpad libpng-1.4.12]$ ./configure --prefix=/usr --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
[chris@thinkpad libpng-1.4.12]$ make
[chris@thinkpad libpng-1.4.12]$ sudo make install
[chris@thinkpad Downloads]$ wget http://www.ijg.org/files/jpegsrc.v8d.tar.gz
[chris@thinkpad Downloads]$ tar -xzf jpegsrc.v8d.tar.gz
[chris@thinkpad Downloads]$ cd jpeg-8d/
[chris@thinkpad jpeg-8d]$ ./configure --prefix=/usr --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
[chris@thinkpad jpeg-8d]$ make
[chris@thinkpad jpeg-8d]$ sudo make install

And finally Eagle

[chris@thinkpad Downloads]$ wget ftp://ftp.cadsoft.de/eagle/program/6.5/eagle-lin-6.5.0.run
[chris@thinkpad Downloads]$ sh eagle-lin-6.5.0.run

Now you only need to create a menu entry in your launcher and the install is complete.

Tiny, hackable (?) quadcopter from China for EUR 22 / USD 35

I have a cool new gadget that is probably hackable too! Have a look:

I’ve ordered it on 21st of September from eBay and received it on 12th of October.

Read more...

Embedded development with open source tools on Windows

Hello World from MinGW

Hello World from MinGW

Get a proper editor

You probably want to install Notepad++ http://notepad-plus-plus.org/ or Programmer’s Notepad: http://www.pnotepad.org/.

Install the GCC ARM Embedded toolchain

GNU Tools for ARM Embedded Processors: https://launchpad.net/gcc-arm-embedded

Download the Windows installer from https://launchpad.net/gcc-arm-embedded/+download, for example:

And install it clicking everywhere next but choose a path without spaces, like C:\tools\gcc-arm-4.7-2013q3.

GCC ARM install location

GCC ARM install location

Read more...

Received my MC HCK prototype boards

My first MC HCK

My first MC HCK

About

The MC HCK (pronounced: “McHack” [mæk hæk]) is a small, cheap, and versatile microcontroller platform that supports USB for easy programming, and can be built at home for $5. The MC HCK enables everybody to build big and small projects, because spending >$20 for other microcontroller boards is just too much.

https://mchck.org/about/

Quick Specs

Dimensions: 50mm x 20mm
Platform: ARM Cortex-M4 (DSP, no FPU)
MCU: Freescale MK20DX32VLF5: 8KB RAM, 32KB program flash + 32KB data flash
Data Sheet:
Reference Manual:
Application Notes etc:
Interface: USB, I2C, SPI, UART, I2S
Programming: via USB bootloader (DFU, Direct Firmware Update)
Debugging: A second MC HCK can be used as debug adapter
Board options: mounting hole, LiPo charger, nRF24L01+ directly pluggable, up to 8Mbit flash, LDO, buck regulator, boost regulator, RTC crystal

I’ve already ordered a MC HCK prototype kit in July (https://mchck.org/blog/2013-07-27-prototype_kit_funding_succesful/), they were ready for dispatch on 30th September and now I have received them.

Unboxing

MC HCK Envelope

MC HCK Envelope

The letter contained the following components:

MC HCK Prototype Kit Contents

MC HCK Prototype Kit Contents

Read more...

Porting Linux to a new board

Info

This post is work in process.

I haven’t done this before so I’m a bit nervous whether I get everything working but lets try it.

It’s gorgeous to have a device that will become a consumer device and a goal to do some real development instead of just doing generic experiments with the OLinuXino boards. Now I’m forced to dig through the code to solve all the problems. It makes a lot of fun and I’m also learning a lot.

About the iMX233 Audio Development Board

You can think of the iMX233 Audio Development Board like of a iMX233 based development board to build yourself a MP3 player with the ability to record audio. If I’m correct then it uses the same audio codec like the Apple 8GB iPod nano [1] [2]. The contour of the later handheld device is already printed on the board. I don’t know what the future brings, but it might get released as open source hardware. For more information please visit: http://blog.bones-embedded.ch/imx233-audio-development-board/.

Read more...

Debugging the iMX233-OLinuXino via SJTAG with OpenOCD

What you will need

Hardware

OlinuXino Micro, iMX233-SJTAG, SEGGER J-Link, ARM-USB-TINY

OLinuXino, iMX233-SJTAG, SEGGER J-Link or ARM-USB-TINY

Read more...

iMX233-OLinuXino: Current State

This post is work in process so print it into an PDF file if you want to keep an older version as reference.

The Kernel

Please have a look at Building a kernel 3.x for the iMX233-OLinuXino for more detailed build instructions.

You can use a kernel straight from https://www.kernel.org/:

[chris@thinkpad OLinuXino]$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-stable.git
[chris@thinkpad OLinuXino]$ cd linux-stable.git/
[chris@thinkpad linux-stable.git]$ git checkout v3.12
[chris@thinkpad linux-stable.git]$

Note

There is also linux-next with some more bleeding edge kernels:

[chris@thinkpad OLinuXino]$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git linux-next.git
[chris@thinkpad linux-next.git]$ git checkout next-20130909

To add support for i2c we need to apply the following patch:

[chris@thinkpad linux-stable.git]$ wget https://raw.github.com/koliqi/imx23-olinuxino/3.12-rc2/kernel/0001-ARM-imx23-olinuxino-Add-i2c-support.patch
[chris@thinkpad linux-stable]$ patch -p1 < 0001-ARM-imx23-olinuxino-Add-i2c-support.patch
patching file arch/arm/boot/dts/imx23-olinuxino.dts
patching file arch/arm/boot/dts/imx23.dtsi
Hunk #1 succeeded at 306 with fuzz 2 (offset -1 lines).
Hunk #2 succeeded at 472 (offset -1 lines).
[chris@thinkpad linux-stable.git]$

And to get a spi device we need to apply the following patch:

[chris@thinkpad linux-stable.git]$ curl -L http://sourceforge.net/projects/janncc/files/olinuxino/kernel/3.12-rc3/0005-ARM-imx23-olinuxino-Add-spidev.patch/download -o 0005-ARM-imx23-olinuxino-Add-spidev.patch
[chris@thinkpad linux-stable.git]$ patch -p1 < 0005-ARM-imx23-olinuxino-Add-spidev.patch
patching file arch/arm/boot/dts/imx23-olinuxino.dts
[chris@thinkpad linux-stable]$

Now lets configure and build the kernel:

Read more...

Building ROS on Fedora 19

About ROS

ROS (Robot Operating System) provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more. ROS is licensed under an open source, BSD license.

—Source: http://www.ros.org/wiki/

ROS is really a huge software package (a big mess!) and is unlikely that the official installation guide for Fedora (http://www.ros.org/wiki/groovy/Installation/Fedora) will work without issues. Last time it took me several days to fix all build failures. This time I will document my odyssey.

Read more...