Nordic Semi nRF52 WiSoCs are Susceptible to Debug Resurrection using APProtect Bypass

Nordic Semi nRF52 are popular wireless Cortex-M4 SoCs with Bluetooth 5.0 and 802.15.4 radios. APProtect (Access Port Protection) is a new security feature of nRF52 MCUs designed to enable readback protection and disable the debug interface. This is supposed to prevent an attacker to obtain a copy of the firmware that would allow him/her to start the reverse engineering process or access some sensitive data such as keys and passwords. It’s all good, except “LimitedResults” managed to bypass APProtect and permanently resurrect the debug interface on nRF52840-DK and a Bluetooth mouse. This requires physical access to the hardware and relies on a fault injection technique. The APProtect background and hacking technique are all explained in detail on LimitedResults blog post, but basically he first had to remove some capacitors and use a low-cost homemade voltage glitching system combines with an oscilloscope to try to locate a particular pattern into the power consumption. The goal was to find when the User …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Getting Started with Qoitech Otii Developer Tool using ESP8266 and Raspberry Pi 4 Boards

Last month, I received Qoitech Otii Arc power supply, power meter, and DAQ unit that aims at helping hardware and software engineers develop energy-efficient products. I’ve now had time to test the unit with an ESP8266 board and Raspberry Pi 4 SBC, so I’ll show how to get started and my overall experience with the hardware and program. Requirements and Initial Setup The unit takes a 9V power supply or micro USB adapter as power input, but power output is done through banana plugs. I did not have any cables with banana plugs so I bought one on eBay for about $5 shipped. This cable is really convenient with output to USB (female connector), crocodile clips, and hook clips. However, as we’ll see below it may not be suitable for all types of loads, and you may have to make your own with a higher rated cable. You’ll need to download Otii program available for Windows 10 / 7 64-bit, …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

A First Look at Otii Arc Power Supply, Power Meter, and DAQ Unit

I have recently been contacted by a Swedish company called Qoitech about their Otii solution that aims to help hardware and software engineers achieve long battery life for their IoT devices or apps. At the heart of Otii is Otii Arc hardware that acts as a power supply, voltage and current meter, and data acquisition (DAQ) unit. The company has now sent me a unit for review. I’ll start with a first quick post describing the device and checking out the hardware and interfaces, before writing my experience, or a getting started guide, with Otti hardware and software. Otii Arc specifications: Current/Voltage Measurement Current Accuracy – ±(0.1% + 50 nA) Sample Rate – in ±19 mA range:  4 ksps;  in ±2.7 A range: 1 ksps;  in 0 – 5 A range: 1 ksps Analog Bandwidth (3dB) –  400 Hz Voltage Total accuracy –  ±(0.1% + 1.5 mV) Sample Rate –  1 ksps 14-pin DAQ Interface UART – 110 bps to …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

MikroElektronika Launches Fusion for ARM & EasyPic MCU Development Boards

During Embedded World 2020 (EW2020), some companies withdraw their presence, while some were at the event. MikroElektronika presented several new boards and among them Fusion for ARM v8 and EasyPic v8 development boards. While we already wrote about Fusion fo TIVA, we haven’t covered any EasyPic board yet. Development boards from MikroElektronika allow rapid prototyping in the most efficient and effortless way. Fusion for ARM v8 Fusion for ARM v8 belongs to the Fusion family of development boards. It has integrated the world’s first embedded debugger/programmer over WiFi, while the CODEGRIP WiFi license is available as an add-on feature. The board is designed to be used in almost every environment retaining full debugging and programming access. The CODEGRIP currently supports more than 1600 microcontrollers from different vendors. The Fusion board integrates a new MCU card standard. It is a low profile standard where sockets consist of two connectors (male/female) which prevents the wrong insertion. The MCU card has standardized dimensions …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

ESP32 JTAG Debugging can be done through a MicroSD Card Socket

