Hosting A Website On A Disposable Vape

For the past years people have been collecting disposable vapes primarily for their lithium-ion batteries, but as these disposable vapes have begun to incorporate more elaborate electronics, these too have become an interesting target for reusability. To prove the point of how capable these electronics have become, [BogdanTheGeek] decided to turn one of these vapes into a webserver, appropriately called the vapeserver.

While tearing apart some of the fancier adult pacifiers, [Bogdan] discovered that a number of them feature Puya MCUs, which is a name that some of our esteemed readers may recognize from ‘cheapest MCU’ articles. The target vape has a Puya PY32F002B MCU, which comes with a Cortex-M0+ core at 24 MHz, 3 kB SRAM and 24 kB of Flash. All of which now counts as ‘disposable’ in 2025, it would appear.

Even with a fairly perky MCU, running a webserver with these specs would seem to be a fool’s errand. Getting around the limited hardware involved using the uIP TCP/IP stack, and using SLIP (Serial Line Internet Protocol), along with semihosting to create a serial device that the OS can use like one would a modem and create a visible IP address with the webserver.

The URL to the vapeserver is contained in the article and on the GitHub project page, but out of respect for not melting it down with an unintended DDoS, it isn’t linked here. You are of course totally free to replicate the effort on a disposable adult pacifier of your choice, or other compatible MCU.

Portal 2 Becomes An Impressively Capable Web Server

Portal 2 is mostly known as the successful sequel to Valve’s weird physics platformer, Portal. It’s not really known for being a webserver. That might change, though, given the hard work of [PortalRunner].

Quite literally, [PortalRunner] hacked the Source engine and Portal 2 to actually run a working HTTP web server. That required setting up the code to implement a TCP network socket that was suitable for web traffic, since the engine primarily functions with UDP sockets for multiplayer use. This was achieved with a feature initially put in the Source engine for server management in the Left 4 Dead games. From there, the game engine just had to be set up to reply to HTTP requests on that socket with the proper responses a visiting browser expects. If the game engine responds to a browser’s connection request with a bunch of HTML, that’s what the browser will display. Bam! You’ve got a web server running in Portal 2.

From there, [PortalRunner] went further, setting things up so that the status of in-game objects effects the HTML served up to visiting web browsers. Move objects in the game, and the served web page changes. It’s pretty fun, and the complexity and features [PortalRunner] implements only get more advanced from there. When he gets into stacking companion cubes to write HTML in visual form, you’ll want to applaud the Minecraftian glory of it all.

The devil is really in the details on this one, and it’s a great watch. In reality, making Portal 2 into a simple web server is far easier than you might have thought possible. Valve’s physics masterpiece really is popular with hackers; we see it popping up around here all the time. Video after the break.

Continue reading “Portal 2 Becomes An Impressively Capable Web Server”

Webserver Runs On Android Phone

Android, the popular mobile phone OS, is essentially just Linux with a nice user interface layer covering it all up. In theory, it should be able to do anything a normal computer running Linux could do. And, since most web servers in the world are running Linux, [PelleMannen] figured his Android phone could run a web server just as well as any other Linux machine and built this webpage that’s currently running on a smartphone, with an additional Reddit post for a little more discussion.

The phone uses Termux (which we’ve written about briefly before) to get to a Bash shell on the Android system. Before that happens, though, some setup needs to take place largely involving installing F-Droid through which Termux can be installed. From there the standard SSH and Apache servers can be installed as if the phone were running a normal Linux The rest of the installation involves tricking the phone into thinking it’s a full-fledged computer including a number of considerations to keep the phone from halting execution when the screen locks and other phone-specific issues.

With everything up and running, [PelleMannen] reports that it runs surprisingly well with the small ARM system outputting almost no heat. Since the project page is being hosted on this phone we can’t guarantee that the link above works, though, and it might get a few too many requests to stay online. We wish it were a little easier to get our pocket-sized computers to behave in similar ways to our regular laptops and PCs (even if they don’t have quite the same amount of power) but if you’re dead-set on repurposing an old phone we’ve also seen them used to great effect in place of a Raspberry Pi.

