RFM12 under Linux and remote controlled power sockets

Currently I’m working on a project communicating and transmitting signals over the air with an 433 MHz radio module called “rfm12“, produced by HopeRF, soldered onto devices capable of running OpenWrt and having at least 3 accessible GPIO’s.

Short story long:

These radio modules are capable of sending / receiving over the ISM frequency band, as e.g. 433 MHz or 868 MHz and just cost about 5 Euros.

RFM12 module

RFM12 module soldered onto eval board

The idea was to get the module working on several embedded boards running Linux, e.g. routers, microcomputers such as the NanoNote, etc. via a generic software interface.

The rfm12 module is controlled via the 4-wire protocol SPI which basically is based on toggling pins between the machine’s logic-levels (high/low) at an individual non-specified clock-speed (http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus).

Since most of mentioned boards do not own a native SPI bus, but several GPIO’s (most LED’s are connected via GPIO’s on such devices), SPI can be “emulated” by toggling these GPIO’s in a specific way (also called “bitbanging“).

That way there’s no need for any other electronic peripherals such as microcontrollers, semiconductors, resistors, etc. – the chip is directly connected with the board – everything is done in software.

Inspired by the project “ethersex” – a project programming and maintaining a software for Atmel AVR micro-controllers used for home- / building automation – and an approach of soldering the module onto a specific router, communicating via SPI over GPIO’s (however used code is rather old, unmaintained and board-specific)  – the idea came up to write a generic linux kernel module to support the module from within linux directly.

Based on the ideas realised with the ethersex project, I decided to aim my project on being able to switch remote controlled power sockets of which I own several (to each other incompatible) modules.

Because the rfm12 module is (only) capable of doing FM (modulating payload data on top of the frequency), but lot’s of devices are controlled via AM (most remote controlled power sockets included), we emulate AM by simply turning the module on and off in a specific sequence.

Since this operation is timing critical and needs to be atomic, we need to do basic stuff in the kernel space rather than from userspace.

The whole project is going to consist of 4 major parts:

My testing device is an old Netgear WGT634U I had in spare which has a broadcom 47xx SoC working in and 4 unused GPIO’s available.

RFM12 module directly connected to a Netgear WGT634U router

