Timestamps and logging
Keeping track of time across different systems is not as straightforward as it might seem: every clock has its own notion of time, and always drifts around to a certain extent. There’s an entire...
View ArticleHow to install JET/Hub
Installation… ah, the “joys” of modern computing! 1. Prerequisites To try out JET, you need: a Raspberry Pi, Odroid, OLinuXino, or similar ARM-based Linux board a working Linux setup on your particular...
View ArticleHub configuration guide
The JET/Hub process has two types of configuration settings: startup configuration, such as how to connect to MQTT and the name of the data store run-time configuration, such as which serial ports to...
View ArticleUsing the built-in database
(This information has been superseded by a newer design with an updated API) The “database” built into JET/Hub is set up as a general-purpose key-value store - i.e. persistent data storage which can’t...
View ArticleFrom crontab to systemd
The crontab “@reboot” approach mentioned in the hub’s installation guide has as benefit that it’s very easy to do, without the risk of messing up anything serious, because it doesn’t involve “sudo”. It...
View ArticleCreating a long-term mess
So you’ve set up a Wireless Sensor Network, i.e. 2 or more “nodes”, talking to each other via RF. This being a JeeLabs article, let’s say you’re using a JeeNode, JeeLink, or other ATmega/tiny-based...
View ArticleCentralised node management
There are a number of ways to avoid the long-term mess just described. One is to make the target environments aware of source code. For example by running a Basic / Forth / JavaScript / whatever...
View ArticleDistributed node functionality
Just to avoid any possible confusion: the case made in the previous article for “centralised node management” is not meant to imply that nodes need to operate in a centralised fashion! This is where...
View ArticleThe JET data store, take 2
This article supersedes this one - but it’s probably still useful to read that original article first. While many of the design choices remain the same, the API has changed a bit. The description below...
View ArticleSystem requirements for JET
One of the main design goals for JET, is that it must run well on very low-power Linux boards. The reasoning is that you really don’t need much computing power at all to manage all the data flows...
View ArticleJET development mode setup
Since JET is intended to remain always-on, at least as far as the hub is concerned, we need to be a little careful how we introduce changes. The way to do this in JET, is to treat the whole system as...
View ArticleA new web front-end design
JET is going to need a web interface. In fact, it’s likely that a major part of the total development effort will end up being poured into this “front-end” aspect of the system. After many, many...
View ArticleInside the PDP-8 hardware
In 1965, computing history was made when DEC introduced a new computer, called the PDP-8. It was the start of a long series of incrementally improved models, later to be followed by the even more...
View ArticleComputer peripherals in 1965
Ok, so now we have our computer. How does it interface to the real world? How do we talk to it? How do we tell it what to do? Do we login to it? Or is it all about switches and blinkenlights? No...
View ArticleHey PDP-8, meet Raspberry Pi!
If you would like to experience for yourself how a computer such as a PDP-8 looks and feels, there are several possible avenues to choose from: get in touch with a museum, friend, or hobbyist who has...
View ArticleSome amazing software feats
The introduction of the PDP-8 series was a disruptive, game-changing event, in that it made computers available to a large group of scientists, engineers, and tinkerers. For the first time, more or...
View ArticleForget what you know, please
In the beginning, there were computers. Programmed with wires, then with binary data (the “stored-program” computer), then with assembly language, and from there on, a relentless stream of new...
View ArticleDSLs and expressiveness
The KEY design choice in Forth is its dual data- and return-stack. Forth is a stack-oriented programming language. Another characterisation is that Forth is a concatenative language. Here’s what this...
View ArticleI/O, ADCs, OLEDs, and RFM69s
Software development in Forth is about “growing” the tools you need as you go along. Over time, you will end up with a set of “words” that are tailored for a specific task. Some words will end up being...
View ArticleStarting Forth on an STM32F1
Here is what we’re after, as Forth Development Environment (would that be an “FDE”?): There are a number of steps needed to use Mecrisp-Stellaris Forth in your own projects (for these articles, we’ll...
View Article