Found in most microcontrollers and processors, JTAG is an industry standard for verifying designs and testing printed circuit boards after manufacture, and that is also often used for low-level debugging or reverse-engineering. Espressif ESP32 also has a JTAG interface, but interestingly it’s shared with the SD card interface, and in ESP32 LyRaT audio development board where both MicroSD card slot and JTAG header are present selection is made by jumpers. The extract from ESP32 LyRaT schematics above shows IO’s 12, 13, 14 and 15 can present on the SD card and 4-pin JTAG header. Some boards may not come with a JTAG header but may feature a MicroSD card slot, but you don’t have to solder wires to the board to access JTAG, and instead, you could simply use a custom MicroSD card adapter to insert into the MicroSD card socket of the board and access JTAG as explained by cibomahto on Twitter. Nice little hardware trick! The photo below …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

MCCI Sells a $795 USB4 Switch for USB4 Product Development

USB4 Switch

The USB4 specification was officially released last September with the new standard promising speeds of up to 40 Gbps and up to 100 Watts power delivery over USB-C connectors. MMCI is now offering a 2:1 USB4 switch, the first computer-controlled USB4 mux according to the company, that can control 1 or 2 products up to 20 Gbps. Model 3141 USB4 Switch is not designed for consumers, as there aren’t any USB4 devices around at this time, but for electronics designers, firmware and software developers to enable them to test & debug their USB4 implementations. MCCI Model 3141 USB4 Switch key features and specifications: USB Specifications/Features USB4 Thunderbolt 3 USB 3.2 gen2 (x2 and x1), gen 1 (x2 and x1) USB 2.0 high speed, full speed, and low speed USB Power Delivery VCONN-powered devices (up to 0.5A) Alternate modes like DisplayPort. 2:1 switch, connecting two USB Type-C receptacles to a single Type-C plug Transparent connection between SUT (System under Test) and …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Raspberry Pi 4 WiFi Fails When Setting HDMI to 2560×1440 Resolution

Raspberry Pi 4 WiFi Fail 2560x1440 Resolution

Enrico Zini was working on a digital signage solution based on Raspberry Pi 4, then he set the video output to 2560×1440, and all hell broke loose. And by that, I mean WiFi stopped working. It was not obvious at first but after a full day of debugging, trying both micro HDMI outputs, different HDMI cables, three different Raspberry Pi boards, different power adapters, Raspbian Buster and Buster Lite, different MicroSD cards… He could reproduce the problem in all conditions, all he needed to do was to set the resolution to 2560×1440, and WiFi would just stop working. Setting the resolution to 2048×1080 or lower, and all WiFi connectivity issues disappeared. He did not test at higher resolutions, and another user reported a similar problem happening at 2.4 GHz, but not at 5 GHz, albeit when setting HDMI output to 1920×1080. So it looks like interference, but as noted by some it’s also surprising because the HDMI port and the …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Fix for Raspberry Pi 4 4GB model’s USB Ports not Working on Ubuntu 19.10

Raspberry Pi 4 4GB RAM Ubuntu 19.10

Ubuntu 19.10 server was recently released with official support for Raspberry Pi 4 SBC. Shortly after I read stories about the USB ports not working on the board, but it took another interesting turn as Canonical now explains the bug only affects RPI 4 with 4GB RAM, and USB works just fine on boards with just 1/2GB RAM. The issue has been identified and it’s been found to be a kernel bug with a solution in the works that being tested. In the meantime, you can access to your Raspberry Pi 4 4GB USB ports by limiting the memory to 3GB in /boot/firmware/usercfg.txt as follows: Alternatively here’s the link to an updated kernel provided by Hui Wang with you want to test it out: I built a testing kernel, not only includes the fix for USB host, but also includes all new patches from https://github.com/raspberrypi/linux.git rpi-5.3.y branch (about 107 patches). I tested both arm64 and armhf kernels on Pi4 without …

Support CNX Software – Donate via PayPal or become a Patron on Patreon