Hackaday Supercon – Belgrade

After a vacancy I got a ticket to the Hackaday Superconference to Belgrade so we travelled to the Balkans with my collegue.

Travelling

Buying a train ticket caused us difficulties because we could not do it only. We also check the Serbian train company’s website. At least we found that we can buy tickets at Keleti train station next to platform 6. This was almost true because next to platform 6 was only a sign with the directions to the ticket office. We planned to go with a night train and we could choose between sleeping cars for 2, 4 or 6. We chose the car for 4 to have some adventure.
The train left Budapest on friday evening at 10pm. We arrived at the platform a quarter hour before and started looking four our car. The car with the same number that we had on our ticket looked like a sleeping car for six. It turned out that it doesn’t matter what car you choose because your cabin will have six beds. The only difference is the reservation count per cabin. A Bulgarian guy arrived a few minutes later who was very relifed after he leant that we also going to the conference. Later we met a Polish guy who also was going to the conference. We had a great time.
After some sleep we arrived at the border at midnight. We waited more than an our for the border control. We managed to have a somehow relaxing sleep later but alltogether we got to Belgrade tired at 8am. I previous was in Belgrade in 2006 and in the past 12 years it hasn’t changed a bit.

The badge

One of the main attaction of the conference is the badge. They desing a custom badge for every conference that you can hack during the event. Every attendant gets one and at the end of the conference you can show what have you accomplish during the day.
I took there serious equipment because I didn’t know what to expect regarding the badge. This year it was a PIC based retro computer emulator.
My goals was to show photos I take with my action cam on the display of the badge. First I modified the software of the badge to make it able to receive an image over UART. It was easy because I had a history with PICs and with this type of display too. I also took my PICKit with me as well. I added the possibility of sending a character on a keypress as a shutter function.
I sent an image from my notebook to the badge using a USB-UART converter. To make it simpler I sent it in the raw format of the display. A simple Python script could do the whole thing.

Block diagram of my badge project

The next step was to send a command over WiFi to the camera to take a picture and download it. I played with this before the conference so I knew it can be controlled by JSON messages thanks to the tcpdump on my phone. With minor difficulties I managed to have a script that I run and the picture appears on my notebook.
At this point I had to put the pieces together. In order to make the retro experience stronger I wanted to send the image to the badge like I was downloading it using a dial-up modem. For Python there are ready to go libraries for resizing images so first I downscale to image to 16×16 pixel blocks and I sent this first to the badge. After the low resolution image was shown on the display I started to send the image in native resolution. It worked great and it was quite spectacular.
As a last step I wanted to have this whole thing in a compact form using my Onion Omega2 board. I finally managed to the and OpenWRT/LEDE with Python on it’s 8MB storage. This looked promising but I previously had trouble with the Omega2’s WiFi. You can choose between a proprietary driver with older Openwrt or the opensource driver with an up to date system. In the first case there aren’t many packages (i.e. compatible Python) available and in the second case the WiFi is very unstable. I tried to solve the problem by using a USB WiFi stick but it’s driver had a conflict with the kernel version.
Unfortunatile I could not finish the project on time but it was fun anyway. If I have some time I will try it using a Raspberry PI Zero W or if the open source driver gets fixed I will try that.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top