While not being wireless, if only electrical isolation is desired, digital isolators such as the ADUM3201 are widely available.Proprietary 433MHz/2.4GHz off the shelf serial bridges often have fixed bitrates and lack proper transport encryption.Bluetooth based solutions have very limited range, and they are typically much more difficult to work with in general.consrv: Go binaries are statically linked and too large for the extremely limited amount of storage space available, plus running yet another SSH server while dropbear is already provided by OpenWrt by default feels very redundant.Lack of transport security is still a dealbreaker. ESP32-Serial-Bridge: Similar to the project above, but it’s transparent TCP only.esp-link: While being very affordable, it offers no transport security.Here are some alternatives solutions and ideas that were considered in my research, and why they were not selected for this project: ![]() OpenWrt offers an easy-to-use configuration web interface for setting up the Wi-Fi connection, has (mostly) up to date userspace software, and is pretty much the only Linux distribution that will work on these routers anyway. SSH is the best option for me because the “ trust on first use” design has a much lower setup overhead compared to a traditional PKI based TLS/HTTPS setup, while still remaining secure. Transport security is highly desirable because having my login credentials transmitted in plaintext is highly undesirable, even on my own LAN.Īfter some consideration, I have decided running picocom over an SSH session, on a battery powered OpenWrt device would be the easiest to implement for me. There is no need for Bluetooth connectivity or smartphone apps for me personally, all I want is something that I can connect to locally and lets me interact with a serial console over a secure connection. With this information in mind, I figured it’s easier for me to make my own wireless serial console adapter with some of the old portable routers I have lying around. These HAME models are later cloned by other manufacturers and then sold as generic products, and they can still be found to this day on places such as eBay and AliExpress. The Mini model looks almost identical to MPR-A5, the Std/Pro one looks almost identical to MPR-A1, and the XL looks almost identical to MPR-A2. ![]() From the looks of it, most of their Wi-Fi enabled options look extremely similar to a series of older “3G router” products manufactured by HAME. Some research later, a series of products called Airconsole from Cloudstore Limited perked my interests. While talking to some network engineers, I found that some people had Wi-Fi or BLE based wireless console adapters, which allow them to access the RS-232 serial consoles wirelessly. The UART cable length limit makes it difficult to work with on a messy desk, as a USB hub or at least an extension cable would always be required, further contributing to the clutter, and the bare PCBs have risks of being accidentally shorted out by my other metallic tools if not careful. To make matters worse, should something bad happens to my board and a high voltage was sent to the tx/rx pins, it can potentially go back to my computer and destroy my PCH, since EHCI/XHCI controllers are typically integrated in the PCH nowadays. This makes diagnosing and debugging bootloader related problems very unpleasant. Term_exitfunc: reset failed for dev UNKNOWN: Input/output errorīy the time I could reconnect with my terminal software ( picocom in this case), I would have already missed a lot of critical messages printed by the bootloader. Whenever the target board is powered up, there is always a small chance that a power surge will happen due to ground loop interference, which causes my connection to be interrupted on power-up: FATAL: read zero bytes from port ![]() I’ve used a lot of USB serial adapters over the years, but they all seem to have two major drawbacks that are difficult to overcome: Serial console is one of the most important ways of communicating with embedded Linux systems.
0 Comments
Leave a Reply. |