Infotainment: Surprise

Well you’ve had to wait for this for quite a while but here it finally is! Every big blockbuster has it, an extra audio track commenting on the action in the movie. Usually it’s directors and actors talking allegedly interesting gibberish. But in our case it’s Christian and Sven giving you some interesting background to the Surprise video from a technological perspective. Worth watching! Find out about our reason for doing this here.


3 Kudos
facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

HOT: Wine Shelf Intensive Care

We know you all were very worried, so the good news has priority: the Wine Shelf is fine again. Phew! But we had a couple of tense hours. If you’re not in the loop what happened to the Wine Shelf in Seattle at, you can catch up here.

We took the 16 plain platforms without any electronics back to Munich where Sven and Max had in the meantime prepared an entire new set of LED rings, switches, cables, etc… Then Sven took everything to Montreal (for some reason again without being held up at security… really makes you think doesn’t it…), where he waited for the Wine Shelf to arrive. He had the whole night to do all the repairs, but due to the patient’s critical condition Sven let the soldering iron fly and did it in three hours. Bravo, we say! The Smart Wine Shelf is shining brighter than ever, and doesn’t it just look beautiful.


7 Kudos
facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Funky Retail

The next hybris labs prototype is coming soon. You might have read about the idea already here on our blog, but there have been a couple of developments. Funky Retail’s the name, in-store analytics is the game. With the Smart Wine Shelf we aimed to improve  the customer experience by the use of an recommendation system based on IoT technology. But we also realised that the Internet of Things offers ways to enhance in-store analytics. This is exactly what we focused on while designing Funky Retail.

On any standard shopping website, retailers know exactly when a customer visits,  know how long he stays, which products he looks at, for how long he looks at them, can recommend upsells and sees if the customer makes a purchase. Why should this not be possible in the physical retail world? That’s what we evaluate with Funky Retail. We identify the presence of a customer in front of a Funky Box; we count the product lift-ups; we measure how long a product is being lifted; and we even combined the individual product lift-up with the playback of an engaging product video.

To spice the whole thing up a little, we collaborated with the hybris customer Mammut. Mammut equipped us with some cool products that help us to put some more life into this prototype and round the story off. We don’t want to spoil the surprise, but we’ll give you a hint: A video shoot is scheduled with the hybris media team, and those guys have got a bit of climbing experience…

Stay tuned!


8 Kudos
facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

New space, new face

We’ve already told you about the hybris labs Innovation Space at NY82. It gives us the chance to exclusively present our prototypes to customers and partners in an environment less hectic than at the events we frequently attend. And it’s also better than keeping them in storage somewhere. The prototypes, not the partners and customers. But to do this we need some help.

Let me introduce Andreas Kopp to you who has been supporting the labs team since September 1st. He will manage the hybris labs Innovation Space and give demonstrations of our prototypes to partners, customers and also new employees. Basically to anybody who is interested. So, if you want to get in touch just send him an email to

Andreas Kopp

Being an active member of the fablab Munich and a regular exhibitor at Maker Faires, Andreas will add some new spirit to the labs team, connecting hybris labs to the maker community. Building connected objects is one of Andreas’s great interests, but he says himself that he is very curious to learn more about e-commerce and the hybris world.

We’re glad to have you with us Andreas, welcome to the team!

7 Kudos
facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

HOT: Wine Shelf Emergency Room

…That’s the title under which several emails were sent during the past week. Here’s the story: Christian and Nick went to Seattle to present the Wine Shelf at in the Washington State Convention Center.


The Wine Shelf, shipped from Chicago, was already there when they arrived at the venue, waiting to be switched on. But this time round things weren’t that easy. The Shelf didn’t flash! The connection was fine, the requests via the app and the responses worked, but none of the LEDs lit up. Time to call the Emergency Hotline in Germany. 9 hours time difference… of course Sven was ever so happy to be kept from his dinner… A thorough checkup of the software didn’t lead to the source of the problem.


