About
miniJen
The Jenkins multi-architecture CPU instance
What is that contraption?
Nope, it’s not a robot of some sort, it won’t move by itself. It’s not Cerebro from Professor Xavier; no, it can’t fly either. What you’re looking at is a Jenkins “cluster” or “instance”. It is composed of a controller (the “brain” or conductor) and three agents (the workers or musicians if we continue a little further with the metaphor).
During FOSDEM, we displayed the aarch64
Jenkins controller dashboard on an another computer screen using the same Wi-Fi network.
This Jenkins instance was featured in the Hackaday blog post about FOSDEM.
These boards are not microcontrollers, they are miniature computers running GNU/Linux, like the infamous Raspberry Pi.
Hardware
The controller runs on a NanoPi R5S, sold as a router (thus the three RJ45 connectors).
It’s a 4GB aarch64
(or armv8
) 4 cores running friendlyCore, a distribution from the manufacturer (friendlyElec) on a 5.10.x kernel.
The smallest board is a 4 cores arm32
agent with 512MB of RAM running Armbian with a 5.10.x kernel too.
It’s also a board coming from the friendlyElec manufacturer, the NanoPi Duo2.
The pink board next to the arm32
board is a RISC-V
board running Armbian with just 1 core, 1GB of RAM and a 6.1.x kernel.
It’s a MangoPi MQ-Pro from MangoPi, one of the first RISC-V
boards available.
The latest board just next to the RISC-V
board with a slightly different shade of pink is an aarch64
board also from MangoPi.
It is a 4 cores agent with 1GB of RAM running a fork of Armbian with kernel 5.16.x. It’s a MangoPi MQ-Quad.
Don’t try to fool me, there are no cables between the boards!
The boards all have Wi-Fi, and they are all connected to the same Wi-Fi network, provided by a router or my phone, depending on the location.
You can spot their small Wi-Fi antennas hanging in the first pic, except for the router which has no integrated Wi-Fi (it uses a USB Wi-Fi dongle you can see in the pic).
One day, the R5S controller will also be a router for miniJen, but for now, it’s just a Jenkins controller.
How come the controller can contact and control the agents? We’re not using IP addresses, but hostnames ending in .local
, thanks to the Avahi daemon.
What is that big box with cables?
These boards are powered thanks to a Pine64 power supply. Most of the time, you can see they don’t use much current.
3D printed parts
The frame looks strange, I know. I wanted to use a torus because it’s a cool-looking shape, and tentacles because it’s even more cool-looking than a torus.
It has been designed thanks to openSCAD, an … open-source computer-aided design tool & language (yes, there is such a thing as 3D Design as code), and printed at home on a printer running an open-source firmware, Marlin.
Should you want to replicate this at home, you can find the source code on my GitHub.
Genesis and near future
I have made a few live streams during the build of miniJen, and should do some more for the upcoming modifications. I also have a few videos on the same channel about Jenkins and other boards, so don’t hesitate to have a look.