Implemented yet is support for the most common radio controlled sockets sold – the ones which have a 2272/2262 IC built in (including these Chinese versions which get on fire – http://ec.europa.eu/consumers/dyna/rapex/create_rapex.cfm?rx_id=142 #25) and the ones using an P801B chip.

radio controlled power sockets: 2272, P801B, 2262

I also have a set of radio controlled dimmers which protocol I’m going to implement soon…

For now the source code is hosted on github: https://github.com/mirko/rfm12-ASK-for-linux – there’s no project site yet but will be created if the project is growing / interest is getting raised 🙂

UPDATE: In case you’re willing to participate, you’re more than welcome! Just drop me an email… There’s lot’s of stuff I’d like to see implemented, especially usable (G)UI’s… but for sure it’s not just about me: patches, feedback, enhancements and feature-requests (in a certain extent) are highly appreciated!

closing…

Being back home for almost two month now, I finally find some time to close this category, my trip to Bali.

I’ve been in Tanah Lot – an area where a rather famous temple of the same denominator is located. It’s kind of an island during high tide but accessible when tide is low.

Because of it’s formation, location and a spring of freshwater inside, a priest declared it as an holy place in the 15th century.

Seriously, it’s an amazing place (however flooded by tourists and locals trying to sell stuff).

After Tanah Lot I got back to Sanur, wanted to stay there just a few days and then move to the so called Gili islands…

…however unfortunately I got ill, got the Dengue fever.

I don’t want to elaborate my almost last 10 days on Bali, however it was everything but nice and I do not wish anyone getting this bloody fever – seriously…

Closing statement:

It was great (apart from the fever I got)!

Seriously, Bali is no place where you’re going to struggle in any way… the Balinese economy is based on tourism, so you can get there almost every (western) stuff – it’s everything but a survival training (assumed you’re not getting ill).

Bali is a perfect mix of paradise-like beach and sea (have a look at the photos posted a few posts below) and cultural experiences (despite the tourism the Balinese people try hard to keep and practise their culture) like their huge amount of temples, sacrificial offerings several times a day, performances, etc.

There is lot’s of tourism, and partially too much of it for sure (for example Kuta and surroundings) – however the locals are really lovely and open-minded, it’s quite easy to socialise and get in touch with them…

Sharing some time of their everyday life is a definite recommendation if you’re not just there for beach, sea and sun but interested as well in their daily grind and culture.

They are more than pleased to show you around, quiet interested in western politics, habits, views, etc. – answering your questions in exchange for yours 🙂

To those Balinese / Indonesian I met there, reading this:

Thanks you so much for the great time !!

comments, twitter…

I recognized just a few hours ago, there were comments written, which needed to be approved…

Did so now and tried to respond to them – sorry for the delay and thanks a lot for your input/contributions!

As most people reading my blog do know already anyway and I no longer feel ashamed of using it…

My twitter username: foobarbablub – respectively the twitter page: http://twitter.com/foobarblablub

Polluting the twitter cloud with statements / impressions I don’t think they’re worth a whole blog post… most tweets are not related to technical / computer stuff by the way – used language is mostly English…

back to the coast

Since it was raining in Ubud most of the time I decided to get back to the coast, back to Sanur.

“My room” in the house of that English-Balinese family in Sanur got a bit, ehrm, “broken” meanwhile:

However the time the weather was reasonable, I tried to catch as much as possible – e.g. the legendary monkey forest: hell, 2500 monkeys trying to rip you off.

Trying to get everything which is not part of your body (cameras, necklaces, earrings, (sun)glasses, etc.) – waiting with your belongings a few meters in front of you for bananas or other food in exchange – seriously, you can buy your stuff back!

After two days in Sanur I moved to the “southern most point” of Bali, Uluwatu. It was my fault to not book a room or an apartment in advance, so I experienced one “sorry, we’re full” after another on site.

Finally some building workers put me into one of their unfinished apartments they were working on. It was overprized, however I was tired and happy I finally found an accommodation.

In Uluwatu, according surfers, there is a couple of best spots highly seeked by surfers – that’s why the few existing quarters down there are full and overpriced all the time.

Since I’m not surfing (and these spots are definitly not proper spots for beginning with) and nothing else was around (the last kind of “bar” around closes at 8PM), I just enjoyed the view, read something and left two days later.

Actually I wanted to go Seminyak and a few days further to Tanah Lot (one of the most adored temples in Bali), but everything there was full, as well (however this time I knew before, as I called them :)).

As I had to cross Kuta (the “Ballermann” of Bali, mentioned in the post before) – and since it was the only place around I was able to get a room reserved for this night – I decided to stay there overnight and move further the day after.

When I arrived in Kuta however, they told me, the guy who wanted to checkout is going to stay longer and there’s no more room available. After hours of walking around looking for and calling hotels / apartments (once again), some locals I met offered me to stay in there place where I am currently.

The reason by the way everything is fully booked is Ramadan.

Will go directly to Tanah Lot this afternoon, after confirming the room reserved there is still available when leaving 🙂

UPATE: I _am_ in Tanah Lot right now, however didn’t get post online in time 🙂

Ubud

I moved from Sanur to Ubud today, which is located in the center of Bali – staying here for at least three days.

Actually I wanted to go there by taxi, however in the morning I met three really nice local guys in my age, who offered to drive me there for free after I told them I’m going to go to Ubud today… (however) by motorcycle.

Considering the traffic conditions on Bali I really was not sure about whether taking this offer would be a good idea… however I agreed – no risk no fun… – it was an awesome experience!

So I collected all my stuff, threw it in my backpack and met with these guys – four people on two motorcycles, lurching through the traffic about 40 minutes from Sanur to Ubud having all my stuff on my back.
Watching the traffic from this point of view it seems much more and less scary at the same time. You’re now part of this chaos, praying the guy in front of you driving the motorcycle is doing everything right.
However it just works – what seems to be the worst chaos ever from the outside, from the inside everything seems to be smooth, everybody is seems to be relaxed, just trying to find out whether this gap is big enough to get through…

The accomodation is really simple, but quite nice – just a room with a bed in and a kind of open-air shower and WC. Tea and coffee the whole day and breakfast included for about 10USD / night.

some impressions

This post is derived from an email to some of my German relatives and friends – maybe I’m going to translate it to English later…

