Last year we discovered Kendryte K210 processor with a RISC-V core and featuring AI accelerators for machine vision and machine hearing. Soon after, Sipeed M1 module was launched with the processor for aroud $10. Then this year we started to get more convenient development board featuring Sipeed M1 module such as Maixduino or Grove AI Hat. Seeed Studio sent me the last two boards for review. So I’ll start by showing the items I received, before showing how to get started with MicroPython and Arduino code. Note that I’ll be using Ubuntu 18.04, but development in Windows is also possible. Unboxing I received two packages with a Maixduino kit, and the other “Grove AI HAT for Edge Computing”. Grove AI HAT for Edge Computing Let’s start with the second. The board is a Raspberry Pi HAT with Sipeed M1 module, a 40-pin Raspberry Pi header, 6 grove connectors, as well […]
Wear Estimation for Devices with eMMC Flash Memory
CNXSoft: This is a guest post by Marcel Ziswiler, Platform Manager – Embedded Linux, Toradex and Leonardo Graboski Veiga, Technical Marketing Engineer, Toradex related to Marcel’s upcoming talk “Wear Estimation for Devices with eMMC Flash Memory” at the Embedded Linux Conference 2019 later this month. Flash memory has been an important topic in embedded systems for decades. It allows for drastic improvements to the size and robustness of electronic devices compared to other storage technologies. Other benefits of flash storage include a lack of moving parts and reduced power consumption. However, the challenges that come with flash memory are not as widely publicized in consumer electronics. Among them are limited durability and greater software complexity. As shown in Figure 1, flash memory is everywhere in our daily lives, ranging from devices used specifically to store data, such as thumb drives, SD cards and SSDs, to other consumer electronics that use […]
MINIX NEO S2 USB-C SSD Hub Review in Ubuntu 18.04 with Khadas Edge
MINIX NEO S1 & S2 are USB-C hubs with the usual HDMI and USB outputs, but also a built-in 120 GB & 240 GB SSD respectively. The company has sent me a sample of each, and in order to test the platform, I decided to do on a Khadas board running Ubuntu 18.04 with LXDE desktop environment (aka Lubuntu). I’ll start by checking out the packages’ content, before going through my experience with the MINIX NEO S2 USB-C hub in Ubuntu 18.04 with LXDE desktop environment. MINIX NEO S1 & S2 Unboxing Both packages are basically identical except for the different color, and one shows 120GB SSD capacity, while the other has 240GB The back side has some more details about the USB-C hub. I’ll focus on the 240GB model since it’s just the same, but around $13 to $20 more expensive, and it offers double the capacity, as well […]
Reading ID Card Data in Ubuntu with EZ100PU Smart Card Reader (Thai ID Edition)
I was asked help with configuring a smart card reader on a government computer running Windows 7, but this made me wonder what would happen if I connected the card reader to my Ubuntu laptop and whether I’d be able to read content from a Thai ID card. EZ100PU Smart Card Reader Let’s have a look at the card reader itself first. It’s a FAST ID EZ100PU smart card reader compliant with ISO7816 standard. That’s the product page of the specific model, but a search for EZ100PU only reveals the manufacturer may be InfoThink Technology based on Taiwan. The USB smart card reader comes with a CD that includes drivers for Windows, Linux, Mac OS, and Android, as well as an SDK with a demo program and sample code in C++, Visual Basic .NET, and C#. As we’ll see further below, the Linux driver is not needed as it works […]
How Do You Handle Backups in Linux? Hardware, Software, Configuration, etc…
Linux EXT-4 File System Corruption & Attempted Recovery There’s a file system corruption bug related to EXT-4 in Linux, and it happened to me a few times in Ubuntu 18.04. You are using your computer normally, then suddenly you can’t write anything to the drive, as the root partition has switched to read-only. Why? Here are some error messages:
1 2 3 4 |
[15882.773747] EXT4-fs (dm-4): re-mounted. Opts: (null) [15898.557605] EXT4-fs error (device dm-4): ext4_iget:4831: inode #2113041: comm rm: bad extra_isize 20100 (inode size 256) [15898.568305] EXT4-fs error (device dm-4): ext4_iget:4831: inode #2113042: comm rm: bad extra_isize 35148 (inode size 256) [15898.569774] EXT4-fs error (device dm-4): ext4_lookup:1577: inode #2557277: comm rm: deleted inode referenced: 2113043 |
What then happens is that you restart your PC, and get to the command where you are asked to run:
1 |
esfsck /dev/sda2 |
Change /dev/sda2 to whatever your drive is, and manually review errors. You can take note of the file modified, as you’ll likely have to fix your Ubuntu installation later on. Usually the fix consists of various package re-installations:
1 |
sudo apt install --resintall <package-name> |
It happened to me two or three times in the past, and it’s a pain, but I eventually recovered. But this time, I was not so lucky. The system would […]
How to Decode Markings on FBGA Memory Chips
SDRAM chips often come in compact FBGA (Fine-Pitch Ball Grid Array) packages, which do not leave enough space to write the full part number. So instead component manufacturers rely on abbreviated part markings that often have nothing to do with the actual part numbers. For example, the Micron SDRAM chip above has markings that read “PPE39 7LW75 D9WDL”. We know it’s a Micron part because of the logo, but if you search any on the number on the chip, you won’t find anything on the web. Instead, you need to look for the marking decoder from the chip company. Micron calls it the FBGA and Component Marking Decoder. Usually we need to use the second number on the chip, but in that case, it did not work, and I had to use the third number. I got my answer. Somehow the company does not link to any product page. Searching […]
How to Overclock Raspberry Pi 4 to 2.0 GHz
Yesterday I played with my new “ICE Tower CPU cooling fan” for Raspberry Pi 4 which cools the board just great but is clearly over the top. Regular reader and commenter m][sko mentioned it was possible to overclock Raspberry Pi 4 to 2.0 GHz after a firmware upgrade. That looks like a perfect task for my new fansink! I’ve upgraded both the firmware and operating system:
1 2 |
sudo rpi-update sudo apt dist-upgrade |
then edited /boot/config.txt as root (sudo) to add the following lines to boost the maximum frequency to 2.0 GHz:
1 2 3 |
force_turbo=0 arm_freq=2000 over_voltage=6 |
Do not try to set force_turbo=1, as while it would allow to further boost the voltage, it will change a fuse in the chip, and it will void your warranty. We can now reboot the board to validate the settings, and check those are applied:
1 2 3 |
vcgencmd get_config int | grep "arm\|over" arm_freq=2000 over_voltage=6 |
Good. At idle the frequency is lower, but that normal:
1 2 |
vcgencmd measure_clock arm frequency(48)=666826176 |
Voltage is set to 1.0335V:
1 2 |
vcgencmd measure_volts volt=1.0335V |
[…]
Checking Out Machine Check Exception (MCE) Errors in Linux
I recently reviewed ODROID-H2 with Ubuntu 19.04, and noticed some errors messages in the kernel log of the Intel Celeron J4105 single board computer while running SBC-Bench benchmark:
1 2 3 4 5 6 7 8 9 |
[180422.405294] mce: [Hardware Error]: Machine check events logged [180425.656449] mce: [Hardware Error]: Machine check events logged [180483.582825] mce_notify_irq: 17 callbacks suppressed [180483.582827] mce: [Hardware Error]: Machine check events logged [180484.991484] mce: [Hardware Error]: Machine check events logged [180594.700684] mce_notify_irq: 13 callbacks suppressed [180594.700686] mce: [Hardware Error]: Machine check events logged [180858.202115] mce: [Hardware Error]: Machine check events logged [181178.047031] mce: [Hardware Error]: Machine check events logged |
I did not know what do make of those errors, but I was told I would get more details with mcelog which can be installed as follows:
1 |
sudo apt install mcelog |
There’s just one little problem: it’s not in Ubuntu 19.04 repository, and a bug report mentions mcelog is not deprecated, and remove from Ubuntu 18.04 Bionic onwards. Instead, we’re being told the mcelog package functionality has been replaced by rasdaemon. But before looking into the utilities, let’s find out what Machine Check Exception (MCE) is all about from ArchLinux Wiki: A machine check exception (MCE) is an error generated by the CPU when the CPU detects that a hardware error or failure has occurred. Machine check exceptions (MCEs) can occur for a variety […]