Next on the list was the wiring. Suddenly, a single LED in one of the rings had gone on. A bit strange… we carried on looking… and then we had an idea: Christmas lights. No, not using them instead of the LED rings, that’s just silly! The principle. If one breaks, the others don’t work. Connection in series. And the wine shelf works similarly to that. If one ring is broken, the following ones don’t work. In our case No. 1 was broken, No. 5 too, and also No. 8, 9 & 13. After we found that out we put the platforms with defective LED rings to the end of the row, and were actually quite happy to have a working, though slightly crippled, Wine Shelf. Then we closed everything and tried it again. Only the top row lit up this time… To keep it short, 9 out of 16 were dead. Not so good. But that’s why we call it a prototype. The only thing we could do was to rearrange the platforms to make it look as if everything was fine, and cheat a bit while doing the demo. Nobody noticed. At this point we would like to apologise to everybody whom we led to believe they saw a fully functional Smart Wine Shelf. We’re sorry and know it’s not right to fib. But it really was only a problem with LEDs and it does usually work. A big THANK YOU to Andy for helping us with the repairs.

Apart from all that trouble, went really well for us. We made some nice contacts, got cool ideas for new prototypes, and also some suggestions on how to improve some of our current ones (like the Wine Shelf). That’s why we go to these events.

Oh, and regarding the emails mentioned above… Sven is just on his way to Montreal to present the Wine Shelf. Good luck, mate!


8 Kudos
facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Connecting to multiple BLE devices

In the last post, I mentioned that we’re working on BLE and intend to connect “things” in the retail space wirelessly. I promised to post some example code how this can be done. I’m again at the airport and I got a few spare minutes, so let me post this right away. Let’s begin with the LightBlue Bean code, which is written in the Arduino programming language and put onto the Lightblue Beans using the Arduino IDE:

 Sending Data from the Bean(s)

As each LightBlue Bean needs to be unique for our system, we give each Bean a unique ID. This is parameter is set in the first line using the id parameter. The setup method picks that value up and uses it to give the Bean a unique name. In addition, the id is also used as part of the TileData struct – that’s the data that we send out via BLE. To be able to read that data, it is important to know the length in bytes for each of the parameters of the struct – which is in our case 2 bytes each.

In the loop method, the interesting parts happen. Each time the loop() is called, the counter is increased and the id of the Bean is being put into a struct of TileData. We then “set” that data using the setScratchData method of the Bean object.

From that point on, we have a system that is able to transmit data over BLE. It uses the built-in Bean Scratch characteristics to set the current data. These characteristics allow notifications, so a connected system can get updates easily. We’ll take a look at that next.

Receiving Data using Noble on Mac/Linux

To receive the data, I am currently using my Mac laptop as it has decent BLE hardware built in and excellent support for node.js. Later on, I plan to switch to a Raspberry PI, which I’ve confirmed the basic operation is working.

Here’s the code, we’ll then step through it:


Once you’ve digged through, it is really not a lot of code at all. Plus, once you understand the basics of BLE, you’ll realize how simple it is.

Above code will tell the noble js library (BLE library) to start scanning, but limit our scan to devices that report having the service UUID a495ff10c5b14b44b5121370f02d74de. This happens to be the LightBlue Bean Scratch Service, which is what we are looking for. Whenever such a device is found, the discover function is called back.

In discover, we check the Bean’s name one more time. We check that it adheres to our Bean naming convention (see Arduino code) and then start connecting to it.

Connect will connect to the device up to a certain number of Beans have been connected to. Right now, the limit is set to 4 but more are possible. At this point, the discovering phase will end and no more beans are searched for. We also save the peripheral objects to an internal map that we will use for a correct disconnect later on. This disconnect is handled in exitHandler, which is registered once.

We’re now setting up the notifications, which begines with discovering the devices services, finding the right one, then looking for the characteristic we’re interested in.

