welcome to pi3g

your european partner for raspberry pi & machine learning

We are a Raspberry Pi approved industrial reseller, for Germany, Austria and Switzerland. With our strong technical background we are a solid choice as your partner for anything Raspberry Pi related in Germany, Europe and beyond.

Starting in 2020 we have also become one of Google's select worldwide partners for distribution of their Coral.AI lineup. We believe artificial intelligence / machine learning is the way forward in the future.

Get in touch with us today, to see how your business can benefit from single board computing and machine learning on the edge - go beyond and way ahead of your competition.

the story behind pi3g

Back in 2012 the story of Maximilian and the Raspberry Pi started. He was excited when he got his first Pi and also saw the great potential for further development in it.
Then PiCockpit was born to make using and managing the Pi easier and more accessible for everyone.
Maximilian has always been interested in computers and believed that they are a lever to improve everything in the world - for example in medicine.
Over the years, Maximilian's work has grown and new fields of expertise have emerged...

Seperator

In our blog you can expect blog posts about technology and business topics, of course about the Raspberry Pi, but also a wide variety of topics related to Industrie 4.0, IoT, and machine learning - for example about the popular MQTT protocol, Python and Linux embedded development, and much more. Blog entries are not scheduled and not in particular order - the topics are an eclectic mix of what comes up in real life of a company engaged in machine learning & Raspberry Pi embedded adventures.

We are happy to write about special topics that are not so well-documented elsewhere.
If you have any suggestions, we are happy to discuss current topics with you and are always ready to brainstorm workable solutions with you.

Please feel free to contact us 🙂

Maximimum length of credentials (username, password, clientid) in MQTT v3.1.1

By Maximilian Batz | 2019-06-09

The CONNECT packetThe MQTT CONNECT Control packet always contains a payload. It is the first packet, which the client must send to the server after the connection is established.It can only be sent once by the client, if a second CONNECT packet is sent, the server (broker) must process it as a protocol violation and…

read more

Debugging VerneMQ connection / authentication problems for dual authentication with webhooks and vmq_diversity

By Maximilian Batz | 2019-06-04

TL;DR https://github.com/vernemq/vernemq/blob/master/apps/vmq_diversity/src/vmq_diversity_plugin.erl includes a statement which will block authentication / authorization through any other channels if your Lua script returns “false”: will lead to: instead of trying other plugins, as you might have assumed! In order to avoid this problem, simply do not return anything from your Lua script, if you do not want to…

read more

MQTT Topic Tree Design best practices, tips & examples

By Maximilian Batz | 2019-05-29

Generic MQTT Background With MQTT the sender and receiver are not aware of each other – the broker handles the messaging. This allows the messages to be separated in space, time, and intensity. The sender can send at the speed it wants, and the time it wants. The receiver can pick up the messages at…

read more

VerneMQ: econnrefused & Webhook example

By Maximilian Batz | 2019-05-20

Webhooks activate webhooks like this in your vernemq.conf.local (.local when running on docker, so that settings at bottom of the file will persist): plugins.vmq_webhooks = on vmq_webhooks.js_auth_on_register.hook = auth_on_register vmq_webhooks.js_auth_on_register.endpoint = http://container_picockpit:1200/example/path Note that if your webhook is not accessible (econnrefused), the db based authentication will also fail … ! If you get errors like…

read more
Seperator