Forth has a strong following among embedded developers. There are a couple of reasons for that. Almost any computer can run Forth, even very small CPUs that would be a poor candidate for running programs written in C, much less host a full-blown development environment. At its core, Forth is very simple. Parse a word, look the word up in a dictionary. The dictionary either points to some machine language code or some more Forth words. Arguments and other things are generally carried on a stack. A lot of higher-level Forth constructs can be expressed in Forth, so if your Forth system reaches a certain level of maturity, it can suddenly become very powerful if you have enough memory to absorb those definitions.
If you want to experiment with Forth, you probably want to start learning it on a PC. There are several you can install, including gForth (the GNU offering). But sometimes that’s a barrier to have to install some complex software just to kick the tires on a system.
Continue reading “Browsing Forth”
Until recently, computer-aided design (CAD) software was really only used by engineering companies who could afford to pay thousands of dollars a year per license. The available software, while very powerful, had a very high learning curve and took a lot of training and experience to master. But, with the rise of hobbyist 3D printing, a number of much more simple CAD programs became available.
While these programs certainly helped makers get into 3D modeling, most had serious limitations. Only a few have been truly open-source, and even fewer have been both open-source and parametric. Parametric CAD allows you to create 3D models based on a series of parameters, such as defining a cube by its origin and dimensions. This is in contrast to sculpting style 3D modeling software, which is controlled much more visually. The benefit of parametric modeling is that parameters can be changed later, and the model can be updated on the fly. Features can also be defined mathematically, so that they change in relation to each other.
Continue reading “Open-Source Parametric CAD in Your Browser”
LED matrix projects are all over the place, but this one is interesting for its simplicity: it’s an LED matrix that is driven straight from an ESP8266 board. [Ray] put it together as a quick project for his students to teach the basics of LED programming.
Just get on the same network and load up the module’s WiFi address for a graphical representation of the 5×7 LED matrix. Pick a color, turn pixels on or off, or choose a predefined pattern and send it to the hardware. This is a powerful way to get use input and with this as a guide it’s fast to set up for pretty much an application you can think of. Just work your way through the documents he put together for the workshop (Zip file link), including all of the code and the slides he used to run the workshop.
Continue reading “Web Matrix Control Proves Power of ESP8266”
LISP is a polarizing language. Either you love it or you hate it. But we’ll put aside our personal preferences to bring you a good hack. In this case a LISP environment running on an ESP8266. [Dmitry] is on the “love it” side of the fence — he’s been waiting for an excuse to code up a LISP interpreter for a while, and he found one in the ESP8266.
One weekend bled into the next, but he got the system running, connected to the network, and had LEDs blinking! In the end, he even managed to squeeze in some optimization for memory’s sake. Pretty cool, and because it takes advantage of an already complete system, it can even be made pretty useful. Not bad for a few weekends’ work!
And finally, if Lots of Irritating Silly Parentheses is your idea of a good time, but the wealth of computing resources available on an ESP8266 seem overkill, have a look at Microlisp, running on an AVR. Or go to the opposite extreme, and run a LISP OS on a Raspberry Pi. Whatever you do, don’t forget to close your parentheses! (We’re told that’s a traditional LISPer farewell.)
If you deploy a lot of Raspberry Pi computers, you might find it inconvenient to log into each one to perform different tasks. Orka, an open source project by [Karthik K], is a server that runs on a desktop PC (Windows, Linux, or Mac) and can control multiple Orka clients (that can run on a Pi, or a desktop PC). We understand that [Karthik K] is looking for Mac testers, by the way.
From the server, you can execute commands and create tasks. You can also receive notification when a client PC reaches a threshold (for example, over temperature or too much CPU or RAM usage). You can open a shell on a client and do other operations.
Continue reading “Orka Controls the (Pi) World”
Lastpass is a great piece of software when it comes to convenience, but a recent simple hack shows just how insecure software like it can be. [Mathias Karlsson] nabbed a nice $1000 bounty for its discovery.
The discussion in the HackerNews comment section more-or-less unilaterally agreed that most systems like this have their glaring flaws, but that the overall benefits of having secure passwords generated and managed by software was still worth the risk when compared to having a few commonly reused passwords over multiple sites.
One could get a more secure key manager by using software like KeePass, but it’s missing some of the convenience factor of remote-based services and relies on a user protecting their key files adequately.
Still, as scary as they are, openly discussing hacks like this after responsible disclosure is good because they force companies like Lastpass, who have some very big name clients, to take their code review and transparency more seriously.
If we had a dime for every 555-based noisemaker circuit we see… But this one’s got a twist.
[Tristan] does two things that elevate his sawtooth-wave noisemaker above the norm. First, he gets a clean sawtooth wave out of it so that it sounds about right. Then he manages to make it more or less playable. It’s a refined version of a classic hack.
The first trick is a matter of putting a constant current supply upstream of the timing capacitor. The usual 555-timer circuit just charges the capacitor up from the power rails through a resistor. This is fine if all you care about is timing. But because the current is proportional to the constantly dropping voltage difference, the voltage on the capacitor is an exponential function over time.
We’ve always wanted to implement LED-to-LDR control while writing the Logic Noise series, but never found a reliable way to make it work. It’s cool to see [Tristan]’s efforts. Maybe we’ll pull a 555 out of the junk box in his honor.