While it all started in the cloud Artificial Intelligence is now moving at the very edge is ultra-low power nodes, and Microchip has launched two SAMD21 Arm Cortex-M0+ machine learning evaluation kits that now work with AI/ML solutions from Cartesiam, Edge Impulse, and Motion Gestures. Bot machine learning evaluation kits come with SAMD21G18 Arm Cortex-M0+ 32-bit MCU, an on-board debugger (nEDBG), an ATECC608A CryptoAuthentication secure element, ATWINC1510 Wi-Fi network controller, as well as Microchip MCP9808 high accuracy temperature sensor and a light sensor. But EV45Y33A development kit is equipped with an add-on board featuring Bosch’s BMI160 low-power Inertial Measurement Unit (IMU), while EV18H79A features an add-on board with TDK InvenSense ICM-42688-P 6-axis MEMS. The photo above makes it clear both SAMD21 machine learning evaluation kits rely on the same baseboard with a MikroBus socket connected to either 6DOF IMU 2click or 6DOF IMU 14 click add-on board from MikroElektronika. Both […]
JPEGDEC is a Faster JPEG Arduino Library Designed for 32-bit MCUs
In order to ensure software compatibility, Arduino libraries are supposed to work on various types of hardware from 8-bit microcontrollers with a limited amount of memory to more powerful 32-bit chips like STM32 Arm Cortex-M MCU or ESP32 dual-core Tensilica WiSoC that can access a larger amount of RAM. This is all good, but in some cases, this may affect performance. Larry Bank noticed this when looking for a JPEG viewers for Arduino and only found ones which sacrificed speed to work on MCUs with very little RAM. So he started to work on JPEDDEC JPEG Arduino library optimized for speed and compatible with any MCU with at least 20K of RAM. Optimizations go beyond just loading more data into memory, as Larry explains in a blog post, the library also performs the removal of stuffed bytes, optimize the Huffman decode and DCT parts, and more. Some of the key […]
ODYSSEY-X86J4105 SBC Review with Ubuntu 20.04 – Raspberry Pi & Arduino Headers Tested
We’ve already reviewed ODYSSEY-X86J4105 SBC with Windows 10. When combined with Re_Computer enclosure it’s a typical Intel Gemini Lake mini PC but with a twist: Arduino and Raspberry Pi header. The latter works fine in Windows, but at the time, the Raspberry Pi header does not. So Linux is our only option. I’ve now had time to install and test Ubuntu 20.04 on ODYSSEY-X86J4105 single board computer. I did not install Ubuntu on the internal eMMC flash where Windows 10 resides, but instead on a 128GB M.2 SATA SSD. I’ll first run some usual command to check system information, then run benchmarks, and check whether all features are working before focusing the review on the Arduino and Raspberry Pi headers. ODYSSEY-X86J4105 Ubuntu 20.04 System Info We can check some of the information from the system in the terminal:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 |
jaufranc@CNX-ODYSSEY:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.1 LTS Release: 20.04 Codename: focal jaufranc@CNX-ODYSSEY:~$ uname -a Linux CNX-ODYSSEY 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux jaufranc@CNX-ODYSSEY:~$ inxi -Fc0 System: Host: CNX-ODYSSEY Kernel: 5.4.0-42-generic x86_64 bits: 64 Console: tty 0 Distro: Ubuntu 20.04.1 LTS (Focal Fossa) Machine: Type: Desktop Mobo: WeiBu model: WTGLKC1R120 v: SD-BS-CJ41G-M-101-B 12/09/2019 18:14:02 serial: <superuser/root required> UEFI: American Megatrends v: SD-BS-CJ41G-M-101-B date: 12/09/2019 CPU: Topology: Quad Core model: Intel Celeron J4105 bits: 64 type: MCP L2 cache: 4096 KiB Speed: 998 MHz min/max: 800/2500 MHz Core speeds (MHz): 1: 1013 2: 1069 3: 1023 4: 1065 Graphics: Device-1: Intel UHD Graphics 605 driver: i915 v: kernel Display: server: X.org 1.20.8 driver: i915 tty: 80x24 Message: Advanced graphics data unavailable in console. Try -G --display Audio: Device-1: Intel driver: snd_hda_intel Sound Server: ALSA v: k5.4.0-42-generic Network: Device-1: Intel driver: iwlwifi IF: wlo2 state: down mac: 24:41:8c:a0:0e:42 Device-2: Intel I211 Gigabit Network driver: igb IF: enp2s0 state: up speed: 1000 Mbps duplex: full mac: 00:e0:4c:01:15:56 Device-3: Intel I211 Gigabit Network driver: igb IF: enp3s0 state: down mac: 00:e0:4c:01:15:57 Drives: Local Storage: total: 177.48 GiB used: 7.89 GiB (4.4%) ID-1: /dev/mmcblk0 model: DA4064 size: 58.24 GiB ID-2: /dev/sda model: MINIX SSD 128GB KHSA186335N size: 119.24 GiB Partition: ID-1: / size: 116.87 GiB used: 7.82 GiB (6.7%) fs: ext4 dev: /dev/sda1 Sensors: System Temperatures: cpu: 42.0 C mobo: N/A Fan Speeds (RPM): N/A Info: Processes: 207 Uptime: 9m Memory: 7.62 GiB used: 576.2 MiB (7.4%) Init: systemd runlevel: 5 Shell: bash inxi: 3.0.38 jaufranc@CNX-ODYSSEY:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 3.8G 0 3.8G 0% /dev tmpfs 780M 1.8M 779M 1% /run /dev/sda1 117G 7.9G 104G 8% / tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/loop1 55M 55M 0 100% /snap/core18/1705 /dev/loop0 241M 241M 0 100% /snap/gnome-3-34-1804/24 /dev/loop2 28M 28M 0 100% /snap/snapd/7264 /dev/loop3 63M 63M 0 100% /snap/gtk-common-themes/1506 /dev/loop4 50M 50M 0 100% /snap/snap-store/433 /dev/mmcblk0p1 96M 76M 21M 79% /boot/efi tmpfs 780M 24K 780M 1% /run/user/125 tmpfs 780M 8.0K 780M 1% /run/user/1000 jaufranc@CNX-ODYSSEY:~$ lsblk -a NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 240.8M 1 loop /snap/gnome-3-34-1804/24 loop1 7:1 0 55M 1 loop /snap/core18/1705 loop2 7:2 0 27.1M 1 loop /snap/snapd/7264 loop3 7:3 0 62.1M 1 loop /snap/gtk-common-themes/1506 loop4 7:4 0 49.8M 1 loop /snap/snap-store/433 loop5 7:5 0 0 loop loop6 7:6 0 0 loop loop7 7:7 0 0 loop sda 8:0 0 119.2G 0 disk └─sda1 8:1 0 119.2G 0 part / mmcblk0 179:0 0 58.2G 0 disk ├─mmcblk0p1 179:1 0 100M 0 part /boot/efi ├─mmcblk0p2 179:2 0 16M 0 part ├─mmcblk0p3 179:3 0 57.4G 0 part └─mmcblk0p4 179:4 0 800M 0 part mmcblk0boot0 179:8 0 4M 1 disk mmcblk0boot1 179:16 0 4M 1 disk jaufranc@CNX-ODYSSEY:~$ sudo lshw -C cpu *-cpu description: CPU product: Intel(R) Celeron(R) J4105 CPU @ 1.50GHz vendor: Intel Corp. physical id: 37 bus info: cpu@0 version: Intel(R) Celeron(R) J4105 CPU @ 1.50GHz slot: SOCKET 0 size: 937MHz capacity: 2700MHz width: 64 bits clock: 100MHz capabilities: lm fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp x86-64 constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm 3dnowprefetch cpuid_fault cat_l2 pti cdp_l2 ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust smep erms mpx rdt_a rdseed smap clflushopt intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts umip rdpid md_clear arch_capabilities cpufreq configuration: cores=4 enabledcores=4 threads=4 jaufranc@CNX-ODYSSEY:~$ sudo lshw -C memory *-firmware description: BIOS vendor: American Megatrends Inc. physical id: 0 version: SD-BS-CJ41G-M-101-B date: 12/09/2019 size: 64KiB capacity: 4544KiB capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int14serial int17printer acpi usb biosbootspecification uefi *-memory description: System Memory physical id: 23 slot: System board or motherboard size: 8GiB *-bank:0 description: DIMM LPDDR4 Synchronous 2133 MHz (0.5 ns) product: 123456789012345678 vendor: ABCD physical id: 0 serial: 1234 slot: A1_DIMM0 size: 2GiB width: 16 bits clock: 2133MHz (0.5ns) *-bank:1 description: DIMM LPDDR4 Synchronous 2133 MHz (0.5 ns) product: 123456789012345678 vendor: ABCD physical id: 1 serial: 1234 slot: A1_DIMM1 size: 2GiB width: 16 bits clock: 2133MHz (0.5ns) *-bank:2 description: DIMM LPDDR4 Synchronous 2133 MHz (0.5 ns) product: 123456789012345678 vendor: ABCD physical id: 2 serial: 1234 slot: A1_DIMM2 size: 2GiB width: 16 bits clock: 2133MHz (0.5ns) *-bank:3 description: DIMM LPDDR4 Synchronous 2133 MHz (0.5 ns) product: 123456789012345678 vendor: ABCD physical id: 3 serial: 1234 slot: A1_DIMM3 size: 2GiB width: 16 bits clock: 2133MHz (0.5ns) *-cache:0 description: L1 cache physical id: 35 slot: CPU Internal L1 size: 224KiB capacity: 224KiB capabilities: synchronous internal write-back configuration: level=1 *-cache:1 description: L2 cache physical id: 36 slot: CPU Internal L2 size: 4MiB capacity: 4MiB capabilities: synchronous internal write-back unified configuration: level=2 jaufranc@CNX-ODYSSEY:~$ free -mh total used free shared buff/cache available Mem: 7.6Gi 493Mi 6.5Gi 42Mi 633Mi 6.9Gi Swap: 2.0Gi 0B 2.0Gi jaufranc@CNX-ODYSSEY:~$ sudo lshw -C network *-network description: Wireless interface product: Intel Corporation vendor: Intel Corporation physical id: c bus info: pci@0000:00:0c.0 logical name: wlo2 version: 03 serial: 24:41:8c:a0:0e:42 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical wireless configuration: broadcast=yes driver=iwlwifi driverversion=5.4.0-42-generic firmware=46.6bf1df06.0 latency=0 link=no multicast=yes wireless=IEEE 802.11 resources: irq:44 memory:a1314000-a1317fff *-network description: Ethernet interface product: I211 Gigabit Network Connection vendor: Intel Corporation physical id: 0 bus info: pci@0000:02:00.0 logical name: enp2s0 version: 03 serial: 00:e0:4c:01:15:56 size: 1Gbit/s capacity: 1Gbit/s width: 32 bits clock: 33MHz capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.6.0-k duplex=full firmware=0. 6-2 ip=192.168.1.13 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s resources: irq:22 memory:a1200000-a121ffff ioport:e000(size=32) memory:a1220000-a1223fff *-network description: Ethernet interface product: I211 Gigabit Network Connection vendor: Intel Corporation physical id: 0 bus info: pci@0000:03:00.0 logical name: enp3s0 version: 03 serial: 00:e0:4c:01:15:57 capacity: 1Gbit/s width: 32 bits clock: 33MHz capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.6.0-k firmware=0. 6-2 latency=0 link=no multicast=yes port=twisted pair resources: irq:23 memory:a1100000-a111ffff ioport:d000(size=32) memory:a1120000-a1123fff jaufranc@CNX-ODYSSEY:~$ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 005: ID 8087:0aaa Intel Corp. Bus 001 Device 006: ID 2886:800b Seeed Studio Seeeduino Zero Bus 001 Device 004: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller Bus 001 Device 003: ID 1a2c:0002 China Resource Semico Co., Ltd USB Keykoard Bus 001 Device 002: ID 04f2:1718 Chicony Electronics Co., Ltd HP USB Optical Mouse Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub jaufranc@CNX-ODYSSEY:~$ lspci 00:00.0 Host bridge: Intel Corporation Gemini Lake Host Bridge (rev 03) 00:00.1 Signal processing controller: Intel Corporation Celeron/Pentium Silver Processor Dynamic Platform and Thermal Framework Processor Participant (rev 03) 00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 605 (rev 03) 00:0c.0 Network controller: Intel Corporation Device 31dc (rev 03) 00:0e.0 Audio device: Intel Corporation Device 3198 (rev 03) 00:0f.0 Communication controller: Intel Corporation Celeron/Pentium Silver Processor Trusted Execution Engine Interface (rev 03) 00:12.0 SATA controller: Intel Corporation Device 31e3 (rev 03) 00:13.0 PCI bridge: Intel Corporation Gemini Lake PCI Express Root Port (rev f3) 00:14.0 PCI bridge: Intel Corporation Gemini Lake PCI Express Root Port (rev f3) 00:14.1 PCI bridge: Intel Corporation Gemini Lake PCI Express Root Port (rev f3) 00:15.0 USB controller: Intel Corporation Device 31a8 (rev 03) 00:17.0 Signal processing controller: Intel Corporation Device 31b4 (rev 03) 00:17.1 Signal processing controller: Intel Corporation Device 31b6 (rev 03) 00:17.2 Signal processing controller: Intel Corporation Device 31b8 (rev 03) 00:18.0 Signal processing controller: Intel Corporation Celeron/Pentium Silver Processor Serial IO UART Host Controller (rev 03) 00:18.1 Signal processing controller: Intel Corporation Celeron/Pentium Silver Processor Serial IO UART Host Controller (rev 03) 00:18.2 Signal processing controller: Intel Corporation Celeron/Pentium Silver Processor Serial IO UART Host Controller (rev 03) 00:18.3 Signal processing controller: Intel Corporation Celeron/Pentium Silver Processor Serial IO UART Host Controller (rev 03) 00:19.0 Signal processing controller: Intel Corporation Celeron/Pentium Silver Processor Serial IO SPI Host Controller (rev 03) 00:1c.0 SD Host controller: Intel Corporation Celeron/Pentium Silver Processor SDA Standard Compliant SD Host Controller (rev 03) 00:1e.0 SD Host controller: Intel Corporation Device 31d0 (rev 03) 00:1f.0 ISA bridge: Intel Corporation Device 31e8 (rev 03) 00:1f.1 SMBus: Intel Corporation Celeron/Pentium Silver Processor Gaussian Mixture Model (rev 03) 02:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03) 03:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03) |
An Intel Celeron J4105 processor with 8GB RAM and the rootfs […]
Keyboard FeatherWing Brings Keyboard & Display to Adafruit Feather Boards
Solder Party is a brand new Swedish startup founded by Arturo182 who previously designed several maker boards including the tiny Serpente R2 CircuitPython prototyping board, and its first product, named Keyboard FeatherWing, brings a QWERTY keyboard and 2.6” color LCD with resistive touch screen to any boards compatible with Adafruit Feather for factor. That means you can build a portable device that runs Linux via the Giant Board, features an FPGA (Orange Crab), or a wide range of connectivity options including WiFi, Bluetooth LE, LoRa, etc… depending on your chosen board. The solution actually brings a bit more than just a keyboard and color, as shown by the list of Keyboard FeatherWing key features: Display – 2.6” 320×240 16-bit color LCD with resistive touch screen (SPI) Storage – MicroSD card slot (SPI) User Inputs controlled by a Microchip SAMD20 MCU QWERTY keyboard (I2C) 5-way button 4 soft tactile buttons Expansion […]
HeliOS is a Tiny Embedded OS Designed for Arduino Boards
Mannie Peterson (aka FellFromTree) has developed an embedded operating system called HeliOS that’s designed specifically for 8-bit and 32-bit Arduino boards, and can easily be used from the Arduino IDE. HeliOS is said to have only 21 function calls and implements cooperative and event-driven multitasking, task notification/messaging, timers, and memory management. It’s a non-preemptive multitasking kernel so you won’t have to deal with mutexes. The developer explains how scheduling works with HeliOS: HeliOS uses a run-time balanced strategy which ensures tasks with shorter run-times are prioritized over tasks with longer run-times. This ensures all running tasks receive approximately equal total run-time without using context switching. The other multitasking option available in HeliOS is event driven multitasking, which uses the wait/notify and timer interfaces. Mixing cooperative and event driven tasks in HeliOS is not a problem. To give it a try, simply open the Arduino IDE Library Manager, search for “HeliOS” […]
SAMD21 Lite is a Stamp-sized, MikroBus Compatible Cortex-M0+ MCU Board
If you’re a fan of tiny microcontroller boards, you’ll be pleased with BOKRA SAMD21 Lite board powered by Microchip SAMD21 Arm Cortex-M0+ MCU, exposing I/Os in a way compatible with MikroBus socket, and adding a Grove connector for good measure. SAMD21 Lite board specifications: MCU – Microchip ATSAMD21G18A Arm Cortex-M0+ microcontroller @ 48 MHz with 256KB flash memory, 32KB RAM Expansion I/Os MicroBus socket with GPIO, SPI, I2C, USART, PWM, DAC, +5V, +3.3V, GND I2C Grove connector 10-pin I/O header with GPIO, USB 2.0, VIN, GND Misc – Reset button, red power LED, 2x user LED (yellow/green), J1/J2 jumper to enable/disable I2C pull-ups Debugging – 4-pin SWD header Power Supply 5V input via VIN MIC5528500 voltage regulator Output current – 500 mA Dimensions -28.6 x 25.4 mm Despite its tiny size, SAMD21 Lite exposes all expect five I/Os from the microcontroller. The Microbus headers and the I2C Grove connector allow […]
Edge Impulse Enables Machine Learning on Cortex-M Embedded Devices
Artificial intelligence used to happen almost exclusively in the cloud, but this introduces delays (latency) for the users and higher costs for the provider, so it’s now very common to have on-device AI on mobile phones or other systems powered by application processors. But recently there’s been a push to bring machine learning capabilities to even lower-end embedded systems powered by microcontrollers, as we’ve seen with GAP8 RISC-V IoT processor or Arm Cortex-M55 core and the Ethos-U55 micro NPU for Cortex-M microcontrollers, as well as Tensorflow Lite. Edge Impulse is another solution that aims to ease deployment of machine learning applications on Cortex-M embedded devices (aka Embedded ML or TinyML) by collecting real-world sensor data, training ML models on this data in the cloud, and then deploying the model back to the embedded device. The company collaborated with Arduino and announced support for the Arduino Nano 33 BLE Sense and […]
ODYSSEY-X86J4105 SBC Unboxing and Re_Computer Case Review
Seeed Studio ODYSSEY-X86J4105 is an Intel Celeron J4105 Gemini Lake SBC that also happens to integrate an Arduino compatible Microchip SAMD21 Arm Cortex M0+ microcontroller that makes it suitable as an all-in-one Arduino platform. But it can do much more with 8GB RAM, an optional 64GB eMMC flash, HDMI & USB-C DisplayPort 4K video outputs, dual Gigabit Ethernet, and support for both SATA and NVMe storage. The board runs Windows 10 Enterprise by default (if you purchase the board with an eMMC flash), and supports Linux distributions as well. Seeed Studio sent me a review sample, so I’ll start by checking out the hardware first. ODYSSEY-X86J4105 Unboxing I received ODYSSEY-X86J4105864 with a built-in 64GB eMMC flash pre-loaded with Windows 10 Enterprise. Let’s have a quick look at the board with USB, Ethernet and video output ports previously described, as well as built-in dual-band Wi-Fi 5 & Bluetooth 5.0 module, and […]