Argon One Mini Computer: first build

Father Christmas delivered something early this year courtesy of international mail: the Argon One Mini Computer from Argon40. The Argon One is essentially an aluminium case (with a plastic bottom) for the Raspberry Pi, however words like "essentially" do a disservice to what is, in reality, a very clever piece of all-in-one Pi-tech.

ao_sans_gpio_cover

An aside: I do so love the term "mini computer" as each time I read this I see "minicomputer" which, as this article on Wikipedia shows, were anything but "mini" in a modern context. Back in the 1960s - 1970s they definitely were "mini" compared to mainframes and it just shows how far we have come in electronics.

The Argon One delivers a number of enhancements to the desktop Pi experience. These include:

  • all ports are relocated to the back of the case (remember the days when the Pi had spaghetti ports spewing from three sides?);
  • a power button (controlled via script);
  • a fan (controlled via script);
  • colour-coded and numbered GPIO pins;
  • easy access to the GPIO pins via a magnetic cover;
  • a large metal heat sink that is part of the all-in-one top cover;
  • generous ventilation holes including a neat ventilation duct above the fan and under the removable GPIO cover.
The Argon One also features a couple of IR headers on the daughterboard but these are currently unsupported. From a reply to a KS question on this topic:

"The IR is a future feature we are working on. But you can trace the pcb and the gpio’s it connects if you want to try playing around with it. But it is not an official feature of this version. We don’t support it at the moment but you are always open to play with it."

I like this: it's an all in one computer that comes with something extra to play with. What's not to like here?!

ao_ir

Building the Argon One was relatively straightforward after I first dismantled it. Well, what's the point of receiving a new gadget unless one deconstructs it entirely? The Argon One comes part-assembled with the main daughterboard screwed into the case. Unscrewing took minutes and flipping the board over revealed:

ao_daughterboard

You can clearly see the colour-coded GPIO pins that poke up through the top of the case, along with the reverse side of the header (on the left) that the Pi connects to at a 90 degree angle to the pins visible post-assembly. Note also the fan and my first mistake.

When I received the Argon One I noticed that the two cables connecting the fan were only pushed into one of the plastic retainers (see left of fan in above image). Thinking this to be an assembly error I pushed them back in. Upon assembly I realised my error: the cables now go straight across the closest screw hole or cover part of the fan. Oops. Cables de-retained back to original state.

After re-assembling back to the starting point (the above board is pre-attached on delivery) I found the instructions very easy to follow for the most part, albeit did get myself confused over the thermal pads. There are two of them (one thick, one thin) and the instructions do not make it clear which to use. In the end I chose to sandwich both together figuring that a really good connection is best. It could be that one is for the Raspberry Pi 3 B and the other the 3 B+ as the CPUs are slightly different heights. That would make sense but too late to turn back now (and no damage done in either case). I trimmed the excess from both pads in the end and this seems to squish fine.

ao_thermalpads

Talking of instructions it is excellent to see a modern gadget coming out of the far east that has properly written English instructions. They are clear, precise and provide genuinely useful information. Well done Argon 40 for providing such a good instruction booklet. This details hardware assembly, software installation (for the power button and fan control features) and instructions on using the power button. My only slight complaint here is that the instructions indicate a difference between a soft and hard ("forced") shutdown of but a mere two seconds with no indication of how or if this can be changed. Read on for my less-than-successful attempt at configuring this.

ao_manual

Assembling the Argon One involves attaching a smaller daughterboard to the Pi via HDMI and 3.5mm jack before plugging that into the larger daughterboard via the GPIO. The whole unit is then fixed in place with various screws.

ao_hdmi_daughterboard

ao_assembled_boards

Finally, with the base screwed in and SD card re-inserted (important: REMOVE the SD card BEFORE attaching the bottom of the case to avoid damage to either) it's ready to boot.

ao_argon_one

If you compare the first photo in this article to the one above you will notice that the GPIO pins are covered in the latter. This is achieved via a metallic plate (that doubles as an exhaust port for the fan) that snaps easily into place. This enables easy access to GPIO when needed, and clean lines with no exposed pins when not.