so langsam fĂĽhl ich mich wohl hier… gestern war irgendwie der erste Tag an dem ich richtig am Meer und Pool ausspannen konnte – Beweis:

Man (ich) benötigt scheinbar doch wirklich mehr Zeit als man sich eingestehen möchte – Ăśberwindung des Jetlags, Anpassung an die Klimaverhältnisse, Verstehen und Erwidern können der balinesischen Art im Alltag…

Hängt wohl auch damit zusammen, dass ich so langsam glaube rauszuhaben, wie man mit all den ReizĂĽberflutungen – vor Allem der an jeder Ecke und nicht-Ecke stehenden Verkäufern, die einem alles Mögliche andrehen möchten – umzugehen hat.

Die vorherige Grundlage “die wollen doch alle nur Touristen abzocken” bot nicht viel Spieraum fĂĽr ernstzunehmende Gespräche. Es beginnt aber SpaĂź zu machen auf eben jene einzugehen, mit den Leuten einfach nur zu reden, ggf. zu Handeln, feixen, etc – vor Allem wenn man merkt, dass noch immer Interesse seitens der Verkäufer – trotz klarem Nein zu angeboteten Waren und Dienstleistungen – an ein wenig Smalltalk besteht.

Zudem – was mir vorher auch nicht deutlich wurde – wahren sie, trotz ihrer exzessiven Versuche Dienstleistungen / Produkte an den Mann zu bringen – ihre Prizipien und Kultur. Vor jedem Stand und Laden legen die Balinesen kleine Opfergaben auf die StraĂźe, beten und ĂĽberschreiten bestimmte Grenzen einfach nicht (klare Neins werden auch als solche akzeptiert).

Ich habe mir gestern Abend/Nacht Kura angeschaut – dem Ballermann Mallorcas auf Bali – wenn man da lebend rauskommt, ist man fĂĽr alles andere gewappnet.

Eigentlich wollte ich mich auch dort ein paar Tage lang aufhalten, jedoch war der Rat seitens meines englischen Gastgebers – sich den Ort ggf. vorher einfach mal anzuschauen (~30 min. mit dem Taxi von Sanur aus) – eine sehr gute Idee; dort Ruhe und Schlaf zu finden dĂĽrfte nicht einfach werden.

Zudem wurde ich nun wirklich häufig vor den Australiern gewarnt – am Treffensten wurde es so formuliert: “Well, you’re German… I guess the Australians in Bali are like the Germans on Mallorca”… Kuta, eine perfekte Symbiose.

Sich in Kuta einzuquartieren ist also vorerst keine Option.

Allerdings ist der kilometerlange Strand dort trotz angrenzender Partymeile extrem ruhig, nicht überlaufen und wirklich schön und ich habe eine Menge echt netter dort lebender Leute kennengelernt die sich hier häufig zum allabendlichen Sonnenuntergang einfinden.

Darunter unter Anderem eine Gruppe von Japanern die teils auf Bali, teils auf Java wohnen – einer von ihnen arbeitet in Kuta als Friseur und will mir, weil ich der doch schon gut angetrunkenen und kettenrauchenden Truppe, die knapp bei Kasse war, ne Packung Kippen spendierte, irgendwann demnächst einen neuen Haarschnitt verpassen – bin da aber noch ein wenig skeptisch :)).

Ich habe gerade eine Unterkunft in Ubud, im Zentrum Balis, gebucht – fĂĽr von morgen plus zwei Nächte. Steht im Guide als Low-Budget (8USD/Nacht) Unterkunft folgendermaĂźen beschrieben: “Charmante kleine Bambusbungalows mit wunderschön begrĂĽntem Open-Air-Du/WC, in der das kalte Wasser schnell zur Nebensache wird” – man darf gespannt sein 🙂

Sanur, der Ort in welchem ich mich die ganze Zeit hauptsächlich aufhalte, gefällt mir so langsam wirklich gut.
Sonne, Strand, Meer, luxuriöse Hotelanlagen deren Bars und Pools ich trotz nicht-dort-Gast einfach mitbenutze, was los, aber doch nicht zuviel – ein prima Ort zum akklimatisieren und einfĂĽhlen.

