Software projects

This is one of the projects, where I am learning jQuery libraries and JavaScript.

3D chess on Irrlicht engine (code lost) - C++ in Dev-C++ IDE.

PE (exe) file analyzer for anti-virus company (code lost) in Visual Studio IDE.

Stars and Stars 3D demo in x86 assembler (code lost).

Stars
This screenshot doesn't show the greatness of the demo (just kidding). But will try to re-write it soon in js. Note - done. It is very easy to write such apps in js. It took me about 30 minutes to write it as it is below.

2D game in x86 assembler - using DMA channels for sounds playback, ports listening and much more. Probably my biggest project with a few thousands lines of code.
In this game I used DMAs, keyboard ports, VGA ports, self-developed sprite animations. Also what surprised me after seeing the code 15 years after development was how well commented and structured it is. Also, I did local version control with maaany folders with newer and newer code.
Download the code of the game


            

Hardware projects

Data logger for automotive (truck) OEM on NI CompactRIO platform (Host + Real-time + FPGA).

Data logger for Mazda 6: acceleration, speed, ABS data, gas position, temperature, GPS data, RPM on NI CompactRIO platform (Host + Real-Time + FPGA).Download report.

Data logger for child's stroller: acceleration, gyroscope (rotation), temperature, GPS on Raspberry PI.

Mechanical layout

Here we can see first mechanical idea. Later many things changes, for example I added supercapacitor, to be able to log one last second of data.



Already in enclosure

Here we can see the logger in enclosure. We have 4 temperature channels, GPS, Ethernet (later changed to wi-fi).

Lesson learnt: I learn a lot. Nuances of Linux, SPI, I2C, serial, GPS logging/parsing. Data storage techniques. Multithreading. Cooling. PCB development. And much more.

Portable logger for measuring temperature from 2 channels, recording in EEPROM and displaying values online. Based on Arduino. For Real-Time Clock DS3232RTC was used and for display I used I2C Liquid Display. So in total I used RS232 for communication with PC, I2C for Display and DS3232RTC, 1-Wire for DS18B20.
Interesting thing: "pre" tag in HTML doesn't display properly included libraries and some parts of code in the below preview.


Lesson learnt: Even simple electronics has a lot of nuances. How to send data back to PC (serial commands)? What's the best mechanism to store data?

temperature logger
Robot teaching colors

Robot that teaches children recognize and call colors. It uses OEM MP3 player (DFPlayerMini), has a state machine programmed on Arduino and consists of numerous, colorful LEDs.
Again, code is not displayer properly in "pre" section below.


Lessons learnt: do not place any children toy in cartoon box :)

This crazy machine has 4 LED buttons and buzzer. Pressing the buttons either make the buzzer buzz, switch on LEDs (but not on the pressed button!) and showcases momentary and toggle switches.

"Doing nothing" machine helped me get in total 30' of free time - since it is a great toy for interested-in-everything child!

This thing does nothing

This project was meant to create IP for C64 processor (MOS 6510) on FPGA.

Also, I found on old pendrive LabVIEW code that translated mnemonics into processor's instructions (so I basically wrote assembler in LabVIEW...).

Download the code of parser.


                

Lesson learnt: such approach (switch) results in long chains and lower max f. Approach needs to be changed.

This is simple voltage amplifier based on E88CC lamp and supply voltage of 12V. The amplification reached the level of around 10 V/V. The amplifier showcases negative feedback for fine-tuning THD or amplification depending on our needs.

Below you can find a first prototype.

Vacuum Tube Amplifier

Cool trick I used here - to have 6.3V for heater, I used LM7806 that outputs 6V and I referenced it to ground through Schottky diode that has a voltage drop of 0.2-0.3V.

7806 with Schottky

This simple device uses 555 for blinking the LED, uses solar panels to charge supercapacitors, PNP transistors to switch 555 on when it is dark and diode for making sure solar panels don't discharge the supercaps.

LED strip controlled via WIFI

Here I used 3 colors LED strip that can be attached to the furniture, stair or any other object at home. The device is controlled by WIFI - I used DNS catch-all ESP8266 code with HTML page that allows for switching LEDs on/off or choosing defined PWM duty cycle or dimming algorithm. ESP8266 transmits commands over the TX line of RS-232, luckily 5V-arduino can accept it with no signal amplification (other way round it would work without voltage divider). Arduino simply has a loop that checks the commands and sets proper PWM outputs.

Elo600!









For power transistors I used not-that-cheap IRF3205s.

Wifi LED Strip

Issues I had:

  • 3 different power levels are needed - 12V for LEDs, 5V for arduino, 3V3 for ESP8266
  • Arduino should survive up to 12V easily and 20V when stressed. It didn't. It burnt and ESP8266 burnt too. I had to use separated voltage stabilizer.
  • Standard issues - mechanics with universal PCB and universal enclosure. A lot of drilling, a lot of thinking and not-too-good cooling.

Lessons learnt - even simple project takes a lot of time. Not keeping the promise of voltage ratings and resulting burnt electronics, not available all pieces at home lab (3V3 stabilizer as an exmample), soldering on universal PCB, mounting that stuff to the universal enclosure, drilling - all those take precious time.

Wifi LED Strip Final

Download the code of the project, separate code ESP8266 and Arduino. As for any project on this webpage, I give 0 guarantee on the code quality, electronics ideas or anything else. Use at your own risk.

Other projects

Texts and publications

Monitorowanie obiektów budowlanych na przykładzie Stadionu Olimpijskiego w Pekinie
Komputery przemysłowe
Większa prędkość przetwarzania dzięki zastosowaniu układów FPGA
Układy FPGA w systemach pomiarowych
Steroniki PAC jako mocniejsze PLC
Zjawiska w systemach pomiarowych
Wywiad z przedstawicielami NI
Stanowisko pomiarowe do badań nad biogazem (napisano przy współpracy z UWM
Author and co-author of numerous articles on moto-biznes.pl
Analiza efektywności wybranych implementacji algorytmów kryptograficznych i funkcji mieszających w systemach wbudowanych