The Beelink AP35 – Another budget, Intel-based box

Preface — The machine referred to in this article ships with Windows 10 Home Edition.  I won’t be using that OS, but will be describing some of the hardware and giving a couple of tips on getting BSD/Linux running.  As far as I know, Windows 10 will run just fine, straight out of the box.

tl;dr  —  Despite the sales blurb, the AP35 is NOT fanless.

Update —  Currently selling for €99.99 on www.cdiscount.com (France).

Update July 13th 2019 — What appears to be a bare-bones version of the same J3355-based system for just €79.99 (~$89.60), also from Cdiscount.  Looks too good to be true, but today a 4GB/64GB version is being advertised at only €56.99 (about $64) at CDiscount  You might want to go through the small print with a magnifying-glass before pressing the “Buy Now” button.

Hint – FreeBSD  —  If you’re experiencing a freeze during boot immediately after the keyboard is detected, you’ll need to disable the UARTs from the boot command line (this is a frequent problem with newer hardware and not specific to the AP35).  Reboot the system and, when the FreeBSD boot menu appears, select option #3 (boot loader prompt).  This will drop you into a command line, with an “OK> ” prompt.  Enter these lines to disable the UARTs and restart the boot process:-


set hint.uart.0.disabled="1"
set hint.uart.1.disabled="1"
boot

When your installation has completed (and before rebooting the system), edit the /boot/device.hints (or the /boot/loader.conf.local file, if your system has it) and add the two “set hint…” lines (but -not- the “boot” line) to make this a permanent fix.


Although ESP8266Hints is obviously ESP8266-themed, one of the most popular pages on this blog is the one outlining my experiences with the Z83-II mini-PC, which I bought back at the end of 2016.  That machine, despite its diminutive size and “low-powered” Z8350 (quad-cored) CPU is still providing sterling service as a server on the house backbone network and was definitely a bargain (although I wasn’t too sure about that in the first few days following its arrival).  Based on that positive (in the end) experience, I decided to take the plunge once more and replace another machine which, although it still works, is getting long in the tooth and uses far too much electricity for the work it actually does (it’s also so old that many distributions are dropping support for that class of machine).

This time, the story didn’t start particularly well.  Gearbest not only mishandled my order, but also managed to leave their order database completely open to every unknown nasty and their dog at exactly the same time. [Hint:  If you have a Gearbest account, now would be a good time to change your password, if you haven’t already].

The Beelink AP35 wasn’t the first choice on my shopping list, nor was it the second.Makers label.  I ended up waiting more than a month for this unit to be pushed out of the warehouse door because Gearbest were unable to deliver either of the first two.  However, once it was marked as shipped, it made record time in transit and arrived on my doorstep just five days later.

My first impressions were, “Goodness, that’s small!”.  It is really tiny.  When I go back and look at the pictures in the sales blurb, it’s very obvious that they are composites and not a real photograph of the actual unit itself (look a little closer at the shot with the AP35 in front of two desktop monitors, for instance).AP35, pen and USB key for scale  The dimensions given in the description are accurate and looking at the close-up images of the unit itself you can gauge the overall size by comparing the USB and RJ45 ports to the width of the case (my photo of the unit, to the left, has a pen and a USB key for real-world scale).  You need to ignore all of the spurious size prompts in the composite, sales photos to get a realistic idea of the actual size.

Because the case is made entirely of plastic, it’s also extremely light.

In the “Main Features” section of the sales blurb (just above the specifications), the very first line is:-

“● Excellent heat dissipation performance, through the heat dissipation of the casing, achieving zero noise, giving you a quiet and comfortable environment”

Notice that I just mentioned that the casing is entirely plastic, which isn’t particularly known for its heat transfer characteristics.  Well, I can confirm that the “heat dissipation” and “zero noise” claims are complete and utter bollocks.  This system has a cooling fan strapped to the CPU heatsink.  It seems to run all of the time, but the speed is normally fairly low, increasing with higher CPU loads.  By the standards of something like a gaming PC, it is fairly quiet …but it is certainly not silent (even now, when it’s brand new).

CPU heatsink, showing fan

This may not be a big deal for many people, but I have to admit that I wouldn’t have bought this unit if I’d have known that it used a fan.

As you can see from the photo [click on it to see the full-size version], the heatsink and fan actually sit in the top of the case and blow the hot air out through the slots above the HDMI and RJ45 ports.  It’s not such a bad design, but I was surprised to find it in such a small case.

To counter the unpleasant surprise of the fan, when I first powered the unit on, I had two pleasant surprises.  First, there was a prompt across the bottom of the power-on splash screen with the instructions “DEL for set-up, F7 for boot menu”.  Yay!  That’s an improvement over the Z83-II, anyway.  Secondly, the BIOS is much, much more versatile than the Z83-II and, if anything, has too many settings and sub-menus (it was a relief to find that, for instance, it was possible on this machine to set-up for auto power-on after a power fail).  Both of these improvements meant that I didn’t get stuck in the “I’m going to run Windows, no matter what!” loop that the Z83-II suffered from and was able to boot Linux, OpenBSD and FreeBSD with no problem (although installing was a different matter).

Immediately after the warm and fuzzies from the BIOS though, the pendulum swung back in the other direction.  I found that the internal 64GB eMMC wasn’t recognized by most non-Windows OSes.  I fooled around with this for much too long.  FreeBSD-12 was the best candidate I could find to access it, but having successfully installed onto the eMMC, I found that reboots weren’t reliable; more often than not, the system just completely lost track of the eMMC (with timeout errors) and dropped into the “mountroot” prompt.  I’ve tried various “quirk” settings, but all without any lasting success.


