{"id":38,"date":"2018-02-10T15:56:45","date_gmt":"2018-02-10T15:56:45","guid":{"rendered":"https:\/\/jacobncalvert.com\/?page_id=38"},"modified":"2021-10-01T13:27:31","modified_gmt":"2021-10-01T18:27:31","slug":"projects","status":"publish","type":"page","link":"https:\/\/jacobncalvert.com\/blog-archive\/projects\/","title":{"rendered":"Recent Projects"},"content":{"rendered":"<div class=\"col-md-2\"><\/div>\n<div><span style=\"font-size: inherit;\">This page is a collection of projects I&#8217;ve worked on recently. They are all over the map in terms of discipline. There&#8217;s some software engineering, hardware engineering, educational content, and more in here. I will typically link to the relevant blog post or site as well. Feel free to contact me about any of these!<br \/>\n<\/span><\/div>\n<div>\n<p><span style=\"color: inherit; font-size: 1.56em; font-weight: 600;\">Virtualization for Embedded Systems Series<\/span><\/p>\n<\/div>\n<div class=\"col-md-10\">\n<p>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&#8217;s broken down into several parts:<\/p>\n<p><a href=\"https:\/\/jacobncalvert.com\/2019\/10\/31\/virtualization-for-embedded-systems-series-introduction\/\">Virtualization for Embedded Systems Series: Introduction<\/a><\/p>\n<p><a href=\"https:\/\/jacobncalvert.com\/2019\/11\/04\/virtualization-for-embedded-systems-series-types-of-virtualization\/\">Virtualization for Embedded Systems Series: Types of Virtualization<\/a><\/p>\n<p><a href=\"https:\/\/jacobncalvert.com\/2019\/11\/11\/virtualization-for-embedded-systems-series-applications-in-the-real-world\/\">Virtualization for Embedded Systems Series: Applications in the Real World<\/a><\/p>\n<p><a href=\"https:\/\/jacobncalvert.com\/2019\/11\/18\/virtualization-for-embedded-systems-series-containers-deep-dive\/\">Virtualization for Embedded Systems Series: Containers Deep Dive<\/a><\/p>\n<p><a href=\"https:\/\/jacobncalvert.com\/2020\/03\/23\/virtualization-for-embedded-systems-series-type-2-hypervisors-deep-dive\/\">Virtualization for Embedded Systems Series: Type-2 Hypervisors<\/a><\/p>\n<\/div>\n<p>I have a few more posts to finalize this series when time allows.<\/p>\n<div class=\"col-md-10\">\n<h3>HotMic<\/h3>\n<p>This project is my first foray into &#8220;from scratch&#8221; 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.<br \/>\nFeatures: 2x-4x clean boost, true signal bypass, LED indicator<br \/>\nLinks:\u00a0<a href=\"https:\/\/jacobncalvert.com\/2018\/05\/17\/build-your-own-clean-boost-guitar-pedal\/\" target=\"_blank\" rel=\"noopener noreferrer\">Intro, Schematic + Layout <\/a>, <a href=\"https:\/\/jacobncalvert.com\/2018\/06\/17\/build-your-own-clean-boost-guitar-pedal-part-2\/\">Build, Test + Demo<\/a><\/p>\n<h3>littleKernel<\/h3>\n<p>This project is the starting point for a large MIDI music controller.\u00a0<i>littleKernel<\/i>\u00a0is 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.<br \/>\nLanguage: C\/ASM<br \/>\nFeatures:<br \/>\nDependencies: AVR platform, avr-gcc toolchain<br \/>\nLink:\u00a0<a href=\"http:\/\/107.170.160.165\/link\/?type=external&amp;what=https:\/\/github.com\/jacobcalvert\/littleKernel\/archive\/master.zip\" target=\"_new\" rel=\"noopener noreferrer\">littleKernel<\/a><\/p>\n<h3>RPi Components<\/h3>\n<p>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&#8217;re interested in it, check out\u00a0its GitHub page\u00a0for the source. I am slowly adding chips and modules to it as I find time.<br \/>\nLanguage: Python<br \/>\nFeatures: oop access to motors, LEDs, ADC chips<br \/>\nDependencies: spidev, RPi.GPIO<br \/>\nLink:\u00a0<a href=\"https:\/\/github.com\/jacobcalvert\/RPiComponents\" target=\"_new\" rel=\"noopener noreferrer\">RPi Components<\/a><\/p>\n<h3>WebPHP<\/h3>\n<p>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.\u00a0 If you&#8217;re interested in it, check out\u00a0its GitHub page\u00a0for the source.<br \/>\nLanguage: PHP<br \/>\nFeatures: URL mapping to handler classes<br \/>\nDependencies: mod_rewrite, PHP<br \/>\nLink:\u00a0<a href=\"https:\/\/github.com\/jacobcalvert\/webphp\" target=\"_new\" rel=\"noopener noreferrer\">WebPHP<\/a><\/p>\n<h3>Generic Data Structures<\/h3>\n<p>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&#8217;re interested in it, check out\u00a0its GitHub page\u00a0for the source. I am slowly adding structures to it as I find time.<br \/>\nLanguage: C++<br \/>\nFeatures: generic data structures, templated<br \/>\nDependencies: None<br \/>\nLink:\u00a0<a href=\"https:\/\/github.com\/jacobcalvert\/GenericDataStructures\" target=\"_new\" rel=\"noopener noreferrer\">Generic Data Structures<\/a><\/p>\n<h3>localcast3<\/h3>\n<p>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\u00a0its GitHub page.<br \/>\nLanguage: Python, JavaScript<br \/>\nFeatures: REST interface, GUI built with Bootstrap<br \/>\nDependencies:\u00a0<a href=\"http:\/\/www.tornadoweb.org\/en\/stable\/\" target=\"_new\" rel=\"noopener noreferrer\">Tornado.py<\/a><br \/>\nLink:\u00a0<a href=\"https:\/\/github.com\/jacobcalvert\/localcast3\" target=\"_new\" rel=\"noopener noreferrer\">localcast3<\/a><\/p>\n<h3>WordBot2<\/h3>\n<p>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.<br \/>\nLanguage: Python (2.7 compliant)<br \/>\nFeatures: CLI, database, Web Interface, realtime statistics, multi-threaded<br \/>\nDependencies:\u00a0<a href=\"http:\/\/www.tornadoweb.org\/en\/stable\/\" target=\"_new\" rel=\"noopener noreferrer\">Tornado.py<\/a>,\u00a0<a href=\"http:\/\/twistedmatrix.com\/trac\/\" target=\"_new\" rel=\"noopener noreferrer\">TwistedMatrix<\/a><br \/>\nLink:\u00a0<a href=\"https:\/\/github.com\/jacobcalvert\/WordBot2\" target=\"_new\" rel=\"noopener noreferrer\">WordBot2.zip<\/a><\/p>\n<h3>PacketMachine<\/h3>\n<p>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.<br \/>\nLanguage: C++<br \/>\nFeatures: CLI, statistics, multi-threaded, cross platform<br \/>\nDependencies:\u00a0<a href=\"http:\/\/www.boost.org\/\" target=\"_new\" rel=\"noopener noreferrer\">Boost Library<\/a>\u00a0(you&#8217;ll have to compile it for your architecture)<br \/>\nLink:\u00a0<a href=\"https:\/\/github.com\/jacobcalvert\/PacketMachine\" target=\"_new\" rel=\"noopener noreferrer\">PacketMachine-0.8.zip<\/a><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>This page is a collection of projects I&#8217;ve worked on recently. They are all over the map in terms of discipline. There&#8217;s some software engineering, hardware engineering, educational content, and more in here. I will typically link to the relevant blog post or site as well. Feel free to contact me about any of these! 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,&hellip;<\/p>\n","protected":false},"author":1,"featured_media":183,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Recent Projects - Jacob N Calvert<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jacobncalvert.com\/blog-archive\/projects\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Recent Projects - Jacob N Calvert\" \/>\n<meta property=\"og:description\" content=\"This page is a collection of projects I&#8217;ve worked on recently. They are all over the map in terms of discipline. There&#8217;s some software engineering, hardware engineering, educational content, and more in here. I will typically link to the relevant blog post or site as well. Feel free to contact me about any of these! 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,&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jacobncalvert.com\/blog-archive\/projects\/\" \/>\n<meta property=\"og:site_name\" content=\"Jacob N Calvert\" \/>\n<meta property=\"article:modified_time\" content=\"2021-10-01T18:27:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/jacobncalvert.com\/wp-content\/uploads\/2018\/02\/cropped-banner3.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"266\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jacobncalvert.com\/blog-archive\/#website\",\"url\":\"https:\/\/jacobncalvert.com\/blog-archive\/\",\"name\":\"Jacob N Calvert\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/jacobncalvert.com\/blog-archive\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/jacobncalvert.com\/blog-archive\/projects\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/jacobncalvert.com\/blog-archive\/wp-content\/uploads\/2018\/02\/cropped-banner3.jpeg\",\"contentUrl\":\"https:\/\/jacobncalvert.com\/blog-archive\/wp-content\/uploads\/2018\/02\/cropped-banner3.jpeg\",\"width\":1024,\"height\":266},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jacobncalvert.com\/blog-archive\/projects\/#webpage\",\"url\":\"https:\/\/jacobncalvert.com\/blog-archive\/projects\/\",\"name\":\"Recent Projects - Jacob N Calvert\",\"isPartOf\":{\"@id\":\"https:\/\/jacobncalvert.com\/blog-archive\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/jacobncalvert.com\/blog-archive\/projects\/#primaryimage\"},\"datePublished\":\"2018-02-10T15:56:45+00:00\",\"dateModified\":\"2021-10-01T18:27:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jacobncalvert.com\/blog-archive\/projects\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jacobncalvert.com\/blog-archive\/projects\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jacobncalvert.com\/blog-archive\/projects\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jacobncalvert.com\/blog-archive\/\",\"url\":\"https:\/\/jacobncalvert.com\/blog-archive\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@id\":\"https:\/\/jacobncalvert.com\/blog-archive\/projects\/#webpage\"}}]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/jacobncalvert.com\/blog-archive\/wp-json\/wp\/v2\/pages\/38"}],"collection":[{"href":"https:\/\/jacobncalvert.com\/blog-archive\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/jacobncalvert.com\/blog-archive\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/jacobncalvert.com\/blog-archive\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jacobncalvert.com\/blog-archive\/wp-json\/wp\/v2\/comments?post=38"}],"version-history":[{"count":11,"href":"https:\/\/jacobncalvert.com\/blog-archive\/wp-json\/wp\/v2\/pages\/38\/revisions"}],"predecessor-version":[{"id":816,"href":"https:\/\/jacobncalvert.com\/blog-archive\/wp-json\/wp\/v2\/pages\/38\/revisions\/816"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jacobncalvert.com\/blog-archive\/wp-json\/wp\/v2\/media\/183"}],"wp:attachment":[{"href":"https:\/\/jacobncalvert.com\/blog-archive\/wp-json\/wp\/v2\/media?parent=38"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}