Category: Tech

EV charging in Iceland / Chargers for electric cars

Helmut Neukirchen, 2. May 2022

Now that electric cars have a reasonable range, driving around the ring road is no issue anymore (on your own car via the ferry or via an Icelandic car rental that offer more and more electric cars). Therefore, some information for tourists (and Icelanders new to EV charging: hleðsla rafbíla) who want to use an electric vehicle (EV) in Iceland and want to know how the charging situation is. Basically, the charging infrastructure is as follows:

  • ON (the former Reykjavik utilities company): Across Iceland, the oldest and most dense and most powerful charging points: Alpitronic High-Performance Chargers with CCS and Chademo, some old ABB 50 kW tripple chargers, i.e.CCS, Chademo and Type 2, some Tritium Veefil 50 kW CCS and Chademo chargers (pinball machine flashback), a few old DBT 44 kW multistandard DC chargers, and AC chargers: some with tethered Type 1 and Type 2 cables, some with the usual European Type 2 plug, i.e. you need your own cable. You can spot the ON chargers easily as they are orange. For locations, see their map. They issue their own RFID charging keys, but you need an Icelandic ID number ("kennitala") to order them, so no chance to get these as a tourist (I found at least one Icelandic car rental that therefore provides you with an ON key). Luckily, the Plugsurfing key works as well (I can confirm that the key works) -- however, the Plugsurfing app does not work. unfortunately, Plugsurfing send RFID keys/cards only to addresses in Europe. For those without ON nor Plugsurfing key: ON has now a new app (Android or iOS) where you can register without needing an Icelandic ID number (not tried yet, though -- reports are welcome). ON has just recently added stickers with QR codes to their charging station that contain station IDs that you can scan with the ON app (not tried yet, though -- reports are welcome). While ON was adding these QR stickers, I encountered also QR containing full URLs that look like they would lead to a (non-working) payment web page -- but these stickers should have been replaced by QR codes that contain only the station ID (you can also enter that station Id manually into the ON app). In case of problems at the charging station, do not hesitate to call ON 24/7 hotline (they are very helpful), e.g., to make them reset a fast charger (I heard stories that they even started charging when you forgot your ON key).
  • Ísorka: they mainly offer owners of AC chargers to take care of the finances, i.e. while the chargers are marked Ísorka, they are not owned and operated by Ísorka. As such, the costs of AC charging are decided by the owners of each charging point. In addition, Ísorka has also a few fast chargers (using their blue-white design). For locations, see their map. You should not need an Ísorka RFID key as the Ísorka app works typically always. However, the payment works in a pre-paid way and thus you to pre-pay 3000 ISK at the first use (via credit card) and if you charge during your Iceland vaction only for 500 ISK, you have wasted 2500 ISK. There is also a web-based payment using the QR code on the charging point which might be somewhat more expensive, but you do not need to pre-pay (never tried that, though). I read that it is also possible to register at Ísorka also other RFID cards than the Ísorka RFID key and use then that other RFID card, e.g. register the ID of your ON RFID key in order to reduce the amount of RFID key clutter.
    As Ísorka is part of the Virta network, Virta-related keys and apps should work as well (not tried, though).
    There was some controversy around Ísorka when they filed a complaint against ON which did lead to that (while the complaint was processed), ON had to shut-down curb-side AC chargers on which many EV owners relied on. First, Ísorka denied that the shut-down was due them filing a complaint, but later it came out that the opposite was true. Later, it was confirmed that the shut-down would not have been necessary at all.
  • Stoppustuð: Sometimes, you find (in particular on the country-side) some purple chargers marked STOPPUSTUÐ. These charging points where once given by the company Orkusalan for free to, e.g., municipalities. It is up to the municipalities how much they cost, but typically, they are for free -- I have no idea, how the non-free would be paid, maybe via Ísorka. Some may not work at all as no one maintains them. Typically, you still need whatever RFID chip (could be, e.g., you Plugsurfing key/card or anything else that has RFID) to start and then use the same RFID to end the charging session and release the charging cable. Most Stoppustuð are listed on Plugshare (which is anyway from the crowd-sourced maps the one mainly one used in Iceland).
  • N1: A gas station operator that started offering EV charging by taking over old 50 kW fast chargers from ON (when N1 terminated the rental contract based on which ON was able to set up fast chargers at N1 gas stations) and painting them in red (in Plugshare, you still find old photos from which you might be tempted that these are still chargers operated by ON). For locations, see their map. Since 2021 and still at time of writing in 2022, some stations (e.g. Vík, Kirkjubæjarklaustur, Ísafjörður) have a golden sticker ("Frí hleðsla") stating that charging is free for a limited amount of time: welcome this, but do not rely on that it is free forever. In the past, it was always required to pay: either using the N1 pre-paid card that also works for gas (and thus you can buy at the shops at N1 gas stations) or some chargers might even take ordinary credit cards: the N1 gas pumps have anyway some payment terminal where you can chose the pump and in fact also the chargers (if, e.g., the charger has some Icelandic text "Greiðsla fer fram í sjálfsala á dælu 6", that means that at pump 6, you should find a payment self-service payment terminal where you can also pay for the charger using a credit card or an N1 card). Recently, I read reports of people complaining that the chargers are unreliable and when they called the N1 hotline, their reports say that this was not helpful. These people recommend to not rely on N1 chargers: they are nice to have if they work while they are taking a pee at N1, but they do not add them into their route planning.
  • Free destinations charging in the Reykjavik area at shopping malls and IKEA: The malls Kringlan and Smáralind offer free charging at a few spots of their parking space (marked in green) and in particular IKEA has plenty of free chargers: as the IKEA restaurant is typically the cheapest (fast) food in Iceland, you can fill your car's battery with electrons and your stomach with french fries in parallel.
  • Of course, there is Tesla with Superchargers (in contrast to other countries, they are still Tesla-only at time of writing) and destination chargers (those who do not know it: if there is only one destination charger, it is Tesla-only, but if there are more, then the others are also for non-Tesla EVs).
  • In addition, some guesthouses have their own AC chargers for their guests: they are listed at (and there, you can also filter and switch to, e.g., hotels, farms or appartments with chargers).
    If your accommodation has no charger, you might still use an ICCB (in-cable control box)/Mode 2 charging cable that plugs into the Schuko socket used in Iceland for normal AC wall plugs. But note that while officially Schuko connections are rated for up to 16 A peak currents, this applies only to short peaks: Charging several hours overnight with 16 A (times 230 V, i.e. approx. 3.6kW) will generate a lot of heat at the connectors and will melt your Schuko connection and can even cause fire. So, take care that you can limit charging to, e.g. 10 A (approx. 2.3 kW) or lower, and that the Schuko socket does not look totally corroded (not uncommon for outdoor connectors exposed to Icelandic weather) or otherwise suggests that the installation is very old and cannot deal with permanent high load. Good ICCB/Mode 2 charging cables have a heat sensor inside the Schuko plug to prevent such overheating, so do not use any extension cords (because then, the heat sensor is only in the Schuko plug of the ICCB, but not in the Schuko plug of the other end of the extension cable). As an example, the Tesla Universal Mobile Connector (UMC) gen 1 with Schuko plug draws 3 kW (i.e. 13 A which is for my taste not what I would consider as a safe permanent load with a Schuko plug), whereas the UMC gen 2 is very conservative and draws with Schuko plug only 8 A (1.8 kW) which I would consider safe.