mmc0: CMD13 failed, RESULT: 2
mmc0: Card at relative address 2 failed to set HS200 timing
mmc0: CMD7 failed, RESULT: 1
mmc0: Card at relative address 2 failed to select
mmcsd0: Error reading EXT_CSD Timeout
device_attach: mmcsd0 attach returned 6

I got sick of mucking around with that fairly quickly and decided to take advantage of the available 2.5″ SSD/HDD mounting point in the base of the unit.  [WARNING — Only a 7mm height drive will fit].  I slapped in a Crucial BX500 120GB SSD (the SATA cable is already attached to the mother board of the AP35, with the flying end taped down to the bottom panel of the case, so be gentle when opening it).  The BIOS (and FreeBSD) saw the new drive immediately and the install was completed in just a few minutes (no reboot problems so far and none really expected with a standard SATA drive).

The SSD fits very snugly into the bottom of the unit, although there’s very little clearance between the disk and the components on the motherboard.  The fan is actually on the other side of the motherboard, so I’d be wary of installing spinning rust in this cramped location due to possible heat problems.

As a plus for the adventurous, there are two slots available  (in the area which my SSD Detail of motherboard showing mSATA slotsnow occupies) which look like mSATA to me.  I don’t have anything to hand which would fit those, so I can’t comment on how well (or even if) they work and the support posts, along with the silkscreen outlines on the motherboard, left me wondering whether perhaps only one slot could be used at a time.  If you have experience using this type of “stepped” mSATA connector, please do leave a comment as to how well they perform and how those two support pillars are meant to work.   …and reader Carey Bishop sorted that out for me (and everyone else) when he noticed this additional information on Banggood’s sales page for the AP35:-

Additional information courtesy of Banggood.com
Additional information courtesy of Banggood.com

Carey also included a couple of links to boards which would fit in those slots (see the comments section at the bottom of the page).  The mini-PCIe only accommodates half height cards, which explains the support-post placing.  Thanks for that, Carey!

Anyway, once FreeBSD was installed on the SSD, it had absolutely no problem finding and using the 802.11ac WiFi and connecting to our 5GHz router, so another Intel AC3165 WiFi/Bluetoothplus point there.  The on-board WiFi/Bluetooth module is an Intel AC3165.  So far I haven’t got around to testing the Bluetooth functionality, but the fact that the WiFi works so well is a good omen.  Note that the two (internal) antenna cables are seriously gunked onto the module, which makes moving the motherboard around a little difficult.

The large connector to the right of the AC3165 in the photo is the motherboard end of the SATA lead for the internal SSD.

So far, so good.  The machine has been running flawlessly (but not silently …did I already mention that?) for the last week or so and I’m quite happy with its performance.  I’ll no doubt be updating this article with newer information as I attempt to transition it to the intended application on our home backbone, but here’s the short summary, so far:-

Pros:-

  • Compact enough to fit into a very small space.
  • Lightweight, so easily portable.
  • Comes with two HDMI cables, one short and one longer, as well as a wall/monitor mounting kit and screws.
  • Comes with two, unpopulated internal slots; one 50x30mm mSATA and one half-height 30x27mm mini-PCIe.
  • Comes with a SATA cable and mounting (with screws) for an internal 2.5″ HDD or SDD.
  • Normal (rather than cut-down) BIOS available.
  • Boot/BIOS prompts automatically displayed at power-on.
  • Dual-band (Intel 3165) WiFi with internal antennas.
  • Four USB-3.0 ports.
  • Cheap (currently selling for $140 with free shipping).

Cons:-

  • Not fanless and not silent.
  • The internal eMMC doesn’t appear to be very well supported by operating systems other than Windows-10 at this point in time.

Bottom Lines

As you can see, there really aren’t that many cons.  All in all, I think this is very good value for the price.  The quality of the build is also good, considering the price point.

There are several use cases that spring to mind for something this cheap and so compact.  One example would be a low-cost diskless node; the GbE interface should provide plenty of throughput and the BIOS does seem to allow PXE boot.  Another use would be as a low-cost desktop — if you happen to already have a decent monitor,keyboard and mouse set left over from an older machine, this system would be an excellent way to get a younger member of the family going with newer hardware on a slim budget.

Would I buy another one?  Probably not, but that’s because of the specific issue of the system not being fanless.  If the idea of it having a fan doesn’t bother you, then I’d certainly recommend this little system as being excellent value for money.


Additional OS Info —  NomadBSD 1.2, a FreeBSD-12 based distribution intended for use from a USB key, was released a few days ago and, because the OS doesn’t attempt to install itself on your machine (it runs from and stores config info to the USB key), it’s actually a pretty good candidate for testing out the real-world, desktop performance of your new machine.  Be sure to select “console frame buffer” and not “auto” from the set-up wizard though (auto seems to screw up frame buffering, but the console setting works fine, even with videos).

“dmesg” Info — Linux (Ubuntu), FreeBSD-11 and FreeBSD-12 (NomadBSD) dmesg files are available here, for anyone who’s interested.


This machine is now doing duty on my home network as a replacement for a couple of other (soon to be retired) machines, providing reverse proxy, TimeMachine backup server, NTP, DNS, Mosquitto, etc, etc, services.  It is running FreeBSD 12.1 with root on ZFS and the TimeMachine backup on 2x 4TB disks in a zpool mirror.


† —   Anglo-Saxon/Middle-English (slang) – Used frequently to mean “nonsense“.