This is a simple ‘Lunar Lander’-like game for the PICO-8 fantasy console, where you have to travel from station to station, landing several times in a row to carry passengers around a low-gravity planet. I had a lot of fun building this and subsequently playing this on my Anbernic RG35XX H handheld emulator.

You can find the game on the official site: Moon Bus at www.lexaloffle.com, or you can give it a try right here!

As with all PICO-8 games, the source code is included right in the cartridge (i.e. the PNG file).

Status: Finished

Project page: Moon Bus at www.lexaloffle.com

Git repo: https://git.dejvino.cz/dejvino/pico8-moonbus

Keyboard converter between a Zbrojovka Consul 262.5 terminal keyboard and a Videoton VDX 52600 terminal.

This is a multi-purpose converter that enables the two vintage devices to be used on their own (1. USB keyboard adapter, 2. keyboard emulator over serial) or together to form an honest VT52 terminal.

Status: Semi-finished.
Reading from the keyboard works. Writing to the terminal works. Though it is unreliable and I haven’t discovered all the keycodes that the terminal accepts.

Project page: https://git.dejvino.cz/dejvino/consul-vdx-term-keyboard-converter

Replace the old electronics of your tapedeck with an mp3 player, all while keeping the retro controls working!

A conversion project that takes a beautiful piece of obsolete hardware and gives it a new life. The aim is to retain as much of the look and the controls as possible. Buttons still control the playback, turning the knobs impacts the sound. Yet there is a tiny MP3 player board that loads the music from a microSD card and the turning cassette reels are just for show.

Status: Finished.

Project page: https://git.dejvino.cz/dejvino/tapedeck-player

Powering on many devices at once might trip a circuit breaker due to the initial surge. A slow-start power socket avoids this by introducing a delay for the grid to stabilize.

The device uses an MCU to gradually energize a strip of power sockets using relays. This way, the startup is more gentle and there is no need to manually connect and disconnect devices.

Status: Finished.

Project page: https://git.dejvino.cz/dejvino/slow-start-power-socket

3D printable case for a Geiger Counter kit packing a battery, ON/OFF switches and a servo motor to display the measurement.

Enclosed is a “RadiationD-v1.1 (CAJOE)” Geiger Counter kit that does all the work. A standard power bank for an 18650 battery cell provides the power. An Arduino reads the radiation ticks and drives a servo motor to display a time-windowed value. Switches enable or disable 1) the whole system 2) the clicking sound 3) the servo display. The case is modeled in OpenSCAD with the battery and the servo parts of the case being optional.

Status: Finished.

Project page: https://git.dejvino.cz/dejvino/GeigerCounterEnclosure

A collection of tools and utility apps for the PINE64 PinePhone.

The aim was to create simple and clean low-level utilities that expose the phone hardware to scripting, which can get more complex. Provided is a control of the backlight, notification LED, flash LED, vibrator motor and the option to put CPUs into sleep mode.

Status: Finished.

Project page: https://github.com/Dejvino/pinephone-toolkit

(mirror) https://git.dejvino.cz/dejvino/pinephone-toolkit

VT100 terminal using an ESP32, LK201 keyboard and a TV.

This is a conversion of a black & white mini TV into a serial terminal that can be hooked up to e.g. a Linux host computer. ESP32 generates the TV signal, emulates a VT100 terminal and interfaces with the keyboard. It uses an LK201 terminal keyboard (which is otherwise not suitable for modern computers anyway).

Status: Finished.

Project page: https://git.dejvino.cz/dejvino/video-terminal-revival

Linux box with a loudspeaker and an emergency light to be used for TTS announcements and notifications.

If you want to set up very loud notifications for events or reminders, this is a great solution. Announcements can be submitted via MQTT or scheduled over SSH. They are then read out loud via TTS. The Human-Activity-Sensor (PIR module) makes sure the speaker is extra loud only when there are no humans around.

Status: Finished. Out of regular service.

Project page: https://git.dejvino.cz/dejvino/announcement-box

Sway UI environment configured for PINE64 PinePhone. Proof Of Concept used to test the experience.