In general, finding a 50 kW charger is not a problem (often, these are ABB triple chargers, where it is often possible to use Type 2 AC charging in parallel to either CHAdeMO and Type 2 CCS). Typically, there is only one 50 kW charger at each place, i.e. you may have to wait for the charger to get available. High-Performance Chargers are just slowly being added, but the ones operated by ON come typically as twins, i.e. two chargers are installed at each place and since these are the modular Alpitronic chargers that have two or three 75 kW modules: if one car uses only 75 kW, then you can charge another car in parallel with 75 kW (so in the best case, two Alpitronic chargers can charge four cars at the same time). Be warned that Icelanders travel on their EVs in particular during the weekends of the summer, i.e. Friday evening, and in particular Sunday afternoon, the chargers tend to be busy: if you plan to travel during these times, you can expect delays, i.e. try to AC charge your car overnight so that it is 100% full in order to minimise relying on fast chargers during that trip and instead of relying to be able to charge at the end of the trip, charge even earlier whenever you come along a free charger.
As always, leaving a phone number visible in the car to be reachable while charging is a good practise.

I did not cover any pricing, as there is not a lot of competition (well, some companies try to compete mainly by filing complaints about the other company), but you are in the first place rather happy to find a charger.

For those coming with their EV via the ferry: the first AC charging point (Stoppustöð) is on the camping ground in Seyðisfjörður and the first fast chargers are in Egilstaðir (N1 and Tesla, see Plugshare map -- but ON has just announced to improve in Egilstaðir where they have currently only AC chargers) and your car has to climb a mountain pass to reach Egilstaðir. Note that there is no electrical power grid along the ring road between Egilstaðir and lake Mývatn that would supply enough power to operate a fast charger, so take this into account.

