Spying On The ESP32’s GPIO

The ESP32 has been a go-to microcontroller platform for a while now, thanks to its versatile capabilities, integrated Wi-Fi and Bluetooth connectivity, and low power consumption. It’s ideal for a wide range of projects especially those revolving around IoT, partially because of all of the libraries and tools available for it now. The latest tool from [The Last Outpost Workshop] adds a feature we didn’t know we wanted until now: a webserver showing real-time updates of what all of the GPIO pins are doing.

The live GPIO pin monitoring library sets up the ESP32 to stream information about what all of the pins are doing in real time to a webserver, which displays the information as a helpful graphic. The demonstration in the video below shows and example troubleshooting a situation where the code is correct but there’s a mistake in the wiring, helping to quickly identify the problem and hopefully eliminating a wild goose chase for a bug in the software. The library can be quickly installed using the Arduino IDE and only requires the use of one other library and a few lines of code to get everything up and running.

As far as a debugging tool goes, something like this could save a lot of us a significant amount of time, especially with how easy it is to set up. A real-time look into the pins and their behavior, including those set up for PWM, is invaluable for plenty of situations. Of course if you’re building something like a real-time operating system that needs responses within a very specific interval you may want to look at more in-depth strategies for probing the GPIO.

Thanks to [Bob] for the tip!

Continue reading “Spying On The ESP32’s GPIO”

A Web Server, The Sixteen Bit Way

If you were to talk about sixteen bit computing in retrocomputing circles, misty-eyed reminiscences of the ST or Amiga would emerge. Both fine platforms, but oddly the elephant in the 16-bit room has become a victim of its own success. DOS, the granddaddy of all PC operating systems, seems oddly overshadowed by its 68000-based competitors in a way it certainly wasn’t back in the day. Perhaps it’s the often-atrocious graphics when cards designed for business graphics were pressed into gaming service, but it’s easy to forget that DOS PCs were the powerhouses of their day. They still pack a punch even in 2023, as [Lunduke] is here to show us by running a DOS web server. Take that, nginx! Continue reading “A Web Server, The Sixteen Bit Way”

PCjr WebServer Hits 2500 Hours Uptime

When [Mike] fired up his PCjr webserver back in March, he probably wasn’t expecting it to go viral. 2640 hours later, here we are! Not only has his machine run continuously for over 110 days, it also is surviving a global hug of death. All of this is thanks to some very special software.

We see lots of old machines here on Hackaday. We also see lots of minimal web servers. But we don’t see many that can run for thousands of hours, offering up to 8 simultaneous connections. Curious if jr is still up? Check brutmanlabs.org. The whole website is hosted on the 40-year-old machine. If you want to be a bit more kind, here’s a direct link to the text-only status page. While many of those hours were idle, currently lots of folks are hitting that little V20 CPU, so please give it a few seconds to respond.

The PCjr has a few upgrades — the aforementioned V20 CPU upgrade, a jrIDE sidecar, and a memory upgrade to 736 kB to name a few.  Ethernet connectivity is via a Xircom parallel port adapter – which is circa 1993.  The operating system is IBM PC DOS 5.02. One thing to note is that all these upgrades were possible back in the mid-1980’s when the PCjr was still current.  [Mike] could run the system with an MFM hard drive, an ISA ethernet card (via an adapter), and use the original CRT monitor. Older DOS versions would work too — though partition sizes would be limited. The “modern” conveniences are just to keep from wearing out vintage hardware which is quickly becoming rare.

The real glue that holds this all together is [Mike’s] own software: mTCP. mTCP is a full set of tools for running internet applications on systems running MS-DOS or a compatible OS. We’ve seen quite a few mTCP projects over the years.  [Mike] has worked tirelessly testing the software, ensuring that it is stable and reliable.

Software is never perfect though – one thing [Mike] didn’t implement is a log roller. Since he has logging turned on, the PCjr was slowly filling up its hard drive. Once the drive was full, mTCP would perform an orderly shutdown — but the uptime will be reset.  [Mike] was able to go in and switch off logging with  DOS’s DEBUG command. A live patch is not the way one would normally update software – but the fact that he was able to do it shows how deep [Mike’s] knowledge of the software goes.

[Mike] has even provided a live stream recording of the little PCjr handling requests from all over the globe.

Continue reading “PCjr WebServer Hits 2500 Hours Uptime”

A Lightweight Smart Home Server

Working towards automating a few things in a home often seems simple on the surface, but it’s easy for these projects to snowball into dozens of sensors and various servos, switches, and cameras strewn about one’s living space. The same sort of feature creep sneaks into some of the more popular self-hosted home server platforms as well, with things like openHAB requiring so much computing power that they barely function on something like a Raspberry Pi. [Paulo] thought there should be a more lightweight way of tackling a project like this, and set about building his own smart home server with help from some interesting software.

