Acoustic Coupling Like It’s 1985

Before the days of mobile broadband, and before broadband itself even, there was a time where Internet access was provided by phone lines. To get onto a BBS or chat on ICQ required dialing a phone number and accoustically coupling a computer to the phone system. The digital data transmitted as audio didn’t have a lot of bandwidth by today’s standards but it was revolutionary for the time. [Nino] is taking us back to that era by using a serial modem at his house and a device that can communicate to it through any phone, including a public pay phone.

As someone in the present time can imagine, a huge challenge of this project wasn’t technical. Simply finding a working public phone in an era of smartphones was a major hurdle, and at one point involved accidentally upsetting local drug dealers. Eventually [Nino] finds a working pay phone that takes more than one type of coin and isn’t in a loud place where he can duct tape the receiver to his home brew modem and connect back to his computer in his house over the phone line like it’s 1994 again.

Of course with an analog connection like this on old, public hardware there were bound to be a few other issues as well. There were some quirks with the modems including them not hanging up properly and not processing commands quickly enough. [Nino] surmises that something like this hasn’t been done in 20 years, and while this might be true for pay phones we have seen other projects that use VoIP systems at desk phones to accomplish a similar task.

Continue reading “Acoustic Coupling Like It’s 1985”

Screenshot of AVRpascal

Pascal? On My Arduino? It’s More Likely Than You Think

The Arduino ecosystem is an amazing learning tool, but even those of us who love it admit that even the simplified C Arduino uses isn’t the ideal teaching language. Those of us who remember learning Pascal as our first “real” programming language in schools (first aside from BASIC, at least) might look fondly on the AVRPascal project by [Andrzej Karwowski].

[Andrzej] is using FreePascal’s compiler tools, and AVRdude to pipe compiled code onto the micro-controller. Those tools are built into his AVRPascal code editor to create a Pascal-based alternative to the Arduino IDE for programming AVR-based microcontrollers. The latest version, 3.3, even includes a serial port monitor compatible with the Arduino boards.

This guy, but with Pascal. What’s not to love?

The Arduino comparisons don’t stop there: [Andrzej] also maintains UnoLib, a Pascal library for the Arduino Uno and compatible boards with some of the functionality you’d expect from Arduino libraries: easy access to I/O (digital and analog ports) timers, serial communication, and even extras like i2c, LCD and sensor libraries.

He’s distributing the AVRPascal editor as freeware, but it is not open source. It’s too bad, because Pascal is a great choice for microcontrollers: compiled, it isn’t much slower than C, but it can be as easy to write as Python. Micropython shows there’s a big market for “easy” embedded programming; Pascal could help fill it in a more performant way. Is the one-man license holding this project back, or is it just that people don’t use Pascal much these days?

While AVR programming is mostly done in C, this is hardly the first time we’ve seen alternatives. While some have delved into the frightening mysteries of assembly, others have risen to higher abstraction to run LISP or even good old fashioned BASIC. Pascal seems like a good middle road, if you want to go off the beaten path away from C.

Via reddit.

JuiceBox Rescue: Freeing Tethered EV Chargers From Corporate Overlords

The JuiceBox charger in its natural environment. (Credit: Nathan Matias)
The JuiceBox charger in its natural environment. (Credit: Nathan Matias)

Having a charger installed at home for your electric car is very convenient, not only for the obvious home charging, but also for having scheduling and other features built-in. Sadly, like with so many devices today, these tend to be tethered to a remote service managed by the manufacturer. In the case of the JuiceBox charger that [Nathan Matias] and many of his neighbors bought into years ago, back then it and the associated JuiceNet service was still part of a quirky startup. After the startup got snapped up by a large company, things got so bad that [Nathan] and others saw themselves required to find a way to untether their EV chargers.

The drama began back in October of last year, when the North American branch of the parent company – Enel X Way – announced that it’d shutdown operations. After backlash, the online functionality was kept alive while a buyer was sought.  That’s when [Nathan] and other JuiceBox owners got an email informing them that the online service would be shutdown, severely crippling their EV chargers.

Ultimately both a software and hardware solution was developed, the former being the JuicePass Proxy project which keeps the original hardware and associated app working. The other solution is a complete brain transplant, created by the folk over at OpenEVSE, which enables interoperability with e.g. Home Assistant through standard protocols like MQTT.

Stories like these make one wonder how much of this online functionality is actually required, and how much of it just a way for manufacturers to get consumers to install a terminal in their homes for online subscription services.

A New Screen Upgrade For The GBA

The Game Boy Advance (GBA) was released in 2001 to breathe some new life into the handheld market, and it did it with remarkable success. Unfortunately, the original models had a glaring problem: their unlit LCD screens could be very difficult to see. For that reason, console modders who work on these systems tend to improve the screen first like this project which brings a few other upgrades as well.

The fully open-source modification is called the Open AGB Display and brings an IPS display to the classic console. The new screen has 480×480 resolution which is slightly larger than the original resolution but handles upscaling with no noticeable artifacts and even supports adding some back in like scanlines and pixelation to keep the early 00s aesthetic. The build does require permanently modifying the case though, but for the original GBA we don’t see much downside. [Tobi] also goes through a ton of detail on how the mod works as well, for those who want to take a deep dive into the background theory.

There has been a lot of activity in the Game Boy Advance communities lately though as the hardware and software become more understood. If you don’t want to modify original hardware, want an upgraded experience, but still want to use the original game cartridges we might recommend something like the Game Bub instead.

Homebrew Tire Pressure Monitoring System

When [upir] saw that you could buy tire valve stem caps that read pressure electronically, he decided to roll his own Tire Pressure Monitoring System (TPMS) like the one found on modern cars. An ESP32 and an OLED display read the pressure values. He didn’t have a car tire on his workbench though, so he had to improvise there.

Of course, a real TPMS sensor goes inside the tire, but screwing them on the valve stem is much easier to deal with. The sensors use Bluetooth Low Energy and take tiny batteries. In theory, you’re supposed to connect to them to your phone, although two different apps failed to find the sensors. Even a BLE scanner app wouldn’t pick them up. Turns out — and this makes sense — the sensors don’t send data if there’s no pressure on them, so as not to run down the batteries. Putting pressure on them made them pop up on the scanner.

Continue reading “Homebrew Tire Pressure Monitoring System”

The Android Bluetooth Connection

Suppose someone came to talk to you and said, “I need your help. I have a Raspberry Pi-based robot and I want to develop a custom Android app to control it.” If you are like me, you’ll think about having to get the Android developer tools updated, and you’ll wonder if you remember exactly how to sign a manifest. Not an appealing thought. Sure, you can buy things off the shelf that make it easier, but then it isn’t custom, and you have to accept how it works. But it turns out that for simple things, you can use an old Google Labs project that is, surprisingly, still active and works well: MIT’s App Inventor — which, unfortunately, should have the acronym AI, but I’ll just call it Inventor to avoid confusion.

What’s Inventor? It lives in your browser. You lay out a fake phone screen using drag and drop, much like you’d use QT Designer or Visual Basic. You can switch views and attach actions using a block language sort of like Scratch. You can debug in an emulator or on your live phone wirelessly. Then, when you are ready, you can drop an APK file ready for people to download. Do you prefer an iPhone? There’s some support for it, although that’s not as mature. In particular, it appears that you can’t easily share an iPhone app with others.

Is it perfect? No, there are some quirks. But it works well and, with a little patience, can make amazingly good apps. Are they as efficient as some handcrafted masterpiece? Probably not. Does it matter? Probably not. I think it gets a bad rep because of the colorful blocks. Surely it’s made for kids. Well, honestly, it is. But it does a fine job, and just like TinkerCad or Lego, it is simple enough for kids, but you can use it to do some pretty amazing things.

Continue reading “The Android Bluetooth Connection”