The Westfjords are not covered well by ON, so again, have a look at at Plugshare for the available fast chargers offered by others.

Of course, also Iceland suffers from the bad habit of dinosaur-blood consuming ICE cars (and even EVs not charging) blocking EV chargers. Unfortunately, you can only request to get them legally towed away if they are marked with an official sign (which is typically not the case).

Vehicle to load (V2L) adapter

Helmut Neukirchen, 20. April 2022

Luckily, more and more Electric Vehicles (EVs) support getting electricity out of the drive battery again. In future, this can be a key to use the energy stored in EVs during peak-usage (Vehicle-to-Grid). For the time being, I use it to have electricity when camping or during power outages to power my fridge.

For example, the Mitsubishi Outlander PHEV has (only if it has not a heated windscreen as the same cabling is used) a dedicated Schuko plug (rated at 1500 W -- by the way: it has no fuse: if you draw more amps, then simply the voltage goes down)

MG and Hyundai/Kia do this via the Type 2 charging connector (well, Hyundai/Kia do support also an internal Schuko plug, but the Icelandic Kia importer decided to offer/order only configurations without that internal plug). For the Type 2-based approach, a proprietary Type 2 to Schuko adapter is needed that is pretty expensive if you buy the OEM version.

Luckily, some re-engineering has been done that shows that only cheap passive electronics is inside. But be aware that the adapters are slightly different for MG and Hyundai/Kia. And in addition to DIY solutions (concerning the resistor, I did some research: a 0.25 W resistor is sufficient should be enough), third parties start to offer way cheaper adapters: currently only for the MG, but supposedly soon for the Hyundai/Kia as well.

Crossover Office and Microsoft Powerpoint presentation user template storage location

Helmut Neukirchen, 5. January 2022

It took me some time to figure out where my PowerPoint 2007 stores the user specific presentation template. Assuming the bottle's C: drive is at ~/.cxoffice/Microsoft_Office_2007/drive_c/, then just copy your templates to
~/.cxoffice/Microsoft_Office_2007/drive_c/users/crossover/Application Data/Microsoft/Templates

Zoom Panopto integration

Helmut Neukirchen, 9. November 2021

Panopto can tell Zoom to copy Zoom meeting cloud recordings to Panopto. You can configure this automatic import/export by clicking in the very upper right corner of on your user name and then select "User Settings".

University of Iceland is running Panopto with at least two different storage spaces: the old storage space used when logged-in to Panopto via UGLA (for Panopto videos accessible via UGLA) and the new storage space when logged-in to Panopto via Canvas (for Panopto videos accessible via Canvas).

On, you can in the upper right corner log out and log in to change between these two spaces. But you cannot copy videos between these two spaces -- but UTS help desk can do so.

For the Zoom integration, the problem is that recordings may end up in the wrong space: whatever the last log-in to Panopto was, sets the integration, i.e. tells Zoom where to store the video for all future Zoom session recordings. So take care that your last log-in was into the intended storage space before a Zoom cloud recording starts. (Or ask UTS help desk to fix it afterwards.)

Ice tea vs. IoT: LoRa

Helmut Neukirchen, 20. October 2021

Ice tea or IoT -- what do you prefer?

When I ordered the TTGO T-BEAM, I liked that it combines LoRa and GPS and it even supports a 18650 battery (18650 cells with internal protection circuit are somewhat longer, but still fit -- although very tight) including a good charging chip to charge the Li-Ion cell -- not LiFePO -- via USB (USB can also be used to power the device without using the battery holder). The ublox NEO-6M GPS chip has a dedicated backup (super)capacitor (looks like a coin cell battery) to buffer the GPS chips' RTC and almanach, but probably only for a few minutes.

