c0ldwater - arduino messaging system

Hello everybody,

I'd like to share my last project with the community, as I'm interested in getting some feedback regarding any issue...

It's a messaging system, optimized for arduino. It uses a 4x20 LCD as output device and has a ps/2 keyboard for data input. Everything is described in my blog, so maybe you'd like to take a look and tell me if you find it useful or just a big waste of time. In any case I'd appreciate the feedback.

The site is www.c0ldwater.com, thanks in advance for any reply.


I have to admit, I made a mistake. Fortunately some friend on the italian forum told me about the problem the arduino IDE has with some characters used for file names...

Now the issue has been solved by modifying the name of the sketch with the related links on the web page.

Hope someone will give me some feedback regarding this :-)


Hello guys, here are some other updates from my side.

I made a "PC" compatible version of c0ldwater, so anyone interested can now either use a little c program I made for linux - which only creates two threads, one for receiving messages, the other for sending - or use the so called "notworks swiss army knife", aka "netcat", to connect to port 8889 of the server (c0ldwater.com or Unfortunately telnet handles characters differently when sending a sentence and the server always misses the last sent character, so my suggestion is to avoid using it to connect to c0ldwater.

Additionally I made a small video to show what c0ldwater looks like. I can see how to register, login, list the received messages, read any of them or send a new message.

I hope you may find it interesting, as I'd like to hear some feedback about that, either suggestions or critics.

Thank you in advance,


Are you selling something?

Absolutely not, I’m just looking for some feedback from any interested user.

My aim is that of test/troubleshoot the program, so if you’re interested, just play with it.

Registration and usage are completely free, there’s nothing being sold on the website.


It that case, I'll move this topic over to Exhibition.

Oh well, I though this would be the right place to talk about services, even the free ones.

C0ldwater offers a service indeed, as it could any email server and so on.

Anyway I don’t mind moving the topic to exhibition, but until now it looks like you just deleted my topic under exhibition, while this one is remaining under the product and services category.

Did I get something wrong?

I can't remember if I deleted it. In any case, a moderator deleted it.

Cross-posting (posting essentially the same thing in more than one section) causes problems and is generally not tolerated.

Oh well, I though this would be the right place to talk about services, even the free ones.

That's certainly a reasonable argument. In your case, eyeballs are more important than appropriateness. Let's try the topic here for a while. After a few weeks, if you would like it moved back to Products & Services just ask a moderator.

As I stated in my previous post, I don't mind moving the topic.

On the contrary, I totally agree with you:

In your case, eyeballs are more important than appropriateness.

So thank you for your support!

c0ldwater: ....Everything is described in my blog, so maybe you'd like to take a look and tell me if you find it useful or just a big waste of time. In any case I'd appreciate the feedback. .....

My feedback: You should put enough material here, to make it unnecessary to visit your blog. If someone should want supplementary material, then they could follow your external link.

Right now, the only thing this thread is doing, is to direct traffic to your blog from this forum. It adds nothing of value.

Oh, and you have done the same here:
and here:

But it speaks in your favor, that you have not just copy-pasted the same text.

Hi Peter,

the only reason why I posted into different forums is that I still haven't found some users who have currently shown some interest into helping me with my messaging system, so I'm still looking for them :-) Anyway, you made a good point and I have to admit I didn't give you much information regarding my project, which is not a smart thing, as you pointed out.

So I'd really like to make things good :-)

And here I am:

c0ldwater is a project that is meant to let users communicate by exchanging messages, like most social networks or messaging systems. It is based on a client-server architecture, as you might have guessed already. On the server side I wrote a multithreaded code, which communicates via tcp/ip sockets to the external world and which interfaces a MySQL database for storing and retrieving all handled information. Client side I developed a system based on an arduino board (controlling unit), an ethernet shield (for internet connectivity), a 4x20 LCD display (as output device) and a ps/2 keyboard (for user input).

Here is how the system I built looks like:

As an arduino board (or better, a 4x20 LCD display) introduces a lot of restrictions regarding the format of the messages, part of the work was about the optimization of the sentences exchanged between the two actors.

But I think you might get a better understanding of what c0ldwater is, by watching this video I made:


Additionally, I found useful to have also a "PC version" of the service, which runs on a different port than the arduino one, but interfaces the same database (which means that a user can reach any other user without caring which system the other one is going to use to read/send his/her messages). This can be accessed either using a simple client I wrote for linux (a program that spawns two threads, one for receiving and one for sending the data), or via "netcat", for the windows addicted.

Here is an image of how it looks like:

I hope this clarifies what my project is all about and maybe some of you might also find it useful. Of course, if you still have questions about that, you are more than welcome to ask!


Thanks, that helped a lot.

Will it need contact to the coldwater server, or can it run on a LAN?

The client is supposed to connect to the c0ldwater server (c0ldwater.com or

The arduino board should connect to port 8888, while the PC version uses port 8889.

The additional features I'm working on (they're actually ready, just need to put them online but I'm lacking time these days...) are the following: - web interface: list, send, read, forward messages from the c0ldwater website - audio version: send a voice message (only from PC) to a user, who can listen to it either from PC or via arduino.

Here I am once again!

The project is going on and I have my first update on the topic: the web interface is up and running.

It is now possible to register, login, read, send or delete any message directly on the web page. The link to this new section has been directly added on the menu bar.

In particular, many different platforms will now be able to communicate using c0ldWater:

I hope to be able to finalize the next updates soon, in the mean time I'd appreciate ANY feedback related to the project.

Thanks a lot.

Interesting idea.

I've come across here since I was looking on doing "network" setups with Arduino, and currently researching background ideas on protocols, busses, etc.

Do you have links to Github projects? Where could I see the source code of the software?

I also wonder how the protocols might look like, would it be possible to use something very basic e.g. like I2C, serial bus, ... and leave the computer network out. I am asking because messages might come from machines instead of other users, e.g. from a car, sports equipment, ...

Hi farsi,

I'm using the tcp/ip protocol in order to connect the C0ldWater client to the server, while the communication between the two actors goes on by exchanging simple ascii messages, like any other application level protocol (ftp, smtp, irc and so on...).

For what concerns your idea of using a different protocol (like the ones you mentioned, i2c or serial) or having messages coming from other machines instead of other users, I have to admit I need further clarifications...

Apart from who writes the message, communication is always between two machines or devices, so it's not changing much if the message is generated automatically or pre-defined. Implementing a client-server concept with other protocols might be a little more than tricky, as they are not ment to implement a remote network, but rather to connect to local end-points. That's the reason why talking about networks, very often means talking about the tcp/ip (or udp/ip) protocol at "low" level (layer 3/4 - network and transport level).

As you are not pointing out how the network should look like or what it is ment for, I cannot make any other consideration. Still, if you are looking for meshed networks or similar, you might give a look at the zigbee or xbee modules.

Regarding the source code of the C0ldWater server, I didn't post is anywhere till now. Of corse, should there be any interest, I would have no problems in disclosing it, as it is a pretty simple piece of software (sockets, some memory management, mysql interface, data parsing and stuff alike).

Hope I helped clarifying a little!