Ich werde auf jeden Fall – spätestens am Ende meines ungeplanten geplanten Rundtrips – hier in Sanur nochmal aufschlagen, zumal ich dort und Unbegung einen Haufen wirklich netter Leute kennengelernt habe, die ich auf jeden Fall nochmal wiedersehen möchte. Die weitere spätere Unterkunft hier bei der balinesisch-/englischen Familie steht mir weiterhin zur VerfĂĽgung.

Zum Schluss noch ein paar EindrĂĽcke des Ortes Sanur in Form von ungephotoshoppten Fotos:

successfully arrived on Bali

I successfully arrived in Bali yesterday in the evening. Flight was (as always) not quite enojoyable (Amsterdam -> Singapore more than 12 hours) – however it was bearable.
I was surprised actually by the service offered by KLM and Singapore Airlines in a positive way (food was surprisingly great: both offered fish – first time I got fish offered on an airplane as regular meal within economy class; Singapore Airlines additionally had real metal cutlery and a big portion of awesome ice-cream afterwards, for a flight of just two hours).

Met a German couple on the plane going to do professional diving somewhere in the south of Bali for three weeks. They offered me to visit them there and taking a deep look into the water with professional diving equipment. From what they told it has to be really incredible and if any way possible, I’m going to take that offer whenever I’ll be in this area.

On the final flight from Singapore to Bali I met an English guy, who is living on Bali with his Balinese wife and daugther for quite some time now and offered me to stay with them in their place for a couple of days which offer I thankfully took, as I had no clue anyway what to do after dropping out of the airplane (I in case of doubt I would have aimed a hostel near the airport mentioned in my guide).
These three people (actually four, there is an attendant living with them who is treated as part of the family) are really lovely, doing everything to make my stay enjoyable – well, I got in touch with the guy just two hours ago on the plane!

Their place – they call it “simple” – is wonderful; the whole kind-of 2nd floor is mine, within an own (bed)room, bathroom and an area with chairs and table which is opened to the inside of the whole area which in fact is a little garden – if I want to just “relax” they said…

Just take a look by yourself:

When writing this text it’s about 4 ‘o clock local time – bloody jetlag… _right now_ I just did see Bali at night (arrived at 9 ‘o clock); I’m really curious about how this all looks by day.

I took a walk in the area nearby at about 11PM and have to admit – I don’t really feel comfortable just walking around alone… Overall people offering you every kind of services in a very aggressive way, trying to rip off tourists.
However walking around in this area, tired and a little bit agitated because of the long flight, just wanna have everybody shut-up, might not have been the appropriate preconditions facing the situation in an open-minded way.

UPDATE: That was really just the first impression… the people are nice and kind, seriously. Yes, they want to sell their stuff quite often and quite everywhere, however you get used to it… just saying no, starting ignoring them or taking with them about all the world and his wife or whatever elese  🙂

So much for now – as there are lot of things I’d like to see/visit very close by the place I’m currently staying, I think I’ll keep staying here for a couple of days – trying to figure out where to go and what to do next.

trip trip – hurra!

Long time no news…

some things happened which weren’t worth a particular post (or I was just too lazy), so I’ll try to summarize of a few things which happen(ed):

== tech stuff

OpenWrt is still my focus – the qt4 package now got libX11 support (besides DirectFB / linuxfb, both accessed by the QWS-part) – thanks a lot to Michael BĂĽsch at this point!

I’m also very interested in the new features of qt4.7 – especially the declarative UI part of qt4.7 called QML – an approach of designing UIs in a declarative way, means, from the UI’s point of view (more in the mentioned links above).

I’m curious about how/whether it can/will be used/accepted by “native” designers to write fully functional GUI applications.

It’s approach is looking quite promising to me – the language style as well as the implementation – really curious about how it’ll do on embedded devices without graphics acceleration. After some talks to qt developers GL support is not required; a number of animations, effects and transitions were optimized for software processing and should be even smoother than rendered via GL.

First usecase is going to be a picture frame, which has the same SoC built in (Ingenic JZ4740) as the NanoNote and therewith is pretty well supported.

The picture-frame is an ID800WT manufactured by Sungale.

Before somebody is going to think, whether I want to promote/support/recommend this brand/product:

From the board layout’s point of view it is the worst product sold in Germany I’ve ever seen! And it’s too expensive! And the company violates the GPL!

Take a look at the board by yourself:

Sungale pictureframe ID800WT board

Sungale pictureframe ID800WT board

