I started to build my own digital clock using DS1302RTC

I have long time considered how to build digital watch. Now I am ready for this. I did not wanted to do it without real time clock (DS1302). So ordered some from china and now I got them

I put together first prototype and it works nice


So RTC gives me time

2015-02-12 22.53.55


DS1302RTC is connected to Arduino. Later I will design my own board and going to use Atmega328PU. Battary keeps time even external power is down.


2015-02-12 22.54.112015-02-12 23.00.02


At the moment this is my fancy user interface. Later I will use LCD or OLED


2015-02-12 22.54.18


Arduino-Uno and TFT 2.4”

Bought new toy  2.4 Inch TFT LCD Shield Touch Board Display Module For Arduino UNO

It took about an hour to find right libs

Using ILI9325 driver



and to get first picture but here it is

2015-02-04 22.38.08

Wireless temperature measure system

The main components are atmega328p micro cpu, RFM12b radio modules and DS18S20 for temperature measurement.

Temperature sender unit

2014-08-08 13.48.01

Sender code – github

Senders can power up using USB power converters or pattery pack.
Display unit gets power from any USB.


Display unit owns LCD plug (MCP23008) between atmega328p and LDC.

2014-08-08 13.47.00 2014-08-08 13.46.51

2014-08-08 13.47.29

Now I thought it might by cool to collect all sensors data.

So I build network module who collects the same data that display module gets but sends it to my zabbix server.

Network module is built using ENC28J60

2014-08-08 14.07.28 2014-08-08 14.07.17

So now I can see cool graphs

Screen Shot 2014-08-08 at 14.11.39

Apache-kafka and Atmel 328p + enc28j60

I put together a simple hardware

atmega328p – executes programm

enc28j60 – ethernet

programmed it using C code:

// Demo using DHCP and DNS to perform a web client request.
// 2011-06-08 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php

#include <EtherCard.h>

// ethernet interface mac address, must be unique on the LAN
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

byte Ethernet::buffer[700];
static uint32_t timer;
Stash stash;

char website[] PROGMEM = “vm37.dbweb.ee”;
#define PATH “”
#define VARIABLE “test”

// called when the client request is complete
static void my_callback (byte status, word off, word len) {
Ethernet::buffer[off+300] = 0;
Serial.print((const char*) Ethernet::buffer + off);

void setup () {

if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
Serial.println( “Failed to access Ethernet controller”);
if (!ether.dhcpSetup())
Serial.println(“DHCP failed”);
ether.hisport = 8080;
ether.printIp(“IP: “, ether.myip);
ether.printIp(“GW: “, ether.gwip);
ether.printIp(“DNS: “, ether.dnsip);

if (!ether.dnsLookup(website))
Serial.println(“DNS failed”);

ether.printIp(“SRV: “, ether.hisip);

void loop () {

if (millis() > timer) {
timer = millis() + 10000;

byte sd = stash.create();
stash.print(“{\”messages\”: [{\”value\”:{\”key\”:\”Margusja\”}}]}”);

// generate the header with payload – note that the stash size is used,
// and that a “stash descriptor” is passed in as argument using “$H”
Stash::prepare(PSTR(“POST /topics/kafkademo1 HTTP/1.1” “\r\n”
“Host: vm37.dbweb.ee:8080” “\r\n”
//”User-Agent: margusja” “\r\n”
“Accept: */*” “\r\n”
“Content-Type: application/json” “\r\n”
“Content-Length: $D” “\r\n”
website, PSTR(PATH), website, stash.size(), sd);

// send the packet – this also releases all stash buffers once done

Uploaded code to MC and powered it up.

2014-05-14 21.46.00



And after it got data from DHCP I saw nice picture – it sends data into my kafka queue

Screen Shot 2014-05-14 at 21.45.11