Just when the delivery arrived, I found video #182 from Andreas Spiess, reporting that older TTGO designs had some design flaws: the 868-915 MHz versions have passive RF components (coils and capacitors to tune the frequency) that are not specific enough for the 868 MHz that we use here in Europe (some even fixed that) and the LoRa antenna could be better (all the videos by Andreas Spiess can only be recommended, including the LoRa videos). I was then happy to see that in newer designs, including the T-TBEAM, the WiFi antenna is placed better and in fact, the T-TBEAM even has a connector for an external WiFi antenna (but would need some minor soldering); also the LoRa and GPS part is now shielded by a metal cage. I was relieved to find the more recent video #224 measuring the T-BEAM and other newer boards, judging the newer designs to be OK.

I already expected that a better GPS antenna might be needed (and the tiny original one is only fixed with some adhesive tape that does not hold very well).

In summary, the T-BEAM seems not to be that bad (even the passive component that are too generic for 868 MHz turn out to be OK), but many reports indicate that the power consumption is rather high (This whole thread is also a worthwhile reading). 10 mA seem to be the minimum possible even during deep sleep. Concerning the power consumption, there seems to be an issue with deep-sleep. There is also a video on what is possible with ESP32 and deep sleep.

Some people complained that they got only 900m instead of kilometers of range. The comments for video #224 mention that an older library had a flaw concerning the transmit power which did lead in that video to a low transmission power; according to the comments, this has at least been fixed now in the LoRa library by Sandeep Mistry that can be found in the Arduino Library Manager.

A display can also be connected, but to reduce power consumption, it might be better to make it removable by using a female header.

Andreas Spiess recommends in his videos WeMos D1 ESP8266 and a Hope RFM95W LoRa module for which even a PCB is available (recommending as well WeMos D1 as ESP2866 board) -- it however needs SMD soldering. Nexus by Ideetron has elsewhere been mentioned as low power solution, but has only a small user base and thus lacks information -- and GPS can anyway be expected to be the big power consumer.
Concerning the LoRaWAN libraries, MCCI seems to be the only one that it actively maintained and communication with The Things Network needs to save some state information (for joining via OTAA) which MCCI stores in RAM that is not buffered in deep-sleep of ESPs. So for using OTAA, MCUs that do buffer the RAM (i.e. newer ATMEL MCU like in newer Arduino) would be preferable, e.g. Atmega 1284p together with a watchdog for waking up periodically has extremely low power consumption (0.5 μA in deep sleep) but lacks GPS. Other low power designs provide even triple GNSS and acceleration-detection watchdog. In addition to the ublox GNSS chips, there are some approaches that claim to reach lower power consumption by off-loading GNSS solver processing via LoRa to some external clouds server infrastructure or doing extreme A-GPS data compression for LoRa transmission from a cloud.

The really cool thing is that even satellites serve as LoRa repeaters (if there is a clear line of sight, LoRa has a theoretical range of 1300 kilometers, thus even reaching low earth orbit satellites). By this, sensors that have no LoRa connection on the earth, can still reach a LoRa repeater in the sky and forward their messages. (But you probably need an amateur radio license for the used 70 cm frequency band: 435 MHz / 436 MHz up- and downlink.)

I also got two TTGO Lora32 v1.6.1 that have LoRa, a card reader, and a tiny display on the back, but not GPS. On one of them, the WiFi antenna was already loose when unpacking (see the 3D sheet metal in the photo below). Need to check how easy it is to solder it back again (or whether rather a hot air rework station is needed) or is it as opportunity to add an SMA/UFL connector? (There is also an UFL antenna connector, but since it as close to the LoRa SMA antenna connector, I guess the UFL connector is as well for LoRa -- after desoldering some 0 Ohm SMD resistor and creating a soldering bring/reusing that 0 Ohm SMD resistor.)
Even though TTGO Lora32 comes with a cable to connect a battery, TTGO Lora32 version v1.6 had a fire issue where the battery explodes. I checked the schematics: My v1.6.1 has this issue fixed and the TTGO T-BEAM uses anyway a different charging IC that is claimed to be pretty good.

Also, double check the pinout: some complain that the pinout provided by LilyGO can be wrong.

