Tehnohack after-action -report

Tehnohack after-action -report

TehnoWHAT? See http://skeemipesa.ee/tehnohack/en/

My (low-quality) photos from the event: https://plus.google.com/photos/117987945710555324615/albums/6075183191581737393

Better photos by the organizers: https://www.flickr.com/photos/95303172@N07/sets/72157648982932642/


The organizers sent an email to the Helsinki Hacklab board of directors advertising the event, I then posted the same ad to our forum. At first I figured I would be too busy with the move but since it would have been a shame if no-one from Finland participated to pitched two ideas as alternatives and paid my entry fee.

Then the waiting began…

Meanwhile I ordered some more development hardware, two more NFC interface boards and one RPI-CM. Also a transport-case for my rackmounted lab equipment.

Officially supported

About two and a half weeks later I get mail telling the my NFC-idea was chosen to be officially supported, yay! The next day my project mentor (Jürgo Preden) contacted me and we exchanged a bunch of emails about the project during the time before the event. Also made some concept drawings.


At first I did manage to get @dist to say he would come, but later he found out that he couldn’t come afterall, major bummer since we ended up being quite short-staffed on the people-grokking-nfc -department. Later @jautero announced that he’ll be coming to the NFC-team as well.

For the other idea @chadez recruited himself, I even got him some devel HW in advance (on that note: RuuviTracker wants you!), he also joined my carpool for the ferry (@jautero handles his tickets himself).

In the end it was three of us representing Finnish hackerspace scene, there were some other people (well, at least one…) from Finland though.

Day 1

I had packed may a third of my lab to boxes in preparation during the previous evening and agreed with @chadez on the time and place to pick him up (basically next to the ferry terminal). In the morning packed the car, did some work and headed to the ferry terminal where I would meet @chadez (well, next to it anyway) with time to spare from the official “be there at latest 1h in advance”. Cue waiting in the car for an hour…

I also got a reminder mail that was not exactly clear on whether I should also provide three to four slide version for my pitching slides, so on the ferry I made some presentations and sent them to Skeemipesa.

We met up with @jautero on the ferry and he joined our carpool, since we had plenty of extra time and the first day did not include catering we went shopping to the Rimi near the harbour and using the free wifi there I loaded maps and route on my Jolla to the venue.

After only one wrong turn we managed to drive ourselves to the correct neighbourhood, finding the proper parking-lot took three tries (mostly because I was hoping I could get closer to the door, that rack-case is really heavy…). Anyway we got there half an hour before the official “registration starts” -time, no matter there were already plenty of people. We commandeered a table near the window(s) and set up our workspace while waiting for the pitching time.

It turns out some people did not really understand (perhaps on purpose) what “one-page presentation” means and ended up being able to show multiple slides, I sorta would have liked to do that too since spent some time in my multi-slide ones too. Pitches were in theory two minutes long, afterwards there was still questions and answers so potential team-members (you know how hackathons work right ?) can get clarifications.

Unfortunately there was no interest for the GPS project (I guess the people who actually had the required embedded development experience already had their own ideas/teams already), though @chadez worked on it anyway (and I ended up talking about it with many people and also loaning a devkit to the Balloon team and with a 10-minute firmware customization maxing out the SMS-limit on their prepaid SIM [position messages every 5s, the GPS interval command did not quite work…])

Also the NFC-project ended up being kinda understaffed, one guy came to ask we still needed a designer and I said yes, but he did not actually join the team, no programmers volunteered. One guy joined as “the business guy” (not sure of his actual business cred, did not care) mostly to learn (he was upfront about this) which was fine by me (incidentally I ended up spending a lot of time helping other people with their problems instead of working on my own but that’s okay too).

I spent the evening (and half of the night) figuring out how to setup RuuviTracker dev-env on Ubuntu Trusty (and helping @chadez do the same to make a new VirtualBox appliance) and possible something else I no longer recall. Went to sleep at half past three in the morning and spent at least an hour trying to fall asleep.

Day 2

Woke up at around half-past seven (initially I had sorta planned to sleep past breakfast and only wake for my 11am appointment with our mentor [who was on a business trip still on friday]) with breakfast at 8. Spent the morning building Debian packages for libnfc and libfreefare. Jürgo brought “two of his engineers” with him and we talked about the project some more, one of the guys (Erki was his nick, I forgot his name, will check with Jürgo) stayed to help with the coding. Plan was to first investigate if libnfc & libfreefare could be sensibly used from Python and fall back to C if it looks infeasible. Erki found that there are usable Go bindings for both so we decided to go forward with that. The only issue was that Go was on my “this looks cool, check it out later” -list, so I spent next two hours or so teaching myself a new programming language (while sleep deprived and slightly hung over).

At some point there was a very nice lunch (I think I mentioned the organizers had very wisely opted for catering), proper food instead of pizza!. More coding, talking with various people etc, break for dinner. Also took 1h break (and maybe 20min power-nap) at some point.

After dinner more coding, talking with various people etc, at some point there was sauna option but since I had forgotten my towel and was in the coding flow anyway I skipped it. Also got two 3D-printed pieces of plastic to stick NFC stickers to so that I could finally recognize which of my test stickers was which. I think it wasn’t over two am when I went to sleep.

Day 3

Had an extra hour of sleep due to switch to winter time, woke up for breakfast which was moved 1h forward to 9am and felt surprisingly refreshed all things considered. With fresh mind immediately figured out the problem with GPIO controls and we now had something that could be used to fake our demo (the actual security-stuff was still very much a work-in-progress).

It turns out the UART NFC interfaces we had for laptop use have crappy antennas (or something but I suppose antenna issue). They were very fiddly with tag position to begin with to just read basic tag info but trying to do actual secure communications ended in “RF error” just about every time (figuring out this took a fair amount of time). So we had to move to on-RPI development using previously tested interface boards that only supported SPI. In the end we did not manage to get secure provisioning working in time but there is no need to tell that in the end-of-hackathon -pitch. At least Jürgo seemed very satisfied in any case (he’ll be visiting us in the near-ish future, by the way).

During the other pitches we packed our stuff to the car and had to leave for the ferry before the winners were actually chosen/announced.

In the dark and rain we still managed to find our way (if slightly circuituoysly) to the harbour with three minutes to spare from the “be there at latest 1h in advance”. Back in Finland I dropped @chadez and @jautero to their respective homes and arrived home at half past ten to unpack the car, have a shower and get some sleep. Waking up in time for PyCon Finland 2014 was rather painful.


Very nice hackathon, well organized and the venue was very nice too. Would go again.

This is quite common and sometimes happens with crappy cards as well. The thing is that crypto needs more jolt than the non-crypto-stuff and that obviously needs to be delivered over the air. When either antenna is crappy, dip goes the voltage and that’s that transaction.

Sounds like it might be a buffering problem, voltage shouldn’t go dip even when mcu is doing heavy lifting. Modulators and tranceivers don’t like that, antenna-going waveforms go nuts and receiving end cannot see anything sensible.

All in all sounds very interesting. I had a look at the system architectural diagram and it looks solid. Some time next week we could do some hand waving around this with you and Luide, who has done some related work with ELL-i and BLE.