We’re checking for the right service UUID and then begin to discover characteristics. We know there are always 4 characteristics in the Scratch service and simple pass on the first characteristic object (characteristics[0]) to the requestNotify method.

Here, two things are happening. First, we turn on notifications. This means we register to get updates when values change for this characteristic. Second, we’ve bound a read handler for updates. So whenever “data” is popping out of our characteristic updates, we get a callback.

Now it becomes essential to know what data was sent. We know that we send a struct, containing two integers – two bytes each. So we read two bytes and combine them back into the integer value using the left-shift operation above.

Finally, when you presse CTRL-C the SIGINT callback will be called and we are disconnecting from all known devices:

We need to give them a bit of time, so we wait 2 seconds after we triggered the disconnect and then finally shut down the program.

This is bloody prototyping code and I am really looking for feedback. Tweet me or leave comments! Next up I’ll share some more info on the next prototype and maybe I’ll have some early designs ready.

6 Kudos
facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

Connecting Things – via BLE (Bluetooth Low Energy)

We’ve finally put live our new blog, which unites the techblog and the labs blog into one. We’re insanely happy we’ve figured out how to use categories :-) Please let us know if you like the new blog!

So far, we’ve connected our “things” like the wine shelf in a fairly traditional way: cables from the sensors to an arduino or similar, then via another USB cable to a Raspberry PI and finally the PI was connected via an ethernet cable to the internet. When it comes to the wine shelf, that is a valid approach. But now we are exploring “things” in the retail environment, that we want to freely place in the shelf space. This means, we need to have a wireless technology in the equation. While we’ll most likely still use wires from one central hub, the “things” can now be freely be placed in a 10-20m radius. We’ve done quite some research, tried out NRF24 or even simpler wireless transmitters and it seems we’re choosing BLE in the end. While there are many other wireless prototcols out there, we believe BLE is both accessible to hackers like us and provides a robust protocol to get the job done (for example, it uses frequency hopping to make all data transmission more robust).

To begin a series about BLE, let me start with introducing the very basics of BLE. For a more detailed intro, I can recommend this book, which helped me a lot. First of all, it is a completely different protocol, not based on the former versions of Bluetooth and really only shares the name for marketing purposes (not sure if that is such a good thing though…). BLE is low energy – you’ve seen or at least heard of iBeacons, which use BLE advertisements (sent out around every second) and these last for several years with a coin-cell battery.

Every BLE peripheral, will host a number of ‘services’, identified via a UUID. Within these services, you can discover one or many ‘characteristics’, which hold the data you want to read or can be used as containers to put data in (which can then be retrieved by the peripheral). Some characteristics will also support notifications, which means your central BLE device, like maybe your phone or your PC, can get regular updates whenever the data changes (but consume little power during the phases of sleep).

When it comes to connecting your thing, let’s say an arduino or similar, you got some choices. The fun part is that they all roughly work the same. Just like with Serial on Arduino, you will find RX and TX characteristics that you can read from or write to.  So you simply write your bytes and read bytes just like over Serial. Some of the boards we have tested also come with some higher-level protocols built in and then can be elegantly used via an Android or iOS API.

These are the choices we’ve taken a look at – the last one is currently my favorite:

The LightBlue Bean is currently my clear favorite, as it provides a really simple API, hooks into Arduino for easy programming plus works on a 3V coin battery. No tinkering with LiPo batteries or other power supply, it’s a pretty neat package. It also comes with an integrated accelerometer and an RGB led. It has just a few digital and analog pins, but it’s totally enough for connecting a simple sensor to an hub – and yes, all the important protocols liek I2C or SPI are supported of course.


To end this quick teaser, take a look at the picture above. You’ll see 4 lightblue beans, all connected to my mac at the same time. The beans increment an internal counter and notify the connected mac at random intervals. The next couple of days we’ll check how many we can connect to at the same time – sometimes the connection and disconnect behavior can be a bit tedious. So stay tuned for more about BLE, including code snippets for both the Bean and the client code in Node.js.