The project is based around the Dirigera hub from Ikea, partially because [Paulo] is planning to use other smart home devices from Ikea as he can easily find them where he is, and also because these devices tend to use Zigbee, a non-proprietary communications standard. This means that if he ever wants to swap out the hub for another one in the future, it won’t be difficult to do. From here the major hurdle is that using the default software from these devices is fairly limiting, so [Paulo] reached for a Raspbee 2 Zigbee gateway for use with a Raspberry Pi and an extremely lightweight and customizable web server called Mako to make this happen. Using Lua as the high-level language to tie everything together he was able to easily deploy the server to control the Ikea hub and devices and automate them in any way he sees fit.

While it is true that software like openHAB and others already exists to do virtually any home automation task that could be imagined, if you’re looking to do something with a bare minimum of computing power something like [Paulo]’s solution is likely going to be the fastest and most reliable method of getting a few things automated around the home. If you’re looking for something completely open source and built from the ground up, though, we have seen a few alternative smart home solutions like this one which don’t rely on any proprietary hardware or software, but do take a little bit more effort on the user’s part.

Commodore 64 Web Server Brings 8-Bit Into The Future

These days, most webservers are big hefty rackmount rigs with roaring fans in giant datacenters. [naDDan]’s webserver is altogether more humble, as it runs on a single Commodore 64. 

The C64 is running Contiki OS, an operating system for 6502-based computers. It’s built with an eye to networking, requiring ethernet hardware for full functionality. In [naDDan]’s case, he’s outfitted his C64 with an ETFE network adapter in the cartridge port to get it online. It serves up the HTML file off a 1541C floppy drive, with the drive buzzing away every time someone loads up the page.

The page itself is simple, showing some basic information on a simple blue background. There is some scrolling text though, as is befitting the 8-bit era. It’s also available in four languages.

[naDDan’s] server can be found here, according to his video, but at the time of writing, it was down for the count. Whether that’s due to a dynamic DNS issue or the simple fact that an 8-bit 6502 isn’t up to heavy traffic is up for debate. Regardless, try for yourself and see how you go. Video after the break.

Web Server Like It’s 1998 With This Restored Internet Appliance

Hackaday readers fit into two broad categories: those who experienced the wild and woolly early days of the Internet, and those who are jealous that they missed it. And it’s safe to say that both groups will get something out of this aggressively Web 1.0 retro experience, courtesy of a server that was actually part of it.

This comes to us via The Serial Port, a virtual museum dedicated to 90s technology, where curators [Mark] and [Ben] managed to find a pair of Cobalt RaQ 3 servers from the late 1990s. The RaQ was the first true “Internet appliance,” designed to be as simple as possible to set up and operate. If you wanted to get your small business online, machines like these were just the ticket. They were designed to be as plug-and-play as possible, and they did a pretty good job of it, at least for the time.

The machines that showed up were quite the worse for the wear, which is understandable given the decades since they were last relevant, but that just makes it all the more fun to get them going again. One didn’t even come close to booting, but the other showed more promise.

The video below is the first of a three-part series, and has a nice introduction to the RaQ and its important place in the early Internet, as well as a peek inside the two machines. That revealed some leaky caps that needed replacement in Part 2; after that minor surgery and a little persuasion, the 300-MHz screamer was ready for a test run. It worked, and The Serial Port put it right to work in Part 3 hosting a gloriously retro home page. Hit the link at the top of the article and enjoy the 90s all over again — the visitor counter, the mixed fonts, the “Under Construction” animated GIF, and the reminder to bookmark this page in your browser, which was probably Netscape Navigator. We love the guestbook, too. But — no marquee?

Nice job, [Mark] and [Ben], and kudos for keeping this little slice of computing history alive.

Continue reading “Web Server Like It’s 1998 With This Restored Internet Appliance”

Pi Microcontroller Still Runs A Webserver

At first glance, the Raspberry Pi Pico might seem like a bit of a black sheep when compared to the other offerings from the Raspberry Pi Foundation. While most of the rest of their lineup can run Linux environments with full desktops, the Pico is largely limited to microcontroller duties in exchange for much smaller price tags and footprints. But that doesn’t mean it can’t be coerced into doing some of the things we might want a mainline Pi to do, like run a web server.

The project can run a static web page simply by providing the Pico with the project code available on the GitHub page and the HTML that you’d like the Pico to serve. It can be more than a static web page though, as it is also capable of running Python commands through the web interface as well. The server can pass commands from the web server and back as well, allowing for control of various projects though a browser interface. In theory this could be much simpler than building a physical user interface for a project instead by offloading all of this control onto the web server instead.

The project not only supports the RP2040-based Raspberry Pi Pico but can also be implemented on other WiFi-enabled microcontroller boards like the ESP8266 and ESP32. Having something like this on hand could greatly streamline smaller projects without having to reach for a more powerful (and more expensive) single-board computer like a Pi 3 or 4. We’ve seen some other builds on these boards capable of not only running HTML and CSS renderers, but supporting some image formats as well.

Continue reading “Pi Microcontroller Still Runs A Webserver”