The USB Wifi-stick got hot-glued onto the board, it seems they even unsoldered the USB-socket manually (because it looks really charred all around) and connected it with some random wires to a SMD-chip which in fact is an USB-hub. Around there’s hot-glue all around, partially charred, partially way too much. This is really the worst in Germany sold product ever!

However it serves the purpose – has supported wifi (atheros), an 800×600-display, a touchscreen, USB-host, etc.

After my holidays I’ll try to evaluate and play around with qt4.7-features on that device on top of OpenWrt.

== trips

After almost one week spent in Croatia, Split, participating at the “nothing will happen” conference – which was really amazing and organized by very nice people – I’m going to travel to Bali for one month, leaving in two days.

Actually I wanted to go to Burma (Myanmar), however I mixed them up and booked my flight to Bali, Indonesia… anyway – more beach and sea this time…

This is going to be my third trip to Asia and I’m really looking forward to it – this time for holiday, backpacking without any fixed plans.

Actually I also didn’t want to take a computer with me – still I bought an EeePC 1015. Resolution is disappointing, however price, weight, battery life (about 8 fucking hours!) and site serve the purpose of just having a terminal perfectly.

See you there 🙂

Qt is working on OpenWrt

qt_openwrt_nanonote

Okay, now some – really little – text I promised…

As you can I see Qt is running inside OpenWrt on the Ben NanoNote of qi-hardware. The device has only 32MB of RAM so this – especially this video I made (qt_openwrt_nanonote.ogm) with it’s coverflow-like 3d and mirroring-effects – shows the great potential of even such embedded hardware.

The Qt packages are not yet committed, I’ll do some cleanups and testing before.

However it’s almost ready to get its way into the OpenWrt packages repository.

QT/KDE on OpenWrt

As you may know OpenWrt’s collection of ported packages is continuesly growing.

Many graphical stuff gets ported, as well as graphical desktops and toolkits (lxde, xfce, gnome based on GTK2 – e17 based on the enlightenment foundation libraries – etc.).

However there was no approach yet to port the last missing Desktop “KDE” and underlying Toolkit “QT”.

That’s why I went to “Tokamak 4” this weekend, a meeting organized and founded by the KDE foundation, intended to communicate and hack together related to several KDE software projects.

We were about 25 people from all over the world and I really enjoyed the stay and nice, friendly and mixed party – surprisingly I was the only one not using KDE (however not for a special reason – just got used to my current environment) :).

They showed lot’s of interest in the UCI-System (Unified Configuration Interface) OpenWrt is using.
It’s a simple, human-readable, easy-to-parse configuration file format and library OpenWrt uses for services to make it easy writing Administration Interfaces for them (e.g. the webinterface “LuCI”).
We were spinning around about KDE Plasma applets which will list available OpenWrt-devices ready to get administrated right through native applications.

Key deal for me however was to get in touch with people who know the QT/KDE architecture very well, for sure promoting a bit OpenWrt, qi-hardware and it’s concept of open hardware and why I think having QT/KDE support within OpenWrt is opening lot’s of opportunities for both projects.

Since QT is able to use DirectFB (a very powerful but light abstraction for the linux framebuffer) – and therefore does not require a X11 system necessarily – it would be also great for limited hardware such as the Ben NanoNote (32MB of RAM) where I got GTK2-based apps running on top of DirectFB quite some time ago.

I expected to get basic support for QT within OpenWrt done this weekend, however I underestimated the size and complexity of QT – never touched QT-code before.
I realized QT is not just a toolkit as GTK2 is, but a whole framework which tries to abstract as much as possible from the underlying system. It features own backends for multimedia, sound, graphics, even networking – to achieve a stable API and platform compatibility without the need of code modifications, no matter which backends or systems are used below.

In which way the typical issues of such a abstraction-concept – such as getting bloated, having performance issues, being feature-limited as you’re usually just able to support the least common denominator of all supported backends, etc. – I’ve no idea yet – maybe they found a way, will find that out sooner or later.

They also use “qmake” as build-system which is structured quite different than e.g. GNU make, so this got another temporary road blocker as I used qmake never before and had to dig in first.

Back to the port of QT to OpenWrt: I’m having promise to see the first basic QT based application running on a OpenWrt supported device within the next days.

Will let you know 🙂

← Previous PageNext Page →