nRF52840 firmware written in C/C++ for converting any USB Keyboard to a BLE HID Keyboard Device using a MAX3421E USB Host Controller. Features include quick connections and device switching using Bluetooth Low Energy, battery status reporting and shortcuts to improve typing productivity on a 60% keyboard.
Built in Ruby on Rails this application provides a sensible JSON API for getting the current weather and forecast data for locations in Switzerland. The weather data is gathered from multiple sources and aggregated with the aim to provide high accuracy as well as a to increase amount of weather information.
Special care and consideration was put into caching to provide a quick response time even when time intesive operations are being performed (for example rendering of SVG radar images).
If you want to build a project with this API, contact me.
Small Node.js application that accesses the undocumented API of the Modem provided by Wingo (Internet Box) and exports DSL Sync metrics for consumption with Prometheus.
A React app and Python backend built at HackZurich 2021 with my team mates for the SRF challenge. The webapps aim is to offer a unique way of discovering news articles. For this purpose the backend uses AI techniques to generate interesting "topics" from raw article texts. The user can then select a topic he's interested in and browse all the articles that belong to that topic.
Written in Node.js, this application acts as a HTTP reverse proxy and stops Docker containers which haven't been accessed recently and starts them again when a new request comes in. The aim is to save RAM by automatically stopping containers which are only used rarely.
To improve the user experience a loading page is presented, which automatically reloads when the containers webserver is ready.
Real-Stereo Extended
07.2021
This is the bachelor thesis of Cyril Wanner and myself and was created based on the preliminary work of the PA Real-Stereo project. This system uses multiple Raspberry-Pis with fisheye camera modules to detect and locate a person in a room. This location data is then used to balance multiple Sonos speakers in a way, where the perceived volume for the listener is the same at all positions in the room. The system can be controlled and calibrated with a React webapp which can be run on the smartphone or pc of the user. The backend has been rewritten in Python for better OpenCV performance on the Raspberry Pi.
More information can be found in the linked paper (mostly german).
Paper
・
GitHub
TarasBerchtold.ch
02.2021
This is the personal website created for my brother. It's built specifically for his needs using Next.js for a blazing fast frontend and Strapi for the custom CMS and API.
TarasBerchtold.ch
Real-Stereo
12.2020
This project was created together with Cyril Wanner for the ZHAW PA (project work) module and is the preliminary work for my bachelor thesis. This C# program for Windows detects and locates a person in a room using two webcams. This position data is then used to balance multiple speakers in a way, where the perceived volume for the listener is the same at all positions in the room. The calibration for a room is achieved by combining the positioning data with the perceived volume of a testtone, which is measured using a microphone. More information can be found in the linked paper (mostly german).
Paper
・
GitHub
Foo(d)bar - HackZurich 2020
09.2020
A React Native app and REST API built at HackZurich 2020 with my teammates, which reached the finalist stage (and somehow won the Siemens Smart Infrastructure workshop on Devpost for a few weeks ¯\_(ツ)_/¯).
The app uses Migros APIs to allow scanning barcodes of products. Product details as well as the CO2 amount in grams, using the Eaternity API is displayed. This way the consumer can make an educated decision on which products to buy to reduce his own environmental impact. There is also a map where the average CO2 amount is displayed per municipal is displayed, thus incentivising some competition in reducing the environmental impact using the "Kantönligeist" of the swiss population.
Devpost
・
Devpost Wayback Machine
・
YouTube Pitch Video
・
GitHub Frontend
・
GitHub Map Component
・
GitHub Backend
BattleBeasts
06.2020
Browser based, multiplayer card game with animals as the heroes. Also contains a computer opponent of varying difficulty. Realized with React, Socket.io, Mongoose, TypeScript & Node.js. Created in a team for the PSIT3 course and continued and improved in the PSIT4 course at Zurich University of Applied Sciences (ZHAW).
Play Online
・
Architecture Documentation PSIT3
・
Project Vision PSIT4
・
Technical Report PSIT4
Echolot.io v3
03.2020
This website in it's current iterration. This time using the Bolt CMS. Design and graphics all by me.
GitHub
Cordova Stylus Plugin
12.2019
Cordova plugin that allows passing native stylus touch events to the webapp. Currently only supports the Android platform.
GitHub
MechanicalTrading
07.2019
This was a commisioned project. An Electron app written in JavaScript. Scrapes, analyzes and presents important data to simplify various financial workflows. Makes use of SQLite database to store hirarchical data.
Node Turing Machine
12.2018
Created in the context of an exercise for the Theoretical Informatics course at Zurich University of Applied Sciences (ZHAW). A simple turing machine realised in JavaScript using Node. Uses a text file based system with a simple syntax for creating programs. Supports tape macros to simplify programs.
GitHub
AR Signage v2
09.2018
Created for AdventureRooms Basel. A complete signage system based on MQTT to display adventure room clues, the countdown timer and play sound effects & music.
Features:
- Completly configuration free client software that searches for the backend on it's own. To be run on embedded systems connected to the signage screens.
- A dashboard software, to easily control all screens and check what each screen is currently playing or displaying, and present video / text clues and sound effects
- Simple backend server software that enables easily adding and organizing clue media by the way of directory structure.
GitHub Client
・
GitHub Dashboard
・
GitHub Backend
・
AdventureRooms Basel
AR Roulette
09.2017
A project for AdventureRooms Oftringen. Combination of a small C# program that interacts with an external hardware fingerprint scanner and a webapp that displays a thematically matching interface and provides the next steps to solve the puzzle.
GitHub
・
AdventureRooms Oftringen
Node-RED SNMP Trap Listener
09.2017
Node-RED node that enables workflows which should be triggered based on incoming SNMP Traps.
GitHub
Node-RED Meteoblue Scraper
08.2017
A Node-RED node that scrapes swiss weather data from Meteoblue.
GitHub
Char
05.2017
Created with a group of other students at my senior high school (NKSA) to recognize handwritten digits using a dl4j neural network.
GitHub
Arduino Quadrocopter
10.2016
This was built for my matura paper. The aim was to code and build a quadrocopter from scratch that is entirely controlled by an Arduino which talks to the Afro ESCs. In addition the MPU-9150 was used for 9-axis motion tracking.
GitHub
MLGStrats
07.2016
Crudely programmed PHP website for creating and displaying map strategies for the video game CS:GO. Users could sign up, draw their strategies and write descriptions.
Grading
11.2015
PHP application using a MySQL database. Was created while in secondary school to manage grades for all school subjects and automatically calculate the average according to the school regulations.