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 🙂

Dealing with NIL in JSON::Any in Crystal Lang

By Maximilian Batz | 2020-05-30

One of the challenges when developing with Crystal is that it is not as forgiving about data types as, say, Python or Ruby.nil will keep you occupied.The following error message:cast from Nil to String failed, at /usr/share/crystal/src/json/any.cr:220:5:220can be solved by:# cast to string, THEN check if it is nil if !(shopify_data[spid][“billing_address”][“address2”].as_s? == nil)     name =…

read more

Chromium exit code -5

By Maximilian Batz | 2020-05-19

While running Chromium with chromium-browser –display=:0 https://www.picockpit.com will allow you to start Chromium from an SSH connection (and it will output to the main display in the X Server), this will fail when you try to run it with subprocess.Popen in Python: “command”: [“chromium-browser”, “–display=:0”, “https://picockpit.com”] (this is part of the JSON format I have…

read more

secure command execution with Python: subprocess.Popen

By Maximilian Batz | 2020-05-15

Security is important for me while developing the picockpit-client. The following applies to Linux systems (but probably is applicable to all Unix like systems, including macOS) Python allows to run external commands using the subprocess module. import subprocess In the upcoming version of PiCockpit, users will be able to create their own buttons (simply editing…

read more

Stupid business mistakes #2: trying to cheat people (a new kind of spammer)

By Maximilian Batz | 2020-05-15

A bait and switch site, which was supposed to show me some information about Python code. “Click allow if you are not a bot”. Abusing the Captcha to display notifications (probably spam advertising?) is definitely a clever idea. (From the technical and machination point of view) Why does the person who is behind this not…

read more
Seperator