From Microcontroller to Mainframe

In the past 20 years I worked on systems as small as 8bit microcontrollers with no Operating System to systems as large as IBM Z-Series Mainframes. I wrote software for small FreeRTOS, Zephyr and RTEMS based controllers with only a few LED’s as “output” to GUI programs for Windows and Linux.

Since low level programming has some special demands on the programming language the main languages I use, and consider myself a professional in, are C, C++, and when it can’t be avoided assembly. Other languages like Python, bash-scripting, lua, cmake, are also part of my daily work.

Due to personal interest and experience there are some areas where I can offer additional knowledge that can speedup things compared to software developers that are new in those areas.

Linux Embedded Distribution Development

For systems that can’t use an average Linux distribution like Debian, Fedora, etc. because of for example storage size restrains I develop highly customizable distributions based on PtxDist or Yocto that can be as small as 8 MByte.

Low Level Driver Development

When there is a need for a small specialized Linux distribution it most of the times means there is some custom hardware in use. For that hardware I can develop low level device drivers for the Linux kernel and bootloaders like U-Boot and Barebox.

RTOS and Baremetal

For systems where a 8 MByte OS is still to large I can offer baremetal or RTEMS, FreeRTOS and Zephyr based solutions on PowerPC, AVR32, and mostly ARM.

Lighting Control

Lighting Control for stage and theater is an rather specialized area with several unique technologies. Having knowledge of technologies like for example DMX, RDM, Art-Net and ACN, makes it a lot easier for me to get up to speed in software development projects that deal with those technologies.

Public Information Systems

Like with Lighting Control systems, Public Information Systems in the public transportation area deal with specialized protocols and demands. Working for clients in doing public transportation information systems and for clients doing public transportation power converters I collected extensive knowledge in that area.

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]
personal  fpga  foss  sid 

DMX FPGA

Xilinx Zynq DMX controller

DMX FPGA
One of my first projects when I started working for transtechnik (now ETC) was a DMX512 router, called E-Gate. References to that project can still be found on the ETC website. And even the windows software I wrote, called E-Gatekeeper, can still be downloaded, and it still works (even on Windows 10) (E-gatekeeper screenshot image copyright by ETC GmbH) The hardware was based on a Motorola (now NXP) PowerPC MPC860 CPU with a Xilinx FPGA. [Read More]

Golden Oldie

Everything should have a RS232/Serial port

Golden Oldie
Even tough RS232 is from the 60’s it is still something that should be available on every device (a TTL version is acceptable too). Most embedded CPU’s, even big ones like the iMX8 have one or more serial ports that are useable without the need of complex software stacks. Especially that serial ports can be used without a complex software stack, on some CPU’s it can be as simple as writing a byte to a register, makes them a very powerful tool. [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]

Prettige Kerst

Merry X-Mas

Prettige Kerst
Prettige Kerst, Merry X-Mas, of course in style, by using a Xilinx FPGA to control a cheap 64x32 RGB LED matrix display. I wrote a small program in VHDL that shift out a image to the RGB module and takes care of everything. After building it with Xilinx Vivado the resulting schematic looks like this; Of course if this is not an example of how to do things for a real project, first of all the LED module lacks features like PWM control, current correction, over temperature protection, and simply the needed brightness compared to professional displays that are for example produced by my one of my clients. [Read More]

Amiga 2000 (Finally done)

Part 5

Amiga 2000 (Finally done)
After, Fixing the mainboard Refurbishing the PSU Installing the SCSI2SD Installing the GoTek drive Finally done! Well almost, because there where some small problems. First of all, and I wonder why I didn’t notice that before, the bottom of the case was badly warped. So I had to take everything out again and bend the case into a bit more acceptable shape. And of course rebuild the whole thing again. [Read More]

Amiga 2000 (Floppy)

Part 4

Amiga 2000 (Floppy)
After the SCSI HD conversion from a real HD to a SD-Card, it is time to add a way to easily use floppy images by adding a GoTek floppy emulator. The GoTek case is a lot smaller than the 3.5" floppy opening, some kind of frame is needed. Since the previous owner already drilled some holes in the slot plate I used that as a frame for the GoTek. [Read More]

Amiga 2000 (SCSI HD)

Part 3

Amiga 2000 (SCSI HD)
After fixing the Amiga 2000 motherboard and the refurbishing the PSU I upgraded the HD from a real SCSI-drive to a SD-Card via a SCSI2SD. Together with my brother in law and his company Art and Tech VoF we created a 3D printed bracket that makes it possible to attach the SCSI2SD onto the Amiga SCSI controller card where the HD used to be. [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]