lua

It’s only been a few months since the ESP8266 rolled out of some factory in China, and already the community is moving from simply getting custom firmware to work on the device to making the development tools easy to use. That’s huge – the barrier to entry is lowered, getting even more people on board with this very cool Internet of Things thing.

While the majority of the community is settling on using the Lua interpreter firmware, there’s still the matter of getting this firmware uploaded to the ESP. [Peter Jennings] of Microchess fame has been working on a Windows app to upload firmware to the ESP via a serial interface. There’s not much to it, but this will allow you to upload the community-created Lua firmware, set the WiFi credentials, toggle GPIO pins, and give you the ability to write a little bit of Lua in the same window.

If you’re looking for something that isn’t designed exclusively for Windows, there’s an alternative firmware flasher over on the nodemcu Github. This flasher also connects the ESP8266 to a network and uploads firmware. It’s a stripped-down programmer without a serial terminal or the ability to toggle pins, but there are plans for making this programmer cross-platform.

From the great minds behind the NodeMCU Lua interpreter for the ESP8266 comes a proper dev board for the WiFi platform of 2015. They are calling it, the NodeMCU-devkit, and it’s a reasonable, cheap, and breadboardable breakout board for the ESP8266.

The version of ESP8266 used in this project is the ESP-12, the newer, fancier model with RF shielding, a questionable FCC logo, and every single one of the GPIOs exposed on castellated connectors. The rest of the board is a USB to serial converter (the CH340G – probably the cheapest USB to serial chip out there), a few passives, and a USB micro connector. It’s simple, cheap, and open source. You can’t do better than that.

This dev board is explicitly designed to work with the NodeMCU firmware, a Lua-based firmware for the ESP. Already we’ve seen some projects make the Hackaday front page with this firmware. Sure, it’s just a garage door opener, but that’s extremely impressive for a chip that’s only a few months old.

Having trouble wrapping your mind around the need for this kind of thing? He’s actually playing around with eLua, the embedded version of the Lua programming language. In this case the program files are being stored on an SD card. But still, moving that back and forth between computer and embedded project gets old quickly. So he invested the time to write a rudimentary text editor that he interfaces through this terminal window. Above you can see the help screen which lays out all of the applications features. Right now it sounds like the only gotcha for this is the amount of RAM it needs to run. As it stands, the editor will now work an mbed board, but it works just fine on an STM Discovery.

[Karl] loved his mbed – a tiny little ARM-powered microcontroller platform – but he wanted an interactive programming environment. BASIC just wasn’t cutting it, so he decided to bring eLua to his mbed.

When choosing an interactive development environment for microcontrollers, you generally have two choices: old or huge. Sure, there is a middle ground with Python on an ARM, but why not use something explicitly designed for microcontrollers?

To get eLua running on his mbed, [Karl] downloaded the latest version and plopped it on his mbed. The current version, 0.9, doesn’t have support for an SD card, severely limiting its usefulness. [Karl] got around this by wiring up an SD card to the mbed, giving him gigabytes of space for all his development work.

While the AVRs and PICs of the world are stuck with languages like C or worse, the new ARM boards available are more than capable of running a complete eLua development environment, with everything accessible through a terminal. [Karl] even wrote his own editor for the mbed and he’ll shortly be working on a few dozen embedded projects he has in mind.

This 32-bit computer is a project [Bogdan Marinescu] built as a contest entry. Sadly he didn’t win, but he did do an excellent job of documenting the build. Having seen several other home built PC projects we’re familiar with the challenges that go into such a thing, and he found some great solutions to each of them.

He started with an STM32F103ZET6 chip. This is an ARM Cortex-M3 processor which brings a lot of power to the playing field. That being said, generating a VGA signal would pretty much zap the usefulness of the chip for other processes so he offloaded that work on a separate Propeller chip. A microSD card serves as storage for the machine, which runs eLua (embedded Lua programming language). There is 1 MB of external RAM and a PS/2 port for keyboard interface. The system is networked thanks to an ENC28J60 Ethernet controller. Don’t miss the video after the break where you can see several demos running on the system.

This one must have been fun to come up with because it’s got it all. There’s hardware, firmware, networking, and server scripts all working together to create a filing, scanning document center for your business. The best part is that [Janis Jakaitis] was tasked to do this as part of his job (we’re sure there’s a bunch of IT guys shaking their heads at this statement, but it sounds like fun to us!).

The goal was to use an existing document scanner to create PDFs which are then stored in a filing system on the network. Of course it needed to be automatic. The first big issue was that the scanner was USB only, and when connected to a USB-to-LAN bridge the buttons on the device no longer functioned. [Janis] put together an Arduino circuit that added that button, as well as a display to show the status of your scan job.

The next issue is getting the filing system to recognize the document as a unique file. The solution here is to generate a unique barcode label that can be affixed to the page before scanning. Since this is a standalone setup, it was tricky to get the label printer to spit out a unique label. He already had the Arduino working with the scanner, so [Janis] decided to use it to drive this barcode job as well. It calls to a Lua script running on the server, which then pushes the next unique code to the printer.

They started by putting together a small notifier breakout module that could later be attached to their Boobie Board. The module is pretty simple and includes a trio of LEDs to alert you to activity across several online services, though only the Twitter notification module is currently complete. The notifier’s code was written in LUA, and primarily designed to interact with Linux desktops. They do not currently have a Windows compatible version of the code available, but they are more than happy to host it if someone desires to port their code over.

The notifier was put into an old candy tin with a plastic window, which is perfect fit for their project. All in all, the entire thing took them about 40 minutes, with half spent on hardware, half on code. The notifier does just what it was intended to do, but they have a healthy list of improvements that they would like to add, including the use of the other two notifier LEDs.