How A Smartphone Is Made, In Eight “Easy” Blocks

The smartphone represents one of the most significant shifts in our world. In less than thirteen years, we went from some people owning a dumb phone to the majority of the planet having a smartphone (~83.7% as of 2022, according to Statista). There are very few things that a larger percentage of people on this planet have. Not clean water, not housing, not even food.

How does a smartphone work? Most people have no idea; they are insanely complicated devices. However, you can break them down into eight submodules, each of which is merely complex. What makes them work is that each of these components can be made small, at massive economies of scale, and are tightly integrated, allowing easy assembly.

So without further ado, the fundamental eight building blocks of the modern cellphone are: the application processor, the baseband processor, a SIM card, the RF processor, sensors, a display, cameras & lenses, and power management. Let’s have a look at them all, and how they fit together.

Continue reading “How A Smartphone Is Made, In Eight “Easy” Blocks”

The New-Phone Blues: A Reminder That Hackers Shouldn’t Settle

For all the convenience and indispensability of having access to the sum total of human knowledge in the palm of your hand, the actual process of acquiring and configuring a smartphone can be an incredibly frustrating experience. Standing in those endless queues at the cell phone store, jumping through the administrative hoops, and staring in sticker shock at device that’s going to end its life dunked in a toilet, contribute to the frustration.

But for my money, the real trouble starts once you get past all that stuff and start trying to set up the new phone just right. Sure, most phone manufacturers make it fairly easy to clone your old phone onto the new one, but there are always hiccups. And for something that gets as tightly integrated into the workflows of your daily life as cell phones do, that can be a real bummer. Especially when you find out that your shiny new phone can’t do something you absolutely depend on.

Continue reading “The New-Phone Blues: A Reminder That Hackers Shouldn’t Settle”

Wordle bot

Solving Wordle By Adding Machine Vision To A 3D Printer

Truth be told, we haven’t jumped on the Wordle bandwagon yet, mainly because we don’t need to be provided with yet another diversion — we’re more than capable of finding our own rabbit holes to fall down, thank you very much. But the word puzzle does look intriguing, and since the rules and the interface are pretty simple, it’s no wonder we’ve seen a few efforts like this automated Wordle solver crop up lately.

The goal of Wordle is to find a specific five-letter, more-or-less-common English word in as few guesses as possible. Clues are given at each turn in the form of color-coding the letters to indicate whether they appear in the word and in what order. [iamflimflam1]’s approach was to attach a Raspberry Pi camera over the bed of a 3D printer and attach a phone stylus in place of the print head. A phone running Wordle is placed on the printer bed, and Open CV is used to find both the screen of the phone, as well as the position of the phone on the printer bed. From there, the robot uses the stylus to enter an opening word, analyzes the colors of the boxes, and narrows in on a solution.

The video below shows the bot in use, and source code is available if you want to try it yourself. If you need a deeper dive into Wordle solving algorithms, and indeed other variant puzzles in the *dle space, check out this recent article on reverse engineering the popular game.

Continue reading “Solving Wordle By Adding Machine Vision To A 3D Printer”

Finally, A Use For Old Cellphones

In what is now a three-year long search, I’ve finally found the perfect use for an old cellphone. And with it, the answer to a burning question: Why aren’t we hacking cellphones?

First, the application. The Octo4a project lets you use an old Android phone as a 3D printer server, web interface, and even time-lapse camera to make those nice movies where the print seems to grow up out of nothing before your eyes. It’s the perfect application for an old phone, making use of the memory, WiFi, graphics capabilities, and even the touch-screen if you want local control of your prints.

Connecting to the phone was the main hurdle that I’ve always seen in developing for cellphone projects, because I have robotics applications in mind. But Octo4a gets around this with low or no effort. Most 3D printers are designed to run on USB anyway, so connecting it to the phone is as simple as buying a USB OTG cable. With the USB port taken over, powering the phone long-run becomes a tiny problem, which can be solved with a Y-cable or a little solder. Keep the OS from going to sleep, somehow, and it’s problem solved!

But here’s why this isn’t a solution, and it points out the deeper problem with cellphone hacking that many pointed out in the comments three years ago. Octoprint is written in Python, and because of this is very easy to write extensions for and to hack on, if that’s your thing. When I first saw Octo4a, I thought “oh great, a working Android Python port”. Then I went to dig into the code.

Octo4a is written in Kotlin and uses the Gradle framework. It’s a complete port of Octoprint, not just to a different platform, but to a different programming language and to an almost entirely different programming paradigm. My hat is off to [feelfreelinux] for doing it, but my guess is that the community of other people fluent enough in Kotlin and Python to help port across upstream changes in Octoprint is a lot smaller than the community of Python programmers would have been. Octo4a is a great project, but it’s not a walk in the park to develop on it.