Depending on the applications, I might use LoRa for device-to-device commnication, or LoRaWAN via The ThingsNetwork that has a coverage in Reykjavík, but fair use limits, e.g. 10 messages to the device per day, which could be avoided by setting-up my private LoRaWAN using ChirpStack.

Talking about lora (a popular name for parrots as the Spanish word for parrot is loro): did I mentioned already that the Computer Science department has moved and already a new visitor...?

DIY DVB-T/DVB-T2 indoor sleeve antenna made out of a coax antenna cable

Helmut Neukirchen, 13. October 2021

As the DVB-T sender has been moved here within Reykjavík, I had to adjust my indoor antenna which is simply built by turning a coax-antenna cable into a half-wave dipole antenna (essentially, a variant of a sleeve antenna) : the outer insulation of the coax cable was removed so that the part with the inner wire has a lambda/4 length and the left-over shield was peeled and turned inside out over the insulation so that it also has lambda/4 length (in sum: lambda/2). The aluminum foil that was part of the shielding was removed and finally, the inner insulation removed so that the inner wire remains totally uncovered. Take care that remainders of the shield do not touch the inner wire.

For the details, including the calculations, see: (in German, but the calculations work in any language -- note that they use a correction factor of 0.95 for the length of the shield and 0.97 * lambda/4 for the length of the inner wire -- but, well, the antenna needs to cover some frequency range, so these corrections probably matter not that much).

More info on the senders in Iceland can be found at (see map at the bottom). The sender operated by Vodafone on Úlfarsfell broadcasts on three UHF channels with 8 MHz bandwidth:

  • Channel 26 (514 MHz center frequency): RÚV HD (DVB-T2), RÚV 2 HD, BBC Brit, DR1, Food Network, Hringbraut, N4, National Geographic, Rás 1, Rás 2, Rondo (the latter are not TV, but radio)
  • Channel 27 (522 MHz center frequency): RÚV (DVB-T only), Stöð 2, Stöð 2 Bíó, Stöð 2 Fjölskylda, Stöð 2 Sport, Stöð 2 Sport 2, Rás 1, Rás 2, Bylgjan, Fm957 , Léttbylgjan, Xið
  • Channel 28 (530 MHz center frequency): Stöð 2 Golf, Stöð 2 Sport 3, Stöð 2 Sport 4, Animal Planet, Discovery.

Using 522 MHz, lambda/4 is 14.36 cm which I used for the above DIY antenna.

With the older sender where I had an unblocked line of sight, the reception was yielding almost 100% signal strength and signal quality, but with the new location of the sender on Mt. Úlfarsfell, my reception got really bad (there is a hill and high buildings in the line of sight) and signal strength is even fluctuating, which might be explained by the weather, e.g. rain can be expected to weaken the signal strength.

In addition to the above programmes, my TV receives a far stronger DVB-T signal on on channel 41 (634 MHz -- which means the calculated lambda/4 does not fit perfectly, still the received signal strength is close to 100%) which must be another sender than the one from Vodafone (it anyway broadcasts missionary programmes only).

Eclipse, modular projects and JUnit

Helmut Neukirchen, 21. September 2021

I (and many others) always had problems making JUnit (as added by Eclipse automatically when creating JUnit test cases) work with modular projects, i.e. projects that use files to define dependencies. Finally, I found solutions:

  • Let the new project wizard not create the file -- deleting it afterwards might not be enough as Eclipse did already some modification the the module path settings (OK, trivial) or
  • Choose Java ≤8 in settings (i.e. ignored -- again: trivial) or
  • Apply quick-fixes: in the class containing your JUnit test cases, hover over the org.junit.jupiter.api import and select the quick-fix: “Add ‘requires […]’ to”. Then in hover with mouse over the squiggle line (the important point is: clicking on the light bulb does not give any quick-fix, so you need to hover) and do: “Move classpath entry ‘JUnit5’ to modulepath”. This should fix it! or
  • Create an Eclipse project with extra src folder (e.g. src-test or use the Maven default structure) that has (via “Allow output folders for source folders”) its own output folder (e.g. bin-test or use the Maven default structure) and that has “Contains test sources” toggled to “Yes” (in project properties - Java Build Path -Source). The test src folder should then have a more grey-ish icon. Either do this with the New project wizard, or afterwards using project properties. As a result, JUnit is then not part of the modular project anymore. (Has also the advantage that test code is better separated.)