Upon first boot it's like, well it's a Pi, so nothing different really. I had thought that without light pipes there would be no way to see the Pi's LEDs on boot but I was pleasantly surprised that they are visible through the black plastic base to the front of the Argon One. To be honest they look more professional (somehow) like this, and I think that sums up the Argon One: this case makes the Pi a professional desktop computer.

Installing the Argon One software is a breeze via the instructions in the manual:

curl https://download.argon40.com/argon1.sh | bash

Piping an unknown command to BASH is potentially dangerous as you are running someone else's non-moderated code straight against your Pi. Instead I omitted the pipe to BASH part and scrolled through the code. A cursory look shows it to be fine to my untrained eyes. With that done I ran as instructed and very quickly had fan configuration and power control (via the Power button) set up. A quick double-tap of the Power button confirms the reboot function works as expected; marvellous!

One slight confusion for me is that the instructions describe a soft shutdown at 3-5s press of the Power button and forced at >+5s. In my mind a two second window was two narrow and I hope(d) to be able to change this. Looking in /usr/bin/argononed.py I could not see how the forced >=5s shutdown is triggered and can only assume that this is hardware

if pulsetime >=2 and pulsetime <=3:
   os.system("reboot")
elif pulsetime >=4 and pulsetime <=5:
   os.system("shutdown now -h")

To check if my assumption was correct I disabled the software service via:

systemctl stop argononed.service

I double-pressed power and the reboot did not kick in, confirming the service is down. I then held the power switch down for over five seconds. It did stop a few seconds later. I have posted a comment asking for clarification here.


The Argon One is fantastic. It is properly sturdy with the aluminium enclosure being a fine choice and the ventilation with fan should help the Pi 3 B+. This is one of the reasons I have swapped my Pi 3 B+ over from the Official Case to the Argon One: I was finding he Pi running rather hot after several weeks of constantly being on despite having heat syncs attached. I am hoping this will not be an issue with the Argon One with the software-controllable fan.


Before signing off this post it's worth noting a couple of issues with the Argon One:

  • I have tried plugging in a HAT and it won't fit as the pins are flush with the case. An extended header or use of a T-Cobbler in this scenario would resolve this. That said, I do not see this as a disadvantage to the intended use case of desktop-esque "mini computer" a la Mac Mini or similar.
  • In my personal opinion the placement of the 3.5mm jack and micro USB power supply sockets is a little odd. With the 3.5mm jack below the power connector it means that any audio lead plugged in will likely gently tug against the micro USB cable, which is not ideal. I do not see there will be a problem, just that in a perfect world nothing should be tugging on a power lead. I do understand why the Argon One is arranged in this way as the advantage is that the power button is easy to access at the top and both the 3.5mm and HDMI are connected via a single plug-in daughterboard.
If the above two items are not issues for you then the Argon One comes highly recommended based on my experience of building it.

Lastly, I would like to say something about the great way in which this Kickstarter has been run. From start to finish the Argon40 team have kept their backers informed, and when a slight delay was necessary due to re-working fan control (requested by the KS backers) this was communicated without delay. The net result is a KS delivered as expected without notable delays from a team that has put the effort in to run their KS campaign properly. Nicely done Argon40. You are the example of how KS campaigns should be run.
Comments

The MagPi issue 7 is out

The MagPi issue 7 has been released. What’s more I have two articles published in this issue: an interview with Mike Thompson who created Raspbian, and my first ever published computer program! I took over The Python Pit this month to demonstrate how one can implement command line arguments to make configuring an application that is about to be run easier than having to manually edit the program code.

I am especially pleased with the program I wrote as it generates graphical output (see image below) that I used to draw by hand when I was a child. Back then I don’t even think it occurred to me to write a program to do this!

lineimage

The program supports a number of command line arguments to change the output. Run:
line_generator.py -h
to see all of the options.

For your viewing pleasure, here’s the output of the above:

usage: line_generator_edit.py [-h] [-s SCALE] [-t STEP] [-r {y,n}]

Render shape

optional arguments:
-h, --help show this help message and exit
-s SCALE Render size, default=2, 200x200px)
-t STEP Step value (default=5): lower the value for denser lines
-r {y,n} Render line by line (slower) (y) or only display finished object
(faster) (n)? (default=y)


Comments