So all of you who wrote in the comments to my previous piece that it’s the Android software ecosystem that’s preventing phone reuse, well here’s the exception that proves your rule! A dedicated and talented, multi-lingual developer community could pull it off, but the hurdle is so high that few will rise to it.

Anyway, thanks [Feelfree Filip] for your great work! I’ll be putting this on my old S4.

Build Yourself A Nifty Cable Smartphone Mount

Smartphones have supplanted cameras in day to day use for the vast majority of purposes. However, unlike cameras, they don’t come with tripod mounts or any real good way of holding them in a set position. [Mrballeng] has built an excellent mount, however, that uses cable to hold a smartphone in all manner of positions, for photography or other purposes.

The mount relies on vinyl-coated steel cable. Upon this cable are slotted four blocks that are 3D printed out of resin. The blocks are also fitted with strong magnets. This allows them to be positioned along the vinyl cable while sticking themselves in place thanks to the magnetic attraction to the steel core. The blocks can also be used to attach the cable to magnetic objects like drywall screws or light fittings.

Using the mount is simple. The cable is wrapped around the phone and the blocks cinched up to hold it in place. Then, the magnets in the blocks can be used to hold the phone to walls or other surfaces.

It’s a tidy build, and one we can imagine using regularly if we had one. Of course, there’s no reason you couldn’t produce the parts on a more common filament-based printer, either. We’ve seen some other great smartphone photography hacks too, like this mod that lets you use your phone as a microscope for under $10. Video after the break.

Continue reading “Build Yourself A Nifty Cable Smartphone Mount”

Giving Control Of A Smartphone Robot To A Raspberry Pi

Most gadgets that interface with smartphones have a rather short lifespan and inevitably end up as E-waste. Unless hackers give them a second life, as is the case with the Romo, a little smartphone-controlled robot. [David Goeken] has successfully reverse-engineered the communication protocol to allow the Romo to controlled Raspberry Pi (or microcontroller)

The Romo was a little iPhone-controlled robot brought to market with a Kickstarter campaign back in 2013. It originally used the audio jack from the iPhone for the control interface, but was quickly followed by an updated version that used iPhone 4’s 30 pin connector and later the Lightning port. Romotive, the company behind Romo, eventually went out of business, but fortunately, they open-sourced the IOS app and the firmware. This has led to a few third-party apps currently on the app store.

[David] wanted to use other hardware for control, so he set about reverse-engineering the protocol using the open-source software and a logic analyzer. Unsurprisingly, it uses a serial interface to send and receive commands, with two additional pins to detect the connection and wake up the Romo. After breaking out the interface header on the board, he was able to modify the Romo to mount a Raspberry Pi Zero, and power it using the internal battery.

[David] has not made his code public yet, but it sounds like he plans to. It looks like Romo’s can be a fun little experimentation platform, and they can be found for cheap on eBay. We covered another cool Romo hack back in 2014, which used a projector and vision system to create a Mariokart-like game.  For a completely open-source smartphone robot, check out the OpenBot.

How To Drive Smartphone Screens Over HDMI

Compared to most small LCDs sold to makers, smartphone screens boast excellent color, brightness, and insanely high resolution. Unfortunately, driving them is rarely straightforward. In an attempt to make it easier, [peng-zhihui] set about developing tools to allow such screens to be driven from a simple HDMI feed. For those whose Chinese is a little rusty, the Google Translate link might prove useful.

The first attempt was using Toshiba’s TC358870XBG ASIC, capable of driving screens over MIPI DSI 1.1 from an HDMI input. [peng-zhihui] designed a simple test module for the chip based on the company’s evaluation board design, with [ylj2000] providing software to help get that solution off the ground.

However, for now that solution is imperfect, so [peng-zhihui] also experimented with the Longxun LT6911 HDMI to MIPI driver. While cheap, information on the part is scarce, and the company’s own source code for using the hardware is only accessible by signing an NDA. However, [peng-zhihui] made pre-compiled firmware available for those that wish to work with the hardware.

[peng-zhihui] has put these learnings to good use, building a power bank with a MIPI screen using what appears to be the Longxun chip. The device can supply power over USB and also act as an HDMI display.

While it’s early days yet, and driving these screens remain difficult, it’s great to see hackers getting out there and finding a way to make new parts work for them. We’ve seen similar work before, using an FPGA rather than an off-the-shelf ASIC. If you’ve found your own way to get these high-end displays working, be sure to drop us a line!

[Thanks to peterburk for the tip!]