This was a learning experience of “What components make a usable UI environment for a phone?” and it turns out that the answer is “A whole lot!”

This project is superseded by sxmo.

Status: Finished PoC.

Project page: https://github.com/Dejvino/pinephone-sway-poc

(mirror) https://git.dejvino.cz/dejvino/pinephone-sway-poc

Ebook reader firmware designed for LilyGO T5 v2.4 (ESP32 with 2.9″ eInk display).

LilyBook prototype

The goal was to create an ebook reader that would be very small, last a very long time on a single charge and you could read it while walking, without having your vision obstructed that much (to avoid bumping into stuff!). Given the small display can only show around 4 lines of text, it is easy to keep track of where you are in the book; no need to re-read paragraphs every time your eyes move back and forth between the reader and your surroundings.

I’ve successfully tested this on my commutes to work where I managed to read through e.g. the story of Dr. Jekyll and Mr. Hyde, using it in a public transport and while moving through (or rather with?) a crowd on some of our busy streets.

Status: Beta version done and working. Possible improvements could come in the future.

Project page: https://github.com/Dejvino/lilybook

Dungeon exploration horror game. The task is to get to the deepest level possible without getting caught by one of the pursuers.

HraveMrtvolky_Hall_0

Written in Java with jMonkeyEngine3.

Status: alpha version finished.

Project page: hrave.mrtvolky.cz

 

Running HTTP and HTTPS on the same port with Apache. They said it couldn’t be done. They were wrong!

https://github.com/Dejvino/https-multiplexer

I’ve modified a simple Python port forwarding utility to act as a port multiplexer that can automatically forward HTTP and HTTPS requests to the appropriate ports. If the request looks like an HTTP in plain text, it forwards it to port A. Otherwise it is assumed to be HTTPS and is forwarded to port B.

Now you can run your web applications from a single port, regardless of using HTTP or HTTPS. Hooray!

My Master Thesis software suite. The aim was to create a high-performance correlation computation software + visualisation framework for large datasets.

vizualizaceMultipleSignalsMap

Corrputer

Correlation computation software. Written in C++ with focus on high performance, uses MPI for running on any kind of setup, from one to many computers.

Source code: git.dejvino.cz/masterserver

Visputer

Data visualisation framework in Python built on top of PyQtGraph. It interconnects with Corrputer quite nicely.

Source code: git.dejvino.cz/mastervis

Distributed nuke-resistant chat application. Peer-to-peer, built on FreePastry. Created as a school project.

PastryChat

Written in Java on top of FreePastry.

Messages are sent peer-to-peer, chat room configurations are distributed among the peers with a k-level fault tolerance. The implementation is more or less a proof-of-concept. It would require some additional configuration for it to function as a user-friendly application. But that is a task for someone else.

Project page: github.com/Dejvino/PastryChat

A website with easy access to configuration files for frequently used applications. The aim is to be able to have your favourite settings available wherever you are, be a friend’s computer or a brand new OS installation. Simply type the short URL into a browser and you are ready to go.

Project site: cfg.dejvino.com

The main idea is to have a website with a short URL handy at any time. It doesn’t have to be flashy and beautiful, as long as it gets the job done.

 

After touching your Android phone screen, this live wallpaper will spawn thousands of new bacteria from your dirty fingers. From this moment on, they live their own lives.

2014-07-08 19.59.14

This is simply a Game of Life machine with the input taken from where you put your finger while working with the phone. The effect is quite interesting and entertaining with various user-defined visual settings being available (size, color, speed, effects, …). You can watch whole colonies endlessly struggle for survival.

Project page: github.com/Dejvino/BacteriaWallpaper

Ray-tracing engine written in Haskell. Created as a school project.

The engine is quite basic. It reads a scene definition from a custom-format text file. It is able to use set operations to define even more complex objects. Apart from common geometric objects (cube, sphere, …), there are other object types like cameras and lights. Specifying lights in a scene also allows you to have some material effects and most importantly, shadows.

Project page: github.com/Dejvino/Rendskell