ZPP

Zephyr C++ Framework

ZPP
Warning: ZPP is very much experimental/alpha quality, and non backwards compatible changes can (and will) be made at any time. ZPP is a C++ wrapper for Zephyr so the OS API’s can be used more easily from C++. It is not the intention of ZPP to implement a std:: library for Zephyr. ZPP tries to wrap the Zephyr C-API in C++20 without causing to much runtime and/or memory overhead. [Read More]

SID Bridge

Cortex M3 + FPGA Based SID player

SID Bridge
In 2020 I made a SID player based on a Lattice MachXO2 that was connected via SPI to a STM32G4 board running Zephyr. Now I got a Trenz SMF2000 board that has a Microsemi SmartFusion2 that has a Cortex M3 and a FPGA on one chip, so connecting the CPU to the FPGA is a lot easier. Instead of going via SPI from CPU to FPGA, it is possible to use a AHB bus to connect the CPU to the FPGA fabric. [Read More]

Apple pie from scratch

Designing a pipelined RISC-V SoC

Apple pie from scratch
If you wish to make an apple pie from scratch, you must first invent the universe. The famous quote from Carl Sagan could also be applied to computer science, if you want to make a program from scratch you must first invent the universe. Since I only had 2 weeks vacation, and inventing a whole universe would have been to much work, I skipped a few parts and started with designing a RISC-V core. [Read More]

SPI SID

FPGA Based SPI to SID bridge

SPI SID
The MOS Technology 6581/8580 SID (Sound Interface Device) is the almost 40 year old sound chip that was used in the famous Commodore 64. It uses a 5bit address / 8bit data synchronous bus with a chip select, rw, and clock signal. Since the chip uses the 1MHz (well not exactly 1MHz as I’ll explain later) clock signal also to generate all the audio frequencies, so it is important that the clock signal is stable, even though the read/write access would work fine with a unstable clock as long as the signal setup times are correct. [Read More]

Rockstar

The Art of Code

Rockstar
To understand what this is about you absolutely should watch Dylan Beattie’s brilliant presentation about The Art of Code. Now you know Rockstar is a computer programming language designed for creating programs that are also hair metal power ballads. The famous Fizzbuzz program looks like this. Midnight takes your heart and your soul While your heart is as high as your soul Put your heart without your soul into your heart Give back your heart Desire is a lovestruck ladykiller My world is nothing Fire is ice Hate is water Until my world is Desire, Build my world up If Midnight taking my world, Fire is nothing and Midnight taking my world, Hate is nothing Shout "FizzBuzz! [Read More]

Rockstar

The Art of Code

Rockstar
To understand what this is about you absolutely should watch Dylan Beattie’s brilliant presentation about The Art of Code. Now you know Rockstar is a computer programming language designed for creating programs that are also hair metal power ballads. The famous Fizzbuzz program looks like this. Midnight takes your heart and your soul While your heart is as high as your soul Put your heart without your soul into your heart Give back your heart Desire is a lovestruck ladykiller My world is nothing Fire is ice Hate is water Until my world is Desire, Build my world up If Midnight taking my world, Fire is nothing and Midnight taking my world, Hate is nothing Shout "FizzBuzz! [Read More]

Wireshark

Dissectors for Wireshark

Wireshark
What is Wireshark? To answer this it is best to quote the description from the Wireshark website. Wireshark is the world’s foremost and widely-used network protocol analyzer. It lets you see what’s happening on your network at a microscopic level and is the de facto (and often de jure) standard across many commercial and non-profit enterprises, government agencies, and educational institutions. Wireshark development thrives thanks to the volunteer contributions of networking experts around the globe and is the continuation of a project started by Gerald Combs in 1998. [Read More]

Open DMX USB

Linux Driver for ENTTEC Open DMX USB dongle

Open DMX USB
Open DMX USB is an open USB to DMX dongle hardware design developed by Enttec. The Open in Open DMX USB refers to the fact that everybody is free to use the design and produce its own USB DMX Dongle without paying any licenses. Since this fits the Linux philosophy I wrote a small Linux 4.X kernel driver to make it possible to use the dongle under Linux. Getting the Driver The source code of the driver is now hosted as dmx_usb_module on GitHub. [Read More]

MPC8xx BDM

MPC8XX BDM Debugging Library

Warning: This project is from the last century (round 1999) and is probably not useful anymore (who still has a PC with a lpt port?), but I keep it here for historic reasons. The MPC8XX Library is a library to control a Motorola PowerPC processor of type MPC8xx via its BDM debug port. It is based on the GDB patch written by Frank Przybylski of VAS GmbH. The main difference with the GDB patch by Frank Przybylski is that the BDM functionality is put in a shared library and so can also be used by other applications like, for example, a FLASH loader or an automated board test program. [Read More]
gdb  foss  linux