Two Way Communication: Attempt 2

Group Members: Johnny Dunn, Gentry Demchak

Our goal is to eventually get two way encyrpted communication via a python application over RFduino bluetooth. Eventually, a javascript app will also be able to receive decoded messages to be displayed on a message screen.

when running node, we could not open the serial port.Screen Shot 2015-10-27 at 12.44.04 AMwe used the same port that the RFduino was connected to.

Screen Shot 2015-10-27 at 12.44.18 AM

Screen Shot 2015-10-27 at 11.35.29 AM

In our next attempt we may have to write a function that scans all available ports and loop through them until the program can successfully send data via the selected serial port.

Github with in-progress python, arduino, and javascript code can be found.

RFduino messaging encryption: part 1

Group Members: Gentry Demchak, Johnny Dunn

Part 1 of 2 in an RFduino encrypted messaging platform.

This portion involves device to host communication:

Screen Shot 2015-10-15 at 1.37.40 AM

A message typed into python running on the raspberry pi is sent via serial to the RFduino Device where it is recieved on the RFduino Host and sent through serial to a computer running a node server where the message is finally pushed to the client side of  a chat webpage via When debugging our code, we had lots of issues getting to work properly and are still working out the kinks.

Currently we only have the framework for basic one-way communication. Next week we will produce the basic framework for two-way communication and implement our own encryption system. If we have time, we would like to use python

A repo with our version history can be found on our github.


RFDuino Encrypted Communication


I collaborated with Johnny on this project for Ayo’s class. We designed a very rudimentary encrypted messaging application that runs on Arduino with a terminal interface running in Python. This can run on both a mac and a raspberry pi. The messages are transmitted over gazell network bluetooth.

Link to Github repo:


Fritzing Sketch:

Screen Shot 2015-10-08 at 11.38.56 AM

Communication happens between a host and a device.

Three Inputs:

– user generated message

– Randomly generated key

– Send/Receive assignment


2 Outputs:

– Encrypted message

– Generated Key

How it works:

The user inputs the message they would like to send. That message is sent via hardware serial to the Host RFDuino where it is read and then sent out across bluetooth bandwidth where it is recieved by the Device RFDuino and then sent through hardware serial to be read and then deciphered by the python program.


P2P Network examples

Original post on September 21st:

Lime Wire P2P file sharing service – Similar to the BitTorrent P2P network, it allowed you to download and upload content to websites like The PirateBay. LimeWire has been around for a while, but recently BitTorrent has becoming the leader in P2P networking.

AIM – This is another old one and a fairly simple. AIM was (and I believe still might be….) an online PM chat client that simply allowed you to communicate with anyone else with an AIM account over an internet connection.

LTE/4G – This one is probably one of the most popular a wide spread method of communication. We use our phones to communicate between individuals.

TorBrowser – An example of an interface for connecting to the world wide web as well as the “deep web.” Essentially it is a web browser, but unlike AIM or LTE/4G, it is an actual interface for accessing websites stored on servers.

Interactive Art Installation Idea – Two screen interfaces made up of an array of protruding buttons or actuators. When you press an actuator in on one interface, it pushes out on the opposite interface. Alternatively they could be buttons that controll individual pixels, allowing you to draw something on one interface and have the drawing immediately replicated on the opposite interface over a network communication. Mostly this provides entertainment value because it can be used to communicate with friends or family. Most communication happens in the form of text messaging, but this device allows people to communicate through drawing. It also could help bridge the physical gap between people communicating over a network, especially if actuators were used. As one persons presses an actuator, the opposite user would be able to feel the force/pressure being applied to the actuator. This provides tactile feedback rather than traditional textual/visual feedback which gives it tangibility. I think people like tangibility.

Studio IoT Xbee Communication

Xbee P2P network.

Original post on September 21st:

Group included: Gentry, Johnny, Zanzie, Kim



Required parts:

2 Xbee’s

2 Breadboards

2 Potentiometers

4 LED’s

2 220 ohm resistors

2 10k ohm resistors

2 buttons


2 Arduino Uno

The Project:

create two Xbee communicators. Twist the potentiometer to change output value, press the button to send potentiometer value. The other Xbee will receive that value and use it to set PWM on an LED.

Link to github repo: