ToothPaste Goes Where Your Password Manager Doesn’t

One of the easiest ways of improving security and privacy when using the Internet, and computers in general, is to use strong passwords unique to each site or service. A password manager makes this easy on your phone or computer, but what if you’re in a situation where you can’t install any software on the device you’re logging into? In that case, maybe it’s time to get out the Toothpaste.

The way this creation from [brisk4t] works is that an ESP32-S3 is programmed to act as a keyboard and mouse for any computer it’s plugged into. From there, it connects over an encrypted WEB-BLE connection to another device like a laptop or smartphone. This second device can send text to the ESP32 acting using an extension for Chromium-based browsers, and the ESP32 sends it over the USB connection as if it were nothing more than a standard keyboard. This is all done without having to install any apps or drivers on the target machine, since any machine in the last two or three decades can recognize a USB keyboard and mouse with no problem.

Not only does this allow for easy password input for awkward situations, this can also be used for BIOS where an app couldn’t be installed anyway, for air-gapped systems with no networking, or insecure systems the user doesn’t trust. If you don’t need quite as many bells and whistles, we’ve seen a similar technique pulled off with an ATtiny85.

Mesh Network Telephony Over Bluetooth On Android Phones

Telephony is a bit of a mixed bag. On the one hand, being able to talk to people in far off places is kind of neat, at least in theory. On the other hand, you’re usually reliant on a centralized network, which isn’t ideal to the mindset of most hackers.[Gautam]’s MeshLive project deals with that last one, offering a decentralized mesh network solution based on Bluetooth for Android phones that can handle both voice and video.

Rather than relying on dedicated hardware, this particular mesh piggybacks on your phone, and exists only as an Android application. Calls are end-to-end encrypted for both voice and video — though two-way video calling is still experimental. More testing has gone into video broadcasting, where a stream goes out one-way. The capability is available for voice, as well.

Each user has a unique identifier that can be scanned to create contacts, but it isn’t otherwise clearly identifiable to everybody. You’ll only appear with a random name that changes every 15 minutes to other users in range who aren’t your contacts. Range is of course the Achilles heel of this project, since it’s using the Bluetooth hardware of ordinary smartphones. It’s possible to extend the range of Bluetooth significantly with the right hardware, but we imagine most folks aren’t carrying directional antennas around with them. While every phone does forward the signal to as many others as it can, it can only do so for about 20 meters.

Of course LoRa remains the protocol of choice for mesh networking, though it’s normally used for text messages only. We have seen voice packets over LoRa, but anything LoRa requires dedicated hardware while this only requires an app.

Continue reading “Mesh Network Telephony Over Bluetooth On Android Phones” →

Pushing Bluetooth Out To 12 Kilometers

Bluetooth is a short-range protocol that’s great for peripherals and finding your keys, but it’s limited range is mainly a product of how it’s usually implemented. A recent video from [nktbuilds] demonstrates this by extending its range out to 12 kilometers, or around 7.5 miles.

The secret is twofold: one is the antenna, a parabolic unit that captures far more than the dinky dipole in your phone. The other is a very sensitive receiver with a much lower noise floor. What you won’t see here is any extra power than you get stock out of one of those generic coin-sized Bluetooth tracker tags. It’s kind of obvious, in retrospect: grab more signal, lower your noise floor, and get a better result. Still, it certainly wasn’t obvious it would work out to 1200 m, and it’s an impressive feat by [nktbuilds]. We’re going to have to keep it in mind next time we lose our keys.

Of course this doesn’t mean you should jump to Bluetooth for distance communications. You’re still better off sticking with something like LoRA for that, especially since it’s good to hundreds of miles if you can get line-of-sight — or even tens of thousands with the right setup.

Continue reading “Pushing Bluetooth Out To 12 Kilometers” →

The 80s Called: They Say This DIY Phone Is, Like, Totally Rad

Like more than a few of us , [Kevin Noki] is sick of being pulled out of flow state by that annoyingly addictive black rectangle we all carry around. His solution was to build a phone to escape his phone, in a YouTube video we embedded down below. We’d say that phone is straight out of the 1980s, except it’s not quite a phone. It would perhaps be more accurate to say he’s building a Bluetooth handset– actual telephony remains the province of a professional device with regulatory approval, because getting custom hardware on VoLTE is a nonstarter in many places.

He starts out using an ESP32, because he already had one and why not? It’s got bluetooth, after all. Alas, audio quality he was getting through it was a little too crunchy, so he pivoted to use a dedicated Hands Free Profile (HFP) bluetooth module that is purpose built for exactly this kind of application. He’s selling the design on his website, but given how much detail he shows on screen, recreating your own version would be easy enough to save the quid. You’d be missing out on the STL for the fantastic 80s brick he’s made, which may be the most interesting part of the build to us.

We’d likely have jumped right to CAD and printed out a few iterations of the case until we were happy, but [Kevin] takes a more traditional industrial-design approach, mocking up the phone with XPS foam and a manually-operated hot wire cutter. It’s not a step we see makers take very often, but it pays off here– at least for subtracting material, it’s a very quick way to iterate, and he only needs to do one 3D print for the final version. We also like very high-tech acrylic bending jig, which he uses to put some black LED acrylic over the display.

It’s a lot of work to make you less-likely to grab a phone you still need anyway– remember, there’s no cellular modem in this– but, hey, it beats torturing yourself, or worse, a tamagotchi.

Writing An ESP32 Bluetooth Printer Driver In Two Acts

[Bas BotBerg] wanted to use a portable Bluetooth thermal printer to run off reports on sensor data collected by an ESP32-C3 microcontroller. But as is so often the case these days, the only official way to interface with the printer was through a proprietary smartphone application provided by the manufacturer. With no documentation on how the thing works, he set out to reverse engineer the printer’s communications protocol so he could control it from the MCU — but the route he took to get there was a bit different than what we usually see, and is an excellent case study for those who might have similar projects in mind.

The standard procedure for something like this, if it can be called that, is to use Android’s built-in debugging capability to log Bluetooth communications while running the manufacturer’s application. The resulting file can be fed into Wireshark, and with patience and some educated guesses, you can usually work out the various commands and values that get passed to the hardware.

But in this case, [Bas BotBerg] ignored the manufacturer’s software and instead used an application that can query a device and list its Bluetooth Low Energy services and characteristics. Specifically, he looks for services that are marked as writable, and starts pushing data into them to see how the printer responds. For this he uses Python with the Bleak library, as it allows him to rapidly iterate and adapt his code. After a bit of poking and experimentation, he finds the proper incantation to get the printer’s motor to kick on and advance the paper — a critical first milestone that tells him he’s on the right path.

Once [Bas BotBerg] mapped out what data needed to be sent to what endpoints to operate the printer in Python, it was a relatively straightforward process to send those same payloads using C++ code on the ESP32. For extra style points he also brought in the Adafruit GFX library so he could produce icons and more easily format the output of the printer.

It doesn’t look like [Bas BotBerg] has released the code in this case (perhaps if we all ask nicely), but we’ve seen similar efforts to bring open source drivers to these cheap Bluetooth printers for the good of the community.

Rusting An E-scooter (In A Good Way)

It is a classic Hackaday situation. You have an Egret GT E-scooter. It has a screen that shows the usual dash stats, but that led to an annoyance. You could accidentally enter firmware update mode and, from there, enter operational mode without the security PIN. [Ben] couldn’t let that stand, so he reverse-engineered the protocol and rewrote the firmware in Rust. As he put it, “… because I have to break… everything I own…” We get it.

The mobile app was useful for some basic info, since sniffing Bluetooth is fairly easy and analyzing mobile code is, more or less, straightforward. Analysis revealed some data that doesn’t show on the display and that several things are sent back to home base tagged with the scooter’s unique ID — another reason to gut the existing firmware.

Continue reading “Rusting An E-scooter (In A Good Way)” →

Bluetooth Shock Collar Keeps Wearer On Task

Like a lot of us [Liam Kloppers] had a problem with doomscrolling. Unwilling to go cold-turkey because he does find some utility in social media. He tried a number of things before deciding to say “Screw it” and just go full Pavlov on himself with some old-fashioned classical conditioning. Who needs willpower when you have electric shocks to dissuade you?

The key here was finding an electric-shock dog collar that could be controlled via a smartphone application, which meant he could reverse-engineer its Bluetooth protocol and get it linked up to his own software. The initial implementation ties his quick-and-dirty Python control program with a web server living on his laptop, which he’s configured MacroDroid to call on when his personal criterion for ‘doomscrolling’ is met.

With the shock collar wrapped around his leg, [Liam] was ready to test. It turns out dogs are a lot tougher than people, because even when set to a low level, the shock from the device made him toss his phone across the room and had him hesitant to even pick it up again.

Since he couldn’t bring himself to put the shock collar back onto his leg, he’s now thinking of an audible alarm, something we’ve seen work before. If you’re as unhappy with your habits as [Liam], perhaps consider a device like Commodore’s social-media-free phone before resorting to self-electrocution.