Digital Jersey Medical Hackathon

This my story of entering the Digital Jersey Medical Hackathon which took place over last weekend, now that I have recovered from lack of sleep.

The Concept

To build a low cost open source messaging platform using a Raspberry Pi, MQTT broker and a custom version of Android with a web app to monitor air quality. The name of the project was called “Health Stage”

Friday Night

I got to Digital Jersey  early on friday evening to setup, I choose one of the side rooms as it has a wall mounted TV with a good sized desk. As you can see, I had quite a bit of equipment with me for the build.

INITIAL sETUP

At 20:00 hours, the hackathon started, so I started my build of Android whilst soldering the pcb daughter board for the Raspberry Pi. By just after 11:00, the pcb was soldered, so next came polarity checking to make sure it was all good.

Yeah, we have a powered board that did not go bang!!!

Working Board

So I had basic hardware build out of the way, but this is when I hit “the software wall”. A mix of library issues, caused sensors  to provide no data, as well as not seating boards correctly. Also the Android build had an issue, which could not be corrected remotely correctly. At just before 2 a.m, I decided that was it, time to go home to kick off the Android build and get some sleep at about 02:30 a.m.

Saturday

I woke up at about 07:30 a.m, checked my Android build on my server at home, it had completed. Next, I had some breakfast, transferred it to the phone and tried to “boot it”. The phone booted fine after a cache wipe, so that was another objective completed, the “about phone ” screen is shown below:-

Build state rom

On returning back to DJ at  around 11:30 a.m, it was obvious that some people had pulled an “all-nighter”, @JerseyITGuy was still in the corner seat where I had left him the night before. The the next few hours were spent breaking and fixing various software libraries. I ended up writing some custom python to get one of the sensors (AM2302 Temperature and Relative Humidity) working. I went out to lunch with the family and then returned to start building the Health Stage website, as I now had sensor data going to the internet.

At this point, I still had to build the MQTT broker, website and dashboard. It became clear that I would have to abandon building the broker  in order to get over the finishing line. So the point I want to make, is that you should have a plan that is flexible enough to cope with road blocks induced by time and or other factors.

So I set about building the website. Around 7 p.m, the majority of the website was uploaded. Lastly, there was the dashboard to code. I had allowed the whole of Saturday afternoon to code it, as I had recognised it was my weakest area of the build. I then had to reassess my plan once again, using freeboard.io directly for the dashboard rather than integrating it in the website.

By 10.00 p.m, I decided to stop and let the system settle down as I had live data on the dashboard at http://www.healthstage.co.uk/live.html with the web application left to finish. A few of the hackathon competitors, decided to adjourn for a beer / cider across the road. I walked home after that to bed.

Working Dashboard.

Sunday

I got to DJ just after 8 a.m, I decided to get my submission out of the way and then concentrate on the web application. I had a basic shell of an application to build and then I hit more software issues with the Android SDK, it became clear I was not going to solve it before the presentations.

At around this time, I saw Bendict who came in to see how the project was going. I showed him the project running with the light level, that I was going to demonstrate. Suddenly,to mu surprise, Benedict picked up his vape stick and blew on the contaminant sensor, it reacted crazy showing a large decrease in air quality. I asked Benedict, if he would not mind polluting the sensor during my presentation.

The Pitch

The four minute pitch went well, with the demo working perfectly, demonstrating the light level and Benedict’s pollution.

The Judging

I did not envy the judge’s task, as all the pitches were of an incredible standard with an amazing amount of variety of ideas. Everyone waited for the decision. Third place was awarded to MyGP, for their app which enabled better patient and doctor communication. Next second place. Boom, it was awarded to my project. I collected my prize (“a green laser printed robot trophy” plus £500) feeling immense. Now it was just time to see who had won.  The winner were Beacon, an app to help people call emergency services to their location. Here is my cool green robot trophy.

A Cool Trophy

The Future

The project is currently running as an indoor sensor with a thirty second update interval. I hope to move it outside, in an enclosure soon.

I will continue to work on the project, as I want to finish the web application part. In the next few weeks, I will putting up a detailed build guide and software configuration in the cyberkryption github repository. I intend to redesign the pcb, so that the modified sensors can be properly installed with jumper wires.

In the near future, I hope to get my hands on a “ehealth” shield and a set of sensors with a view to integrating it all with the new raspberry pi touchscreen. I also hope that we can get the air monitoring live in a few locations as well.

A Final Thank You

Finally, I would just like to thank the event sponsors and  Digital Jersey for a great event.

Regards

Cyberkryption

Planes,TV Tuners and Kali Linux

For a number of years, I worked within aviation as an engineer looking after flight systems such as Radars, Voice Switches and Aeronautical Radio. A while ago, I bought a Nooelec DVB-T TV tuner to play with Software Defined Radio (SDR), but I never quite got around it due to life.

Anyway, this post is about testing it to receive ADSB signals from aircraft.

The first stage is to blacklist the kernel driver ‘dvb_usb_rtl28xxu’ in /etc/modprobe.d/blacklist.local.conf.

Simply add the following to the file

blacklist dvb_usb_rtl28xxu

Now reboot your kali box and plug in your NooElec tuner, run ‘dmesg’ and you should get something like shown below.

dmesg-noelec

Now git clone the rtl-sdr repo and build the software as root.

git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr/
mkdir build
cd build
cmake ../
make sudo
make install
sudo ldconfig

You can now run the rtl_adsb utility to test your configuration, the output should be as below.
rtl_test

Now that your DVB-T tuner is working you can run the command ‘rtl_adsb -V’ to do a basic test to see if you can receive any ADSB signals from aircraft. Assuming that is good then you can git clone the dump1090  repository and set it up as follows:-


git clone https://github.com/flightaware/dump1090_mr
cd dump1090
make

Now run the dump1090 program in interactive mode using the command ‘dump1090 –interactive’.

Below is a screen shot taken today.

live-flights7

As you can see ADSB provides quite a lot of information.

RFID Tastic POC

Recently, whilst waiting for my rfidler to turn up, I found the Bishop’s Fox site with the RFID Tastic on here. As I don’t have the cash to spring for the HID MaxiProx 5375AGN00 reader required for building it, I decided to see if I could built it with a normal HID R10 mullion reader as a proof of concept. However, I needed to 12v to power the reader so I changed the R1 and R2 resistors to 390 Ohm and 3300 ohm respectively. The R10 mullion reader supports the Wiegland protocol out of the box, so no changes we need to accommodate it. Below is a screenshot of it working on the bench reading a crd and storing the card data on the SD card.

cloner-scaled

After that it was installed in a protective case as shown in preparation for the Jersey Tech Fair.  The unit was demoed reading Mifare access cards , jersey bus pre- ayment cards as well as NFC enabled bank cards in order to raise awareness.

cloner2-scaled

As you can get programmable UID0 cards on Ebay for a little as $2, it is easy to imagine the type of access that could be obtained when coupled to the high powered HID Maxprox 5375AGN00 reader which would enable reading of cards at distance. For example, a buildings access control cards could be read by just walking past employees as they enter, this data can then be reprogrammed on a UID0 card which would potentially allow unauthorised personnel access to buildings.