My newest toy is a sixteen channel Saleae logic analyzer:
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.
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)
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.
- 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
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.
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:
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.
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.
- https://bbs.archlinux.org/viewtopic.php?id=57201 Network tools missing e.g iwconfig, iwlist
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.
“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.”
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.
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.
- Get a proper editor
- Install the GCC ARM Embedded toolchain
- Installing MinGW and MSYS
- Build a simple Hello World program with gcc
- Git version control system
- MC HCK specific instructions
- Programmer’s Notepad
- OpenOCD and GDB
- Working with embedded Linux systems
- What’s next
- References/Further Reading
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.
- Soldering my first MC HCK
- Blinking LED example
- Windows setup
- What’s next
- References/Further Reading
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.
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.
The letter contained the following components:
- About the iMX233 Audio Development Board
- Step 1: Get familiar with the debugger
- Step 2: Blinking LED
- Step 3: imx-bootlets
- Step 4: The Application UART
- Step 5: The status led
- Step 6: The second SD card
- Step 7: Audio Support
- Step 8: Using the buttons for playback and recording
- Step 9: Powersaving when on battery
- Step 10: Linux images for the SD card
- Step 11: U-Boot
- Step 12: QEMU
- Further tasks
- References/Further Reading
- Change list
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.
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  . 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/.
- What you will need
- Setup OpenOCD
- Minimal example (blinking LED without OS)
- Debugging the Linux kernel via SJTAG
- Using U-Boot with SJTAG support
- Debugging the Linux kernel via kgdb
- References/Further Reading
This post is work in process so print it into an PDF file if you want to keep an older version as reference.
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]$
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:
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.
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.