Open Hardware/Modding: Raspberry Pi, ESP32, and More
-
uni Ghent ☛ Unveiling secrets of the ESP32: creating an open-source MAC Layer
The ESP32 is a popular microcontroller known in the maker community for its low price (~ €5) and useful features: it has a dual-core CPU, built-in Wi-Fi and Bluetooth connectivity and 520 KB of RAM. It is also used commercially, in devices ranging from smart CO₂-meters to industrial automation controllers. Most of the software development kit that is used to program for the ESP32 is open-source, except notably the wireless bits (Wi-Fi, Bluetooth, low-level RF functions): that functionality is distributed as precompiled libraries, that are then compiled into the firmware the developer writes.
-
uni Ghent ☛ Unveiling secrets of the ESP32 part 2: reverse engineering RX
This is the second article in a series about reverse engineering the ESP32 Wi-Fi networking stack, with the goal of building our own open-source MAC layer. In the previous article in this series, we built static and dynamic analysis tools for reverse engineering. We also started reverse engineering the transmit path of sending packets, and concluded with a rough roadmap and a call for contributors.
In this part, we’ll continue reverse engineering, starting with the ‘receiving packets’ functionality: last time, we succesfully transmitted packets. The goal of this part is to have both transmitting and receiving working. To prove that our setup is working, we’ll try to connect to an access point and send some UDP packets to a computer also connected to the network.
-
Pi My Life Up ☛ Using the DHT11 Sensor on the Raspberry Pi
This humidity and temperature sensor is the cheaper version of the popular DHT22 sensor. The DHT11 has a worse temperature and humidity range while also sacrificing accuracy. It makes up for this by being a little bit cheaper, so if you have a use case where you don’t need accuracy and want to save some money, you can use the DHT11.
The following section will explain how to wire the DHT11 sensor to your Raspberry Pi. After wiring the sensor, we will write a Python script to read data from this temperature and humidity sensor.
-
Pi My Life Up ☛ Running Zigbee2MQTT on your Raspberry Pi
Since the Raspberry Pi does not come with a Zigbee transceiver, you will need to buy a USB one to plug in. You can get these relatively cheaply but refer to the list of supported devices on the Zigbee2MQTT website before investing in one.
By the end of the following section, you will have the Zigbee2MQTT bridge running on your Raspberry Pi.
-
Ken Shirriff ☛ Reverse engineering the barrel shifter circuit on the Intel 386 processor die
The Intel 386 processor (1985) was a large step from the 286 processor, moving x86 to a 32-bit architecture. The 386 also dramatically improved the performance of shift and rotate operations by adding a "barrel shifter", a circuit that can shift by multiple bits in one step. The die photo below shows the 386's barrel shifter, highlighted in the lower left and taking up a substantial part of the die.
-
Raspberry Pi ☛ Culturally relevant Computing: Experiences of primary learners
Insights into some primary learners' experiences of engaging with culturally relevant Computing lessons that represent their interests and backgrounds.
-
CNX Software ☛ M5Stack releases local server implementations of UIFlow visual programming Web IDE
Visual programming is now a very popular method to teach programming to kids and M5Stack relies on UIFlow for their ESP32-based IoT development kit. Like most other companies, M5Stack provides either a Web IDE accessible from their server or a desktop program available for Windows, MacOS, or Linux, but the company has now released a local server implementation that allows users to run a Web IDE instance in their local network. The local server is available for backdoored Windows 11 x64, MacOS, Ubuntu 22.04, and GNU/Linux Arm (e.g. Raspberry Pi), so I downloaded the Ubuntu version to give it a try on my laptop.