TinySniffer is a USB sniffer based on the Allwinner H3-powered NanoPi Neo Air SBC, designed to capture USB 1.x and 2.0 packets remotely, and whose captured data is compatible with the popular Wireshark packet analyzer tool. Wireshark can already be used to capture USB packets on its own and I reverse-engineered a USB capture video solution that way in the past, but this method has some limitations, for instance, it does not capture some low-level USB packets, in which case a hardware USB sniffer like Total Phase Beagle USB, the PhyWhisperer USB, or the tinySniffer is required. The micro USB OTG port of the NanoPi NEO Air SBC is connected to the host computer and the company added a USB 2.0 Type-A port connected to the USB interface on the GPIO header to connect a device under test such as a USB keyboard, a USB Ethernet dongle, a USB printer, […]
Rockchip RK3588’s NPU open-source driver performs object detection at 30 FPS
Tomeu Vizoso has been working on an open-source driver for NPU (Neural Processing Unit) found in Rockchip RK3588 SoC in the last couple of months, and the project has nicely progressed with object detection working fine at 30 fps using the SSDLite MobileDet model and just one of the three cores from the AI accelerator. Many recent processors include AI accelerators that work with closed-source drivers, but we had already seen reverse-engineering works on the Allwinner V831’s NPU a few years ago, and earlier this year, we noted that Tomeu Vizoso released the Etvaniv open-source driver that works on Amlogic A311D’s Vivante NPU. Tomeu has now also started working on porting his Teflon TensorFlow Lite driver to the Rockchip RK3588 NPU which is closely based on NVIDIA’s NVDLA open-source IP. He started his work in March leveraging the reverse-engineering work already done by Pierre-Hugues Husson and Jasbir Matharu and was […]
LoLRa project – Transmitting LoRa packets without radio using CH32V003, ESP8266, or ESP32-S2 MCU
The LoLRa project is a firmware-only LoRa transmission open-source project that works without a Semtech radio and instead relies on an I2S or SPI interface (so not exactly bit-banging) to transmit data with microcontrollers such as WCH CH32V003, or Espressif Systems ESP8266 and ESP32-S2 microcontrollers. LoRa is a proprietary protocol by Semtech, but people have been trying to reverse-engineer the LoRa PHY for years, and this culminated with a LoRa GNU Radio SDR implementation last year. But CNLohr found out you don’t even need a radio to send LoRa packets and you can instead use SPI or I2S interfaces from general-purpose microcontrollers to send packets that can be decoded by commercial off-the-shelf LoRa gateways and other chips. The current implementation is designed for the ITU Region 2 (aka The Americas) targeting the 902-928MHz frequency band, but the code could be changed for Region 1 (EU, Russia, Africa) to target 863-870MHz […]
ESP32 may soon get an open-source WiFi MAC layer
Most, if not all, WiFi hardware relies on closed-source binary blobs including ESP32 wireless MCU, but there’s now work underway to reverse engineer a WiFi MAC layer for the ESP32 to make it a truly open-source platform. Espressif ESP32 wireless microcontrollers already have an open-source framework (ESP-IDF) and toolchain, people can customize the code to some extent, but this excludes the wireless bits (Wi-Fi, Bluetooth, low-level RF functions) that are distributed as closed-source precompiled libraries integrated into the firmware. There were some efforts to provide an open-source stack for the BL602 chip but it never went anywhere, and the ESP32 may become the first target with an open-source driver without any blobs, excluding FPGA-based projects such as OpenWiFi. The early-stage implementation currently supports the following features: Sending WiFi frames Receiving WiFi frames Send an ACK packet as a reply to packets that are sent to the ESP32 Connect to an […]
gr-lora_sdr – A GNU Radio SDR implementation of a LoRa transceiver
The physical layer of the LoRa (LoRa PHY) is a proprietary standard owned by Semtech and people have been trying to reverse-engineer the LoRa standard for years with projects such as GR-LoRa, and over the year various people have taken over the works and new projects have come with the latest one being the gr-lora_sdr GNU Radio software-defined radio (SDR) implementation of a LoRa transceiver. The project has been conducted in collaboration with the Telecommunication Circuits Laboratory of the EPFL (École Polytechnique Fédérale de Lausanne) in Switzerland, and gr-lora_sdr is available as a module for GNU Radio 3.10 with both Tx and Rx implemented so it can be used with hardware compatible with GNU Radio that works in the ISM bands for LoRa (e.g. 433 MHz, 868 MHz, 915 MHz). Highlights of the gr-lora_sdr project: Sends and receives LoRa packets between USRP-USRP and USRP-commercial LoRa transceiver (tested with Adafruit Feather […]
FOSDEM 2023 schedule – Open-source Embedded, Mobile, IoT, Arm, RISC-V, etc… projects
After two years of taking place exclusively online, FOSDEM 2023 is back in Brussels, Belgium with thousands expected to attend the 2023 version of the “Free and Open Source Developers’ European Meeting” both onsite and online. FOSDEM 2023 will take place on February 4-5 with 776 speakers, 762 events, and 63 tracks. As usual, I’ve made my own little virtual schedule below mostly with sessions from the Embedded, Mobile and Automotive devroom, but also other devrooms including “Open Media”, “FOSS Educational Programming Languages devroom”, “RISC-V”, and others. FOSDEM Day 1 – Saturday February 4, 2023 10:30 – 10:55 – GStreamer State of the Union 2023 by Olivier Crête GStreamer is a popular multimedia framework making it possible to create a large variety of applications dealing with audio and video. Since the last FOSDEM, it has received a lot of new features: its RTP & WebRTC stack has greatly improved, Rust […]
Speeding up open-source GPU driver development with unit tests, drm-shim, and code reuse
Getting an Arm platform that works with mainline Linux may take several years as the work is often done by third parties, and the silicon vendor has its own Linux tree. That means in many cases, the software is ready when the platform is obsolete or soon will be. It would be nice to start software development before the hardware is ready. It may seem like a crazy idea, but that’s what the team at Collabora has done to add support for Arm “Valhall” GPUs (Mali-G57, Mali-G78) to the Panfrost open-source GPU driver. The result is that it only took the team a few days to successfully pass tests using data structures prepared by their Mesa driver and shaders compiled by their Valhall compiler after receiving the actual hardware thanks to the work done in the last six months. So how did they achieve this feat exactly? We have to […]
Mali-G78 GPU’s Valhall instruction set documentation released after reverse-engineering work
Collabora has been working on Panfrost open-source GPU driver for Arm Mali Bifrost and Midgard GPU for several years, and even getting official support from Arm. But apparently, that support does not include documentation for Mali-G78 GPU and other recent Arm Valhall Mali GPUs, as the company recently reverse-engineered Mali-G78 for about a month before releasing the documentation on the Valhall instruction set (PDF). Other results from the reverse-engineering include an XML architecture description that can be parsed by programs, as well as a Valhall assembler and disassembler that were used as a reverse-engineering aid. Besides Mali-G78 “Borr” GPU, the work will be useful for other Valhall GPUs include Mali-G77 “TryM’, Mali-G57 “Natt-A/B”, Mali-G68 “Ottr”, and Mali-G78AE “Borr-AE” for automotive & industrial applications. Alyssa Rosenzweig explains Collabora’s work that was based on the International edition of the Samsung Galaxy S21 phone powered by Samsung Exynos 2100 system-on-chip with a Mali-G78 […]