Waffle Modem Computer Interface

A project log for Waffle: a pocket-sized digital radio system

µController, CC1101 module and LCD forming a small communication device. Other probable uses in the near future.

Frédéric DruppelFrédéric Druppel 05/08/2016 at 17:260 Comments

While Mano is working on the hardware, I'm working on the software side of the project.

Today, I designed a raw computer interface for The Waffle using my favorite programming program, Processing. Using the basic ControlP5 GUI library, it was much easier for me to add text fields, buttons, etc.

You may ask yourself "Why in heavens name did he use Processing instead of stock Python or stock Java ?". Well, there are a few reasons why : because I'm familiar with it, because it's open-source, because it's easy to use and to implement libraries, and also because it's cross-platform, which means that I'm easily able to compile the final program as a ".app" file for OS X, ".exe" for Windows and as an Unix executable for Linux. All that just with a few clicks :)

Right now, it only works "theoretically". That means that the buttons and the text fields are working (with minor bugs, of course, thanks to Murphy), but it's still the raw interface, it doesn't send the messages over uART yet.

Here's a nice screeshot on the interface ^^

As you can see, there are 3 text inputs, 4 text outputs and one button. The two white text outputs are just echoes of the two small blue input fields, the thin grey output field is a preview of the message that will be sent over UART (with the 1st callsign, the second callsign and the message), the thick grey field will be the field where the received message will show up, and the "send" button is, well, the button that will send your message (I shall change the font here).

I may add other stuff to the interface as we need, but right now these are the fundamental functions.

If you want to look at my catastrophic code, well, maybe not catastrophic but "uncommented", you can find it at the "files" segment of this project. I will comment the final versions, but right now it is not really necessary as this is only a beta version.