Power consumption of Raspberry Pi 4 versus Intel J4105 system

Helmut Neukirchen, 7. June 2021

While I intended to use a Raspberry Pi 4 as a small server, I also ordered from China a small system (BEBEPC, comparable to the Qotom mini PCs. While Qotom mini PCs are slightly better documented, they typically have less powerful CPUs: even though they have Core i3 CPUs, these are so old that a more recent Celeron CPU is faster) based on a Intel J4105 CPU (= TDP of 10 W, 4 cores, 1.5 GHz base frequency, 2.5 GHz burst frequency) which has over the Raspi the advantage of native SATA ports (one standard SATA connector with 5 V power supply and one mSATA connector carrying 3.3 V power supply -- I am currently waiting for an mSATA to SATA adapter and a 5 V SATA power splitter cable to be able to have a RAID system of two SATA SSDs -- mSATA SSDs are only available in smaller sizes). However, the biggest advantage is that it is (obviously) able to run Intel-only code, e.g. in particular (Docker) containers only available for Intel.

Both systems have 8 GB LPDDR4 RAM.

Both systems can be passively cooled: for the Raspy, I used a cooling case from -- it cools well, but the metal affects the range of the onboard Wifi (not that relevant for a server). The J4105 came as well with a case that allows passive cooling -- while it is still tiny for a PC, it has approx. 4 times the volume of the Raspi.

The J4105 system has for sure more compute power than the Raspi's ARM CPU, so the remaining question is the power consumption. Hence, I did some tests and measurements using a cheap power meter that claims to have a 2% precision. Both systems were connected via FullHD HDMI to a monitor.

Intel J4105 measurements

As I did not install Linux yet, it was running Windows 10 and idle refers to having only the built-in task manager running in foreground (to display clock frequency) and all the background services that Windows 10 has by default. CPU load was generated using a batch file containing an endless loop.

The J4105 clocks down to 0.78 GHz when idle and the power consumption of the whole system (with one mSATA and one SATA SSD) is then 3.8 W.

With 1 core being busy, it still clocks up to 2.4 GHz and consumes 7.2 W.

With 2 cores being busy, it still clocks up to 2.4 GHz and consumes 10.3 W.

With 3 cores being busy, it clocks up to 2.35 GHz and consumes between 11.8 W and 12.1 W.

With 4 cores being busy, it clocks up to 2.19 GHz and consumes between 11.4 W and 12.0 W. (So it seems the reduced clock saves power).

I did run it with 4 cores being busy for an hour, and the measurements did not change, e.g. no thermal throttling seems to have occurred (nor did the case get hot, so a really good passive cooling -- or the contact between CPU and case is bad, but then thermal throttling could have been expected).

Raspberry Pi 4 measurements

I had OSMC with KODI running, but nothing else, i.e. the KODI UI being idle, but all the background services running. The latest firmware as of 4. June 2021 was used, storage was SDHC card only. CPU load was generated using the stress command.

The Raspberry Pi 4 consumed idle 3.8 W to 4.0 W.

With 1 core being busy, it consumes 4.5 W.

With 2 cores being busy, it consumes 5.0 W.

With 3 cores being busy, it consumes between 5.4 W and 5.5 W.

With 4 cores being busy, it consumes 6.0 W.

Temperature with the cooling case from was approx. 52° C (so it prevented thermal throttling that would start at 80° C). Surprisingly, even in idle mode, the temperature was 40-42° (the tiny case does feel much warmer than the bigger case of the Intel system -- so, it seems: size matters).


In summary, the idle power consumption of both systems is comparable and while the busy consumption is lower with Raspberry Pi 4, it is of course less powerful than the J4105 system. For the J4105, I never observed the full 2.5 GHz burst clock rate (but 2.4 GHz). Even though the CPU TDP is 10 W, the whole system consumed up to 12.1 W (e.g. the RAM, the two SSDs, WiFi, HDMI output, external power supply, etc. probably also to add their share -- during boot, I even saw 14.8 W).

Note that others suggest 2.7 W idle for the Raspi 4 (but seems to require switching off a lot of I/O, e.g., HDMI etc. -- which I did not do, nor did I minimise background processes) or even as low as 2.1 W. On the other hand, many other report that they neither (with either a fan or a heatsink) get the system cooler than 42° in idle, so getting the Raspy warmer than the touch of your hand seems to be normal, but the J4105 system with the bigger case was considerably cooler.

