7 ms·
Hi, I'm a kernel dev on the Revolution Pi team. AMA.
by l1k 7y ago
Hi, I'm a kernel dev on the Revolution Pi team. AMA.
- cabalamat 7y agoHow is it intended that these be programmed? Python? C? Ladder logic? Something else? Also what is the mapping between your various IO modules and how they are named in the program code?
- l1k 7y agoThere's a kernel module called piControl (source code is on GitHub) which periodically polls the I/O modules. The values written to the outputs are taken from a memory area called the "process image". Values read from inputs are stored in that same memory area. User space accesses the memory area via regular open/read/write/close system calls. Plus there's a bunch of ioctls to perform special actions such as firmware updates on the I/O modules. You may use whatever language you prefer. There's a Python module called RevPiModIO, authored by a member of the Revolution Pi community, Sven Sager: https://revpimodio.org/en/homepage/ https://revpimodio.org/en/homepage/ A NodeRED module was contributed by another customer, Erminas: https://flows.nodered.org/node/node-red-contrib-revpi-nodes https://flows.nodered.org/node/node-red-contrib-revpi-nodes If you're into Structured Text, there's a software called logi.RTS included in our image (needs a license for unlimited use, 1 hour is free).
- riltim 7y agoWhat is the purpose of the Ethernet/IP and Modbus TCP I/O Cards? You can already access E/IP and Modbus TCP from Node-red or python with a standard Raspberry Pi.
- l1k 7y agoTrue. However these modular gateways are ODVA-certified and have gone through all the mandatory testing (surge/burst, shaker, climate chamber), so they might be the preferred solution in environments where certified devices are required, be it only for compliance reasons.
- cfstras 7y agoThe spec limits ambient temperature to -44–55°C. As the low temperate range of the regular Pis was the major limiting factor for use in industrial applications (0–50), is there some module that goes further? Think of devices deployed in a street cabinet in summer heat f.ex., those have to endure much higher temps.
- l1k 7y agoWe use the Raspberry Pi Compute Module, not the regular Raspberry Pi. The Compute Module is basically a SO-DIMM slot with the BCM2835 or BCM2837 SoC plus eMMC and LP-DDR2 RAM. The Compute Module is spec'ed at -25 to 80°C, versus 0 to 50°C on the regular Raspberry Pi. We did extensive testing in the climate chamber and felt that going down to -40°C is safe. The BCM2837 normally runs at 1200 MHz and the firmware starts downclocking when the core temperature exceeds 80°C. Once it reaches 85°C, the frequency is reduced to 600 MHz. It will be further reduced to 300 MHz when going beyond that. In our testing we found that the CPU is eventually halted when it becomes too hot, but can be rebooted without any issues once it has cooled down. If you know that ambient temperature regularly exceeds 55°C, it may be necessary to install cooling in the cabinet together with the RevPi. Since you're mentioning street cabinets, our customer Nicolai Buchwitz of Enda KG regularly installs our products in street cabinets for monitoring of hydrogen fuelling stations: https://twitter.com/NicolaiBuchwitz/status/1112727820042727424 https://twitter.com/NicolaiBuchwitz/status/11127278200427274... https://youtu.be/4iaInDiEiQg?t=338 https://youtu.be/4iaInDiEiQg?t=338
- cfstras 7y agoAwesome, thanks for the info! Does the hardware watchdog work when halted because of over-temp?
- l1k 7y agoYou mean the watchdog integrated into the BCM2835? That's a good question, we haven't tested that yet, but I've added it to the todo list now. One particular product in the Revolution Pi lineup called "Connect" has an additional hardware watchdog which is also capable of resetting attached devices via a relay. That one works even when the BCM2835 has locked up completely. However, the CPU needs to have cooled down a bit to reboot successfully.
- aequitas 7y agoI've been searching for RPi's in this formfactor and with protected I/O for a while. Besides your product I found some others but all suffer from the same drawback (for me at least), which is the price. I can understand there is some extra cost involved in the certification of these devices, eMMC and such. Most industry customers will probably find the price resonable even. But for me as hobbyist I can't justify it to myself if I could buy a handful of 'normal' pi's instead (solving the DIN mounting problem using zip ties). Do you think your company might develop a non-industrial line for hobbyists which could bring the price more into the range of sub $100?
- Accujack 7y agoI could see them potentially selling just the bare motherboard to hobbyists in non certified form. However, they might not since that's the main product, along with the I/O expansion modules and the software that drives all of this. To make the motherboard useful that software would probably be needed. $360 is cheap if this system does what is claimed. Sub $100 is probably not realistic given what is involved with being truly industrial grade - the level of protection from the environment and reliability alone would require raising the price beyond that. There's a big difference between an "Industrial Pi Case with a DIN mount" and a certified Industrial Pi PLC. This seems to be the latter.
- l1k 7y agoI'm just a kernel dev, not a product manager, but I think a sub $100 product is very unlikely I'm afraid. There are volume discounts though for customers ordering large quantities. Otherwise Accujack's answer is spot on.
- Accujack 7y agoJust out of curiousity, did you look at the real-time HAL included with LinuxCNC at all? There have been attempts to make that code into a dedicated PLC system now and again. What real time extensions did you use with the Raspbian kernel?
- l1k 7y agoWe use the PREEMPT_RT patch set available at: https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git/ https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-sta... That patch set is slowly being upstreamed into the mainline kernel. We regularly encounter incompatibilities with drivers for the Raspberry Pi SoC and upstream our fixes and feature work as well, e.g.: https://git.kernel.org/linus/f7da7782aba9 https://git.kernel.org/linus/f7da7782aba9 https://git.kernel.org/linus/3c7b30f704b6 https://git.kernel.org/linus/3c7b30f704b6 I must admit I wasn't aware of LinuxCNC, thanks for the pointer. This would seem to be a really nice use case for Revolution Pi.
- Accujack 7y agoNifty. LinuxCNC runs with various RT patches, but they've more or less standardized on PREEMPT_RT at this point. Seems like a good choice.
- LeifCarrotson 7y agoHi, I'm a controls engineer at a small industrial automation integrator and will be picking one of these up for playing with. I've placed a couple Raspberry Pis running the DietPi kernel and dozens of OnLogic Windows fanless PCs in control panels, and if these do what they say on the box I think this will be highly competitive! Two comments/suggestions: 1. I'd prefer a DVI-D connector (or even VGA) over the Micro-HDMI connector if I wanted to use this with a display. I've found that the bulkier, screw-locking DVI port is much less vulnerable to accidental disconnection or damage than HDMI (been burned a few times there, two "machine won't start" panic calls that turned out to be loose HDMI cables, one broken cable end, and one broken video adapter from ham-fisted maintenace personnel pulling on a stiff HDMI cable). Full-size DisplayPort has a latch, but even mini-Displayport feels sturdier than micro-HDMI without taking up much more space. I recognize that HDMI supports audio while DVI does not, but if my machine is playing audio it's likely just a fault klaxon from the stacklight rather than speakers or a TV. 2. A killer feature of, for example, Banner's XS26 safety controller (Don't panic, I don't intend to try to use your product as a safety controller, LOL) is their configuration storage device. If the device boots into factory defaults (either new from the manufacturer or after some reset image is loaded) and there's an image on the attached storage device, it will copy that stored configuration into memory and reboot. This means that my customer can keep a spare part on the shelf (for any number of machines!) and if one burns out the replacement doesn't involve a laptop, a rookie technician can replace it with nothing but a screwdriver. Bury a USB-A port (or, less rugged, a uSD socket, or less universal, a USB-micro drive port) on the bottom or even the back by the DIN-rail attachment and that will do a lot towards making this "scary Linux thing" in a potential customer's panel something they can almost treat as an off-the-shelf part like any other. (Note: I've never had an XS26 fail on me, and expect that your extended-temp eMMC is more trustworthy than most Flash drives. This is more about having a guaranteed backup and nontechnical replacement procedure than something I expect to do frequently.)
- l1k 7y agoThanks for the awesome suggestions. The video port coming out of the Raspberry Pi SoC is HDMI, hence the choice of the connector. We've put the connector on the top of all of our products to lessen the chances of the cable accidentally coming lose. The top and bottom of the case is primarily used for vents. We'd have to make them smaller to fit a VGA or DVI connector there and that might negatively impact heat dissipation. That said, I agree that HDMI is not as rugged. A particular problem we've encountered are cheap cables which connect the shield to ground. As for flashing the products, there's a micro USB port on the front plate which allows flashing the eMMC from an attached laptop or PC. It's also possible to mount the eMMC to retrieve logfiles from the machine that way. When the machine is booted, it senses whether bus power is provided on the micro USB port. If so, the USB port on the Raspberry Pi SoC is switched to gadget mode instead of host mode. You then need to run a little program called rpiboot on the attached laptop which downloads a firmware to the Raspberry Pi to turn it into a USB Mass Storage Device. Afterwards the eMMC pops up on the attached laptop as an external drive: https://www.raspberrypi.org/documentation/hardware/computemodule/cm-emmc-flashing.md https://www.raspberrypi.org/documentation/hardware/computemo... It would in principle be possible to build small gadgets which users plug into the micro USB port and which automatically flash the attached Raspberry Pi without the need for a laptop. Another possibility would be to split the eMMC into multiple partitions, one containing the regular OS and the other to store an update image. The system would initially boot into a RAM disk, determine whether an update image is present, extract that over the regular OS partition and reboot. The update image could be deployed via ssh.
- data2you 7y agoIMHO what is needed: - redundancy solution for both between the units and in the redundant I/O paths (Google Byzantine Generals problem) - separate diagnostics interface like in Dell (iDRAC) or HP (iLO) servers have. Control data path should not be used for diagnostics data. - Clock sync between the units using common GPS master clock - Network boot with possibility to diagnose it thru serial console. - Profinet support - Lisp interface for internal system diagnostics using AI.