SigRok lets you measure instructions

ARM_ETMv3The SigRok project produces open source software for interfacing various types of measurement devices such as logic analyzers, oscilloscopes and more. The target is to provide cross platform software that words on Linux, OS X Windows, Android and more for measuring, visualizing and analyzing.

The latest version of libsigrokdecode supports protocol decoders for ARM (tpio, itm and etmv3).

Here’s a quick overview of the protocols that are decoded:

  • The TPIU (Trace Port Interface Unit) is a stream formatter and multiplexer that combines data from several sources into one stream. It is used inside an ARM-based microcontroller or SoC to combine ITM and ETM trace output into a single port.
  • ARM ITM (Instrumentation Trace Macroblock) allows tracing of software events, and also with the help of DWT (Debug, Watchpoint and Trace) the tracing of exceptions and data watchpoints. It also supports periodic sampling of PC values.
  • ARM ETM (Embedded Trace Macroblock) allows tracing of every instruction executed on the CPU. Currently only ETM version 3 (the newest version, present in Cortex-M3 and other ARMv7-m) is supported.

The end result is that you can run traces and use sigrok to perform low level debugging. Awesome!

Posted in ARM, Electronics | Leave a comment

Kryoflux – low level floppy controller

kf_board_250When working with retro computers, you sooner or stumble upon aged disk media. Unfortunately data is lost. Various solution exists such as gotek, C64FC or custom hacks.

However, when encountering old, unreadable disks, there is still hope. The problem is that magnetization is lost over time, but by measuring it at greater accuracy, it is possible to retrieve and recreate the information.

One such solution is the KryoFlux floppy controller.

KryoFlux is a USB-based device designed specifically for the reliability and precision needed to acquire reliable low-level reads suitable for software preservation. This is the official hardware developed by The Software Preservation Society, an authority in authentic floppy disk imaging and preservation.


Posted in Retro | Leave a comment


This is a Windows only tip, so I’ve not played much with it. However, Embrio does look like a perfect experimentation kit. Take an Arduino, connect your peripherals and draw the solution. It even lets you work in a live mode, getting immediate feedback to your changes.

The whole embrio site is filled with tutorials for common setups. For instance, how to use a breadboard, buttons distance sensors, servos, PWM and more. There are also examples combining these skills into large projects.

The basic version is free, while a perpetual license with all features unlocked costs USD 50.

Via dangerousprototypes.

Posted in Arduino, Programming | Leave a comment


It is time for another round of Retrospelsmässan – the retro gaming fair #1 in Sweden.

Posted in Retro | Leave a comment

Follow-up on the Nyuzi Processor

I recently wrote about the Nyuzi Processor, referring a Phoronix article. Commenter Timothy Miller was kind enough to point out that the source article fails to recognize Jeff Bush as the author of the Nyuzi Processor.

Visiting his github page, reveals a set of interesting project, including another CPU design, RotorCPU, as well as an experimental, albeit old, x86 operating system. All in all, a nice set of repos to browse through.

Posted in Uncategorized | Leave a comment

Compiling for the C64

Michael Steil from pagetable just posted a nice article on the art of migrating software to newer systems. Basically, he has built the code of a project started back in 1995 today. The code base has gone through both the changing of implementation language (twice) as well as being lost and then recovered again.

The outcome, the C64 assembler mxass, is available on github. Michael actually spent time recreating a commit history, so that you can follow the development of the code base.

Finally, as a warning, this is not meant to be used for C64 development today. There are better tools, such as cc65.

Posted in Programming, Retro | Leave a comment

Open Source GPGPU

A GPGPU is a graphical processing unit, but with adaptations to make it possible to use it for general purpose computing as well. For those of you who followed Intel’s Larrabee project – that is a GPGPU. Intel’s project was stopped before it reached the market. Not an open source project, the Nyuzi Processor, implements a similar architecture.

The project is quite impressive. It features a pipeline vector FPU, multiprocess support, an L1/L2 cache hierarchy. It also comes with a LLVM-based C++ toolchain, software libraries and test benches and can be synthesized.

Check out the github page for instructions, the full Verilog source and all the associated tooling.

Via Phoronix.

Posted in Electronics, FPGA, Programming | 2 Comments

Learn about Compiling

compilingMatt Godbolt has created an intriguing webpage letting you enter C++ code and then watch the resulting assembly code. You can try it right here.

The compilers supported are gcc, lcc and clang in various versions. Hardware target architectures are ARM, ARM64, AVR, PowerPC and x86. Not all combinations of compilers and architectures are available, but this is enough to spend some time experimenting.

You can also enter compiler optimizations. This lets you discover how intelligent modern compilers are. It is nice to see how complex you can go and still get a pre-calculated constant back.

The code for the whole setup is available on github, and other languages than C++ can be explored. For instance, here is a version for go.

Posted in Programming | Comments Off

Tiny, open source, M0 board

The ARM PRO MINI is a tiny, open source, board based on a Cortex M0 MCU. The whole project, including schematics and BOM, is available on github.


The MCU is an NXP ARM M0 LPC11U35FHI33/501. This means that the Eclipse-based LPCXpresso IDE can be used to develop code in C/C++. Another alternative is to use the ARMmbed Online IDE (you will have to register to get to the compiler section, it is free). The ARM PRO MINI comes with a convenience library, making development easy.

The pins can be multiplexed between various functions, so the potential configurations differ a bit. The possibilities can be summarized as follows:

  • 0-8 ADC channels
  • Up to 26 GPIO pins
  • 0-2 SPI interfaces
  • 0-1 UARTs
  • 0-1 I2C interfaces
  • 1 USB port
  • Power pins (4.5-16V in, regulated 3.3V and 5V out)

Via dangerousprototypes.

Posted in ARM, Electronics, M0, Platforms | Comments Off

Raspberry Pi 2 – Double the Power – Same Price

Just in from Raspberry Pi Foundation:

Let’s get the good stuff out of the way above the fold. Raspberry Pi 2 is now on salefor $35 (the same price as the existing Model B+), featuring:

  • A 900MHz quad-core ARM Cortex-A7 CPU (~6x performance)
  • 1GB LPDDR2 SDRAM (2x memory)
  • Complete compatibility with Raspberry Pi 1

Because it has an ARMv7 processor, it can run the full range of ARM GNU/Linux distributions, including Snappy Ubuntu Core, as well as Microsoft Windows 10.

What does this mean? It means more power, more software and the same interfaces.

The new CPU is a quadcore ARMv7 CPU, meaning that standard Linux distros as well as Windows 10 works on the platform (why would you want to tinker with Windows when you have Linux is beyond me, but anyway).

The RAM has doubled to 1GB, which is great. If nothing else, it can be used to cache more data from disk. Because, let’s be honest about this, the biggest problem with the Pi right now is the I/O speed of SD cards. A small eMMC would have been a welcome addtion.

While considering all this shiny stuff, it is also important to notice that the original Raspberry Pi will remain in production. This is important for many, many customers using this in a wide range of applications.

Posted in Raspberry Pi | Comments Off