It seems that the J4105 is a good 24/7 home server system, i.e. more powerful than the Raspi when needed, but still not consuming more power when idle.

An even more powerful system based on J4125 (= J4105 with higher clock) suggest that with Dual-Rank-Modules even 16 GB per RAM module are possible, i.e. with two banks, even 32 GB of RAM. Power consumption has also been measured which is higher (best explained by the fact that it is faster, i.e. cannot clock down as much: 2000-2700 MHz vs. 1500-2500 MHz).

It might be interesting whether a SO-DIMM that has integrated ECC error-correction capabilities from is available for the J4105 which would make it an even better small server.

The ultimate passively cooled server with ECC ram would be ASRock Industrial iBOX-V2000M or iBOX-V2000V -- but these are not yet available and in particular not for private users. But any ASRock motherboard in general, together with AMD Pro CPUs should support ECC.

Wacom Tablet on Linux with dual/multi-screen setup

Helmut Neukirchen, 3. February 2021

I have a dual screen setup and a Wacom tablet. As one screen is 4K UHD and the other FHD, this is too much screen estate for my shaky hand on the tiny Wacom tablet that I have (the tablet has 2540 lpi resolution, so this is not a restriction of the tablet, but the blame goes to me). Therefore, I want to restrict the tablet use to the FHD screen only in order to get a more calm pen usage.

On my Debian KDE system, this can be done by two means:

  • Install the KDE Wacom configuration tool via Debian package kde-config-tablet. In that tool, either set the mapping of the Wacom tablet to a specific screen (do not forget: you need to click "OK" also on the initial overview screen, i.e. end the whole setting process). Or use the pre-defined keyboard shortcuts to set a tablet-screen mapping.
  • Use the command line tool xsetwacom: get the screen name via xrandr (e.g. eDP for the laptop screen) and, get the name of the Wacom tablet via xsetwacom --list. Note that multiple entries are listed there for the same tablet: take care to use the one that ends with stylus. In my case, I use
    xsetwacom set "Wacom Intuos S Pen stylus" MapToOutput eDP

In online teaching, I enjoy using to draw on slides. E.g. for drawing on PDFs, I use either KDEs okular PDF viewer (in presentation mode, move to the upper screen edge to get a menu with pen colors) or xournal or rather it's fork xournal++/xournalpp. While I run PowerPoint on Linux with Wine, exactly the presentation mode drawing function does not work (I see the dot representing where the pen would draw, but drawing does not leave a trace).

For Gimp, it is important to understand that the tool to be mapped to the pen needs to be selected from the Toolbox window with the pen itself! (The pen and the mouse have different tools associated and Gimp distinguishes this based on what input device is used to selected the tool. Trying to select the tool with the mouse and then using the pen will only lead to making the pen crop (which is probably the default behaviour): this mode is also displayed at the bottom: "click-drag to draw a crop rectangle".)

Raspberry Pi 4: boot from USB with Ubuntu, ZFS

Helmut Neukirchen, 18. November 2020

First steps

When I was new to Raspberry Pi, I followed these German instructions.

Running Raspberry Pi on SD card and syslog wear

The default Raspberry Pi syslog logs to the normal files system, i.e. SD card (if not using USB).
In order to log to RAM and write it to file system only when needed, you can use Log2RAM either by adding it manually or to apt. Alternativly (did not try myself), use: Zram-config.

But you anyway might want to use USB storage instead of SD card.

Booting Raspberry Pi from USB

Raspberry Pi now supports booting from USB (having installed the latest firmware does not harm: I did this by booting Raspberry OS from SD card. Note that in contrast to Raspberry Pi <4, Raspberry Pi 4 stores the firmware actually in an EEPROM, not just as a file loaded at every boot from the FAT boot partition by the GPU firmware of Raspberry Pi <4). I then dd'ed the image from SD to USB mass storage.

Booting Ubuntu from USB

If you want to go for Ubuntu (not just beta as 64 bit Raspberry Pi OS, but available as stable 64 bit and support for ZFS), the following is relevant:

