Project: RevPi Core & PiBridge

During the Nerves workshop in Berlin we got some fun hardware donations. Beat81 (gym company doing Elixir) brought some nice and useful RPi4 kits and Sonnen (power company doing Elixir) brought something more interesting though more challenging to wield. Thanks to both for contributing and giving us some weird things to do :smiley:

The Rev Pi Core. I link to that particular post because their current product information is all about their CM4-based boards. These are the older Raspberry Pi Compute Module boards that predate numbering, meaning, Pi1/Pi0 level performance. RevPi Core, the original.

But they are cool. DIN-rail-mounted. Modular and extensible via the PiBridge mechanism.

Frank made a fix for the Pi1 CM during the workshop and in spite of the eMMC flashing mechanism described in the manual not working he got Nerves into a device and then repeated the process a few times. So they run Nerves, no issue.

So in the hopes of getting something practical and fun out of the PiBridge connection mechanism, maybe Erlang clustering, I poked about a bit. Frank had warned me that it was probably a mess and a half considering it involved a custom kernel module. Thankfully the source is available.

I did some reading and digging today but could not find an example of their config.rsc JSON format. So I can’t get a full idea about how easy or hard it would be to configure this stuff. I’m sure I can get the kernel module up and running under Nerves unless it builds really weird. But it uses that config to figure out what devices you’ve set up. And that all uses the RS485 of the PiBridge. It would let me control the RevPi DIO modules we got with these boards. They seem kind of cool. I think they do both GPIO and PWM-style control and are isolated from the RevPi Core to avoid noise or nasty electrical surges on either end.

The PiBridge also includes 100Mbit Ethernet. But kind of weirdly. Driver indicates it will show up as a network interface but I don’t know if I could just treat it like one, pull out the strands and shove them in an RJ45 and put it into a switch. I doubt it. So not sure how useful it is. It is intended for use with a RevPi Gate so I believe I would need to make a device that pretends to be a Gate to actually get data moving across the thing and then I could do more.

The DIO modules don’t touch the Ethernet part of the PiBridge but the Core modules do. So I guess one could figure out a way to turn it into proper networking. But I didn’t get a sense of how hard that would be and figuring it out would take a fair bit of time I reckon.

If I install their Pictory application somewhere I should be able to generate one of the config files and get the Core and DIO modules chatting even under Nerves. Meaning I get some fancy GPIOs on my DIN rail :smiley:

I may well try that part if I get restless or have some odd downtime in the near term. There is something inherently satisfying about breaking the intended usage pattern and still making it go. The Core module works at least. If I had a Gate module and the appropriate industrial network set up there is no particular reason this wouldn’t work further under Nerves from what I can see.

All their mainline tools are in a Debian-derivative OS and a bunch of GUI/web tools. Quite click-ops. Seems fairly practical but not my jam :slight_smile:

If you want a straightforward Nerves box for industrial settings I would probably not pick the RevPi. It is built for their (afaik) open but quite custom tooling. In the Pi space some folks have spoken well of the Seeed Studio ReComputer R1000 but there is an infinity of variants out there and beyond the Pi you’ll find even more stuff.

2 Likes

@amclain what was the industrial box you you liked from recent explorations? I don’t remember the brand so can’t track it down.

The industrial box we added Nerves support for is the Compulab IOT-GATE-IMX8PLUS.

The Nerves system is here:

3 Likes

I love the RevPi form factor, and some of the accessories/extension modules available. Pity it isn’t a straight forward dev experience.

Thanks :slight_smile: