we bought a netPI CORE 3 and configured it.
We defined username and password for portainer.io and everthing went well.
But 2 days later we tried to authentificate in portainer.io and received message "Invalid Credentials".
How can we reset portainer password?
I mounted (soldered) a CSI camera connector on netPI CORE 3.
I am now ordering a camera to connect it to the connector for a test use.
I will then use a Raspbian OS to test the camera.
I would appreciate it if you have any comments for the above test.
Best regards,
the technical data of the NIOT-E-TPI51-EN-RE/NFLD state Bluetooth 4.2 support.
However, the RPi 3B with the same RF-Module BCM43438 only has 4.1 support.
Does the NIOT-E-TPI51-EN-RE/NFLD indeed has 4.2 support?
as you pleased me - here the new issue for the problems we got.
We have also Docker problems, with some containers on very new states of the new bought netPI's. Docker Hub Exports have "architecture": "amd64" in their JSON config and "io.balena.architecture": "armv7hf" - maybe that should be aarch64 or arm64? ( V1.2.2.0 )
Working Docker images have "architecture": "arm".
The from the netPI exported image is seen as an amd64 architecture from other tests on RPI3 and wont work well.
see 78f6ab1d8d9a237a63aa4f12452bdbce0250730523c3ec616d803382ac019aef.json - inside the netPI Node-RED's image.tar
I have the problem again, a fresh installed Hilscher netPI even with original card dies after a few days of running the Docker service and Docker does not start anymore. A reset via USB-Stick helps, but some crashes the Docker Service over time again with a lot of cgroup errors in the syslog as I sent to you, Armin.
Problem of amd64 is on - directly export from netPI (v1.2.2 Barcode end number 2 very new devices and images from docker as well)
I am using the netFIELD Connect gateway to communicate with a UART based external module, in order to do that I would like to change the default overlay files in a way that /dev/ttyAMA0 UART interface will be used by my application instead of being used for the bluetooth communication?
I do know how to perform this procedure on a standard RPI but is it possible on the netFIELD?
Posted by: Armin@netPI - January-7th-2021, 07:53 AM - Forum: Hardware
- No Replies
The netPI CPU supports a hardware watchdog. Once triggered by software it monitors in a time frame of 10 seconds if it was retrigger again else it resets the CPU and forces a reboot of the device.
This behaviour is good for monitoring your netPI software if it is running stable. For example the Docker daemon or simply said if a container is running.
All you need to do is to deploy a container that has the host device "/dev/watchdog" mapped. With the mapping the device gets accessible in the container.
Mapping alone does not start the watchdog. This needs to be initialized by software and if started periodically retriggered.
Here is a a simple script you should run in the background in your container that triggers the watchdog every 5 seconds
Code:
#!/bin/bash
while [ true ]; do
echo 1 > /dev/watchdog
sleep 5
done
But please keep in mind once the watchdog is triggered it is active and in case stop the container for any reason your device will reset.
To disable the watchdog use the embedded console function of netPIs Docker web UI that allows you to enter the container, kill the watchdog calling bash script process first and then call
Code:
echo 'V' > /dev/watchdog
This will deactivate the watchdog until it is retriggered again.
Deploy multiple interrelated containers at a time the Docker function "stacks" can be used. To use it on netPI open the Docker web GUI portainer.io and then click the menu item "Stacks" to the left.
Then click "+Add stack", enter a name of your stack like "mystack" and click into the "Web editor" windows in the middle and paste the following compose data to it
The example compose data above contains information about to deploy 3 containers at a time
InfluxDB database to store data in time series manner
Grafana graphical tool for visualizing InfluxDB
Node-RED IoT tool to write to influxdb for testing
Click "Deploy the stack" and patiently wait for netPI to load and start all 3 containers. This may take 10 minutes. The web interface will report a warning message at the end in a orange colored window. This message can be ignored.
Your container overview screen will look like
Continue to
access Node-RED over "http://<ip address>:1880"
install influxdb node-red nodes called "node-red-contrib-influxdb"using the Node-RED embedded manage palette function
import the small Node-RED test flow below to write to the database variable with "mytestdata" every second
Code:
[{"id":"f6f2187d.f17ca8","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"3cc11d24.ff01a2","type":"comment","z":"f6f2187d.f17ca8","name":"WARNING: please check you have started this container with a volume that is mounted to /data\\n otherwise any flow changes are lost when you redeploy or upgrade the container\\n (e.g. upgrade to a more recent node-red docker image).\\n If you are using named volumes you can ignore this warning.\\n Double click or see info side panel to learn how to start Node-RED in Docker to save your work","info":"\nTo start docker with a bind mount volume (-v option), for example:\n\n```\ndocker run -it -p 1880:1880 -v /home/user/node_red_data:/data --name mynodered nodered/node-red\n```\n\nwhere `/home/user/node_red_data` is a directory on your host machine where you want to store your flows.\n\nIf you do not do this then you can experiment and redploy flows, but if you restart or upgrade the container the flows will be disconnected and lost. \n\nThey will still exist in a hidden data volume, which can be recovered using standard docker techniques, but that is much more complex than just starting with a named volume as described above.","x":350,"y":80,"wires":[]},{"id":"dc05ff72.ee1dd","type":"influxdb out","z":"f6f2187d.f17ca8","influxdb":"583af9d1.9aae98","name":"","measurement":"mytestdata","precision":"","retentionPolicy":"","database":"database","precisionV18FluxV20":"ms","retentionPolicyV18Flux":"","org":"organisation","bucket":"bucket","x":510,"y":300,"wires":[]},{"id":"d9436c1e.e3ffc","type":"inject","z":"f6f2187d.f17ca8","name":"Write timestamp every second","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"1","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":250,"y":220,"wires":[["dc05ff72.ee1dd"]]},{"id":"583af9d1.9aae98","type":"influxdb","hostname":"influxdb","port":"8086","protocol":"http","database":"db0","name":"local Influx database","usetls":false,"tls":"","influxdbVersion":"1.x","url":"http://localhost:8086","rejectUnauthorized":true}]
Your Node-RED screen will look like this
To visualize the periodically written data
visit grafana web visualization over "http://<ip address>:3000"
Login with user "admin" and password "admin" the first time and specify a new password when requested.
click "add data source"
click "influxDB" logo
as name enter e.g. "myinfluxdb"
as URL specify "http://influxdb:8086" which is the name of the influx container
as auth check "basic auth" method
as basic auth user enter "admin" (as determined for influxdb container in compose data environment variable)
as basic auth password enter "12345678"(as determined as influxdb container password for user in compose data environment variable)
as database in InfluxDB Details enter "db0"(as determined as influxdb database name in compose data environment variable)
as user in InfluxDB Details enter "user" (as determined as user name in compose data environment variable)
as password in InfluxDB Details enter "12345678" (as determined for influx container as user password in compose data environment variable)
Your grafana screen will look like
As next
click "home"
click "New dashboard"
click the "graph" icon
click "Panel title/edit"
change Data source in the screen middle from "default" to "myinfluxdb"
click "FROM" ... "select measurement" and then select "mytestdata"
Your grafana screen will look like
click disk symbol in top menu the save the dashboard
Hilscher's Raspberry Pi based gateways like the netFIELD Connect feature NPIX extension modules. Are they really something new Hilscher introduced? A deep dive into this question shows ... no they are not and just a 1:1 copy of existing technology.
In short, the NPIX socket exposes Raspberry Pi CPU signals to an internal mPCIe connector from where they are forwarded acrossto a mounted NPIX module, not more - not less. And exactly these signals are those you find exposed on the 40 pin header of a standard Raspberry Pi the Pi Foundation introduced in year 2014 to the community. The organization calls their modules "HAT" - we call ours "NPIX". So "NPIX is old wine in new bottles".
The HAT market is huge. You can do so many things with so many signals as you can imagine with any HAT for any purpose. Sure the NPIX focus is more on the limited demands of industrial communications but they are as reliable. And the best of it: same signals, same documentations - all HAT programmers documents on the web apply for NPIX modules too.
A good example are GPIOs and using the NPIX of type NIOT-E-NPIX-4DI4DO. The Pi organization documented their programming well here. Others too like this wiki page shows . Yet others focus on programming GPIOs in a Linux shell or this one. You see it is just a matter of search to find the right place. For any programming language you will find help in the community.
Well documented too is programming the serial interface as provided by the NIOT-E-NPIX-RS232 or RS485 modules. Here is what the organization says. Or here how to program them in "C" or "C++" or in python.
With the simple equation HAT = NPIX in mind you will agree that there is need for Hilscher to document all this again. What we are documenting best are the NPIX modules used signals that you find here in the download section. Community programmers manuals and pinouts is all you need.
One remark in addition: when it comes to NPIX and programming under Docker peripherals like GPIOs or serial ports are not available in a container by default when deployed. You must specifically add a Linux device like "/dev/ttys0" or "/dev/gpio" to a container to use it. For more details about exposing devices read on here.
There were noticable requests for supporting OpenVPN on netPI since years. All solutions that have been discussed in this forum were more or less not satisfying from the configuration point of view.
With help of PiVPN project, NGINX web proxy, ligthtpd web server I started an OpenVPN project with the aim of being able to setup an OpenVPN server completely within a web browser session in just 5 minutes.
All you need next to a netPI is an Internet Router with "port forwarding" and "dynamic DNS" support and a DNS provider granting you a public DNS name for your router.
I have installed MySQL docker image version 5.7 from (https://hub.docker.com/r/mysql/mysql-server) on netPI RTE, I have created container . But container continuously restarting, in MySQL container logs showing (standard_init_linux.go:211: exec user process caused "exec format error") attached screenshot.