Virtualization for Embedded Systems Series
This series of posts is focused around virtualization and how we can use it in embedded systems to build better, more scalable and more secure systems. It’s broken down into several parts:
Virtualization for Embedded Systems Series: Introduction
Virtualization for Embedded Systems Series: Types of Virtualization
Virtualization for Embedded Systems Series: Applications in the Real World
Virtualization for Embedded Systems Series: Containers Deep Dive
Virtualization for Embedded Systems Series: Type-2 Hypervisors
I have a few more posts to finalize this series when time allows.
HotMic
This project is my first foray into “from scratch” guitar electronics. I started with the simplest of all possibilities: a clean boost guitar pedal. I called it the HotMic because it should give a boost of 2x-4x from the input signal (and because all good guitar pedals have a cool name!). There is no code in this design because all the electronics are analogue. My blog post on the project sums up the parts and step.
Features: 2x-4x clean boost, true signal bypass, LED indicator
Links: Intro, Schematic + Layout , Build, Test + Demo
littleKernel
This project is the starting point for a large MIDI music controller. littleKernel is a multitasking kernel targeted at the AVR platform. This project will eventually flow into the MIDI control surface project. The multitasking system will handle MIDI events, as well as read potentiometers, faders, a scroll wheel, some buttons, and drive an LCD. I hope to complete this whole project some time in the Spring or Summer of 2017.
Language: C/ASM
Features:
Dependencies: AVR platform, avr-gcc toolchain
Link: littleKernel
RPi Components
This package is an abstraction of the GPIO library for the Raspberry Pi. I have modules written for specific motor driver chips, LEDs and general PWM control, as well as several other items. If you’re interested in it, check out its GitHub page for the source. I am slowly adding chips and modules to it as I find time.
Language: Python
Features: oop access to motors, LEDs, ADC chips
Dependencies: spidev, RPi.GPIO
Link: RPi Components
WebPHP
This is a framework that uses PHP to map URLs using a regex-like syntax to handler classes. Each handler class can define actions based on what HTTP verb was used in the request (GET, POST, PUT, OPTIONS, etc) and can enforce a required SSL restriction on a per URL or per handler class basis. I designed this with easy REST implementations in mind. I recently added a templating portion which is decoupled from the other part of the framework. Since I wanted to test the framework and template mechanism together, many of my development trials use the framework. If you’re interested in it, check out its GitHub page for the source.
Language: PHP
Features: URL mapping to handler classes
Dependencies: mod_rewrite, PHP
Link: WebPHP
Generic Data Structures
This is a set of templated data structure in C++. It includes stacks, queues, lists, binary heaps, binary search trees, and is a work in progress. If you’re interested in it, check out its GitHub page for the source. I am slowly adding structures to it as I find time.
Language: C++
Features: generic data structures, templated
Dependencies: None
Link: Generic Data Structures
localcast3
This is a Python backed web app for streaming local content on a ChromeCast. For the most detailed info and the latest regarding this project please visit its GitHub page.
Language: Python, JavaScript
Features: REST interface, GUI built with Bootstrap
Dependencies: Tornado.py
Link: localcast3
WordBot2
WordBot2 is a chat bot that will log into an IRC server and monitor what is being said. It gathers statistics and collects this information into a JSON database. It has a primitive web interface that uses WebSockets to communicate via JSON messages to the server and display the top words being used, etc.
Language: Python (2.7 compliant)
Features: CLI, database, Web Interface, realtime statistics, multi-threaded
Dependencies: Tornado.py, TwistedMatrix
Link: WordBot2.zip
PacketMachine
PacketMachine is a useless utility to flood an IP address with the maximum amount of UDP packets your system can generate and pass to the router. Can be used for network load testing.
Language: C++
Features: CLI, statistics, multi-threaded, cross platform
Dependencies: Boost Library (you’ll have to compile it for your architecture)
Link: PacketMachine-0.8.zip