Ubuntu for Raspberry Pi uses U-Boot as bootloader, however U-Boot does not support booting from USB on Raspberry Pi, only from SD card, i.e. while Ubuntu 20.04 LTS works out of the box when booting from SD card, when I dd'ed the SD card onto a USB drive, booting failed because U-Boot could not load the kernel via USB.

Luckily, the bootloader that is part of the Raspberry Pi firmware can boot Ubuntu without U-Boot. As always, a FAT format boot partition is needed that contains a couple of files in order to boot.

While U-Boot can load compressed (vmlinuz) kernel images and can load the kernel from an ext4 root filesystem, the Raspberry Pi bootloader firmware can only load uncompressed (vmlinux) kernel images and only from the FAT-based boot filesystem.

While the Ubuntu 20.04 LTS ARM64 image has a kernel on the FAT-based boot partition, it is unfortunately compressed (because the assumed U-Boot would be able to deal with it). Hence, you need to uncompress the kernel manually to allow the Raspberry Pi firmware bootloader to load and start the kernel.

In addition, it seems that the .dat and .elf files that are part of the bootstraping need to be the most recent ones.

Hence, I downloaded the whole Raspberry Pi firmware from GitHub (via the green Code button) and extracted the .dat and .elf files from the boot directory.

Finally, you need to change the config.txt by adding kernel=vmlinux and
initramfs initrd.img followkernel
(in [all] and comment-out [pi4].

That should be enough to boot Ubuntu from USB. My above steps are essentially based on where you find step-by-step instructions.

Note that when you do later a kernel update inside the booted Ubuntu, it might only update the kernel image in the ext4 root partition -- not in the FAT boot partition. In this case, you need to copy the kernel over. Also you need to decompress it again.
(It should be possible to automate this, to get an idea, see: of

If you want to use the system headless (in fact, connecting a keyboard did not produce any input in my case), you can configure the network settings via the FAT-based boot partition:


Work in progress...

The ultimate goal is to have two drives as ZFS mirrors (RAID1) connected via USB.

(Be aware: 1. if the USB adapter claims data to have been written, that it has in fact not yet written, ZFS may fail -- just like probably any journaling-based file system; 2. USB is not as stable as SATA, so an ODROID-HV4 or a Raspberry Pi 4 compute module with PCI-based SATA might be better, or a Helios64 which might in future even have ECC RAM. But at least, Raspberry Pi has the better ecosystem and ZFS has some memory debug flag that does checksums for its RAM buffers.)

While has some very easy script to use ZFS, it still assumes an SD card for the boot and root filesystem. It would of course be better to have everything on the USB drive (and even using RAID).

As the Raspberry Pi bootloader can only access a FAT-based boot partition, we still need a FAT-based boot partition on the USB drive. According to documentation, if the first probed USB drive does not have a boot partition, the next drive will be probed. So, it should be possible to have some sort redundancy here (but we need manually take care that both FAT-based boot partitions are synced after each kernel update to have some sort of RAID1).

As Ubuntu should be able to have the root partition on ZFS (once the Raspberry Pi firmware bootloader loaded the kernel from the FAT-based boot partition), it should be possible to use ZFS as root partition (what size? 50GB?). The remainder could then be a ZFS data pool.

Note that if one of the RAID1 drives fails and needs to be replaced, the new drive might have slightly less sectors, so it is wise to use not all available space for the ZFS data pool. If we use anyway a swap partition in addition, we could use it to utilize the remaining space (and have then on the replacement drive a slightly smaller swap partition if the replacement drive is smaller). The swap partition should not be on ZFS but a raw swap partition: Linux can either use multiple swap partitions, i.e. from all of the RAID drives -- or only use one and keep the others unused.

This means, we still partition the mass storage instead of letting ZFS use it exclusively. The Raspberry Pi bootloader understand only MBR partition format -- this might limit drive size to 2 TB.

The following web pages cover ZFS as root:

Compiling ZFS for Raspberry Pi OS (first part), switching to ZFS root (second part), including initramfs and kernel cmdline.txt

USB adapters

I used USB to SATA adapters with the ASMedia ASM1153E as these work with Raspberry Pi and UASP.

When checking dmesg after connecting a USB drive, it did spit out some warning that could be ignored.

TODO: performance tuning

However that made in fact everything slower (TODO: speed testing via hdparm, dd).