6 Kudos
facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

BREAKING NEWS: The French like wine!

We did expect the reactions towards our Smart Wine Shelf to be a bit different in France, but what we experienced during the past week at “E-Commerce Paris” was quite a surprise. Actually we were a bit worried that in a country with such a traditional wine culture like France, we would face a very sceptical audience. Not only because our “red wine” doesn’t look like red wine…that was noticed and commented on many times… but mainly because we feared, the idea of being advised by a machine which wine to buy would not be appreciated. But far from it! In fact, the amount of positive feedback was overwhelming! We caught the attention of some retailers specialised in wine, and this really made our day: People with a vast knowledge of wine like our shelf! And so did the press, so if you understand some French you should read this article on JDN. “Hybris a ainsi fait venir les ingénieurs de ses Hybris Labs munichois, qui exposent un prototype pour rayons de supermarché. (…)”.


Besides the Smart Wine Shelf we also demonstrated our Beacon-Prototype and Google Glass. The curiosity surrounding Glass still is very present and most people are fascinated by it. Judged by the expressions on their faces when trying Glass, they seem to believe they’re wearing a piece of science fiction. We’re still not sure ourselves what the future of Google Glass will look like. There certainly are some cool things you can do with it. But we must admit that we had some problems with Glass this time. The device itself got extremely hot in a very short period of time. We had to stop all applications after every time we did a demonstration so it could cool down, and were constantly recharging it. But hey, it’s a prototype. These are the things we want to find out.


A big THANK YOU to our French colleagues for making us feel so welcome and especially for helping us to cross the language barrier a couple of times! We tried to give a demo of the wine shelf in French…once…and failed miserably. In order to keep the embarrassment to a minimum we cried for help and were promptly saved. Merci!
At this point I’d like to show a lovely photo of the Eiffel Tower at night, but we were told that it is not allowed to publish such photos due to copyright reasons. The artist who installed the lighting could sue us. So here’s the Louvre and Notre Dame instead…


5 Kudos
facebooktwittergoogle_plusredditpinterestlinkedinmailby feather

O’zapft is!

Finally the waiting was over! After all the preparation we could at last celebrate the #OktoberfestOfThings!


The day started off with some pre-work talks held at IXDS in Munich, a location that with its deliberate hint of unfinishedness seemed like just the right surrounding for creative thinking. First to speak was Thomas Amberg (@tamberg), one of the initiators of the #OktoberfestOfThings. He said something that really made us think, another definition for IoT that is actually quite philosophical: “….IoT is a connection to reality.” What are your thoughts on that?

Next on stage were Christian and Sven (Sven showed some leg in a traditional Bavarian outfit). They gave insights into the latest hybris labs IoT-prototypes, and of course presented our #OktoberfestOfThings beer table.

Martin Geck, founder of MakeBox, explained how he uses 3D printing and laser cutting to train people in agile product development methods, such as Scrum, which help to improve collaboration within a team.

To round everything off we had a little chat with all of the speakers. You’ll see a video of that here very soon.


After all the talking in the morning it was time for some action. Laser cutting + 3D printing + hacking = FabLab Munich. The plan was to build a couple of gadgets with which you can connect beer to the Internet. Some of you might now start to think that this is nonsense, a waste of time, and that we’re just playing around instead of doing something “sensible”. Well the truth is, playing is the best way to learn. Fact. By experimenting with all kinds of different technologies in a playful manner we find out more and more about the possibilities that arise with IoT. Further more, we vastly profit from the exchange of thoughts and ideas within the IoT community, and are proud to be part of this joint learning process.


The next day things got serious. It was time to test the prototypes in the field. Are you curious to see how beer eventually got connected to the Internet? …#OktoberfestOfThings.

2 Kudos
facebooktwittergoogle_plusredditpinterestlinkedinmailby feather