200 Pound, WiFi Deploying Robot Ran Over My Foot

[Adam Bercu] and [Dan Landers] from Artisan’s Asylum in Somerville, MA brought a very, very cool toy to Maker Faire this year. It’s a two hundred pound WiFi repeater deploying robot able to amble across unforgiving terrain and my foot.

The robot is controlled through a web interface with the help of a front-mounted web cam with pan and tilt controls. All the signals are sent through a WiFi connection to a node.js web server; not the best way to communicate with a robot over long distances, but [Adam] and [Dan] have a few tricks up their sleeve.

On the back of the robot are two Pelican cases loaded up with a battery and a Linksys WRT54G wireless router. When the robot reaches the limits of its range, it activates a solenoid, dropping a WiFi repeater. This repeater has enough battery juice to stay powered for about a day and a half, meaning the robot can make multiple trips to deploy a wireless network through some very hostile terrain. Perfect for disaster and search and rescue operations.

There are two videos after the break: the first is [Dan] going over the capabilities of his tank bot and the second is a short demo of the bot tearing up the grass at Maker Faire.

Continue reading “200 Pound, WiFi Deploying Robot Ran Over My Foot”

Using An Android As A Webserver

In the latest episode of XDA TV [Adam Outler] turned his Android phone into a webserver. At first this might sound comical, but the ever-increasing power of our handhelds makes it a pretty legitimate option. It’s hard to come up with concrete uses off the top of our head, but we’re sure there’s value in being able to pull the phone out of your pocket and serve some content.

The app BotBrew Basil makes the installation process nearly automatic. It gives you point-and-click access to install the lighttpd webserver package and set the daemon to run automatically at boot time. That’s it! Of course you need to supply your own HTML to be served. [Adam] used an HTML5 website template for this.

Next you also need a way to resolve the address of the phone. In this case it’s assigned a static IP from the router, and a dynamic DNS service provides a link that maps to the router’s location. But since these phones are running Linux (at least on the lowest level) it should be pretty easy to add a cron job which will send IP address updates to the service if you want to take the ‘webserver’ out in the world with you. You can watch the entire video after the break.

Ironically this is a big hardware upgrade for [Adam’s] webserver. The previous version was running from an Evalbot.

Continue reading “Using An Android As A Webserver”

Another Approach To Power Meter Data Harvesting

[Dodgy] wrote in to talk about his power meter data harvesting programs. This uses the same hardware by CurrentCost as the hack we looked at over the weekend but [Dodgy’s] implementation is different. It’s separated into two parts, the first is a webserver written in C that harvests the data and makes it available at an address on the network, the second is written in Perl to format and upload data to Google PowerMeter.

The C program serves data on a configurable port, defaulting to 3090. All of the data can be accessed in one line of code by loading http://127.0.0.1:3090, or individually with subdirectories like /watts, /time, or /tempr. From there you can do what you want with the data. The second part of [Dodgy’s] suite is a Perl script that polls the C server and sends the data to your Google account.

One thing that interests us is his comment that you should be able to compile the server side C code for an embedded device. It would be a nice energy savings to be able to upload data regularly without a PC running constantly.

Arduino Webserver

The Arduino platform should be perfect for throwing together a lightweight webserver because of the availability of quality shields that take care of the hardware for you. As [Ovidiu Predescu] found, there are a few hiccups along the way and he’s put together a guide that covers the workarounds. Specifically, using an Ethernet shield and data logging shield at the same time produces a bus conflict which he sidesteps by cutting the CS pin trace on the data logging board and moving it to a different pin. There is also a bug with one of the chips on the Ethernet shield that is fixed using a similar method. So if you’re not just going to etch your own webserver hardware maybe this is the next best thing.