Making an LED blink (and fade)
Just like C-based code benefits from a runtime library with utility functions, Forth can benefit from a set of pre-defined words to talk to the hardware peripherals built-into every F103 µC.This...
View ArticleCutting the serial cord, sort of
There’s a hardware USB device peripheral in every F103 chip. It has been quite a long journey, but the code is now finally at a stage where it can be used as serial console for Mecrisp Forth.You will...
View ArticleWorking on the JeeNode Zero
The JeeNode v6 was created several years ago, to combine the convenience of the then-still-upcoming Arduino IDE with low-power wireless communictation:It all worked – and still works – really well,...
View ArticleSome specs and comparisons
To get an idea of the differences between the original JeeNode v6 and the new JeeNode Zero, we can first of all view them side by side:No more through-hole parts - there are almost no µCs available...
View ArticleThis node speaks Forth (and C)
If you’ve been following the weblog for a while, you may have noticed that there’s a strong Forth wind blowing nowadays at JeeLabs. The JeeNode Zero is designed for use with Forth.Setting up a Mecrisp...
View ArticleTaking the JNZ rev3 for a spin
Let’s make the JeeNode Zero do some simple things. Like blinking LEDs in a continuous loop:The code for this was actually written step by step, and later saved in a file called e-leds.fs:forgetram \...
View ArticleJNZ testing and availability
At the time of writing this (end Dec 2016), there have been three prototyping rounds for the new JeeNode Zero. The current “rev3” board is getting close to the intended final release - the STM32L052 µC...
View ArticleHey, there's a radio in there!
The Forth driver for the RFM69 on the JeeNode Zero is in flib/spi/rf69.fs. It is normally included in core.fs and therefore always available from flash memory. It’s very simple to use: call rf69-init...
View ArticleUltra low-power and coin cells
Let’s explore the current consumption of a JeeNode Zero a bit and see how we can reduce it. The following measurements were all made with a low-cost Voltcraft VC170-1 multimeter, in series with the +5V...
View ArticleA high-resolution sensor node
The JeeNode Zero is intended as sensor node in a Wireless Sensor Network. This requires:a sensor we can read out periodically, such as the BME280being able to sleep with a very low current, as recently...
View ArticleRemote development over WiFi
There’s a fascinating option for the JeeNode Zero, called the esp-link by Thorsten von Eicken. He also created a little board with a switching regulator, the ESP8266, and an FTDI header, and calls that...
View ArticleGoodbye 2016, and hello 2017!
Many very surprising things have happened (or failed to be resolved) in the world in 2016. But as far as this weblog is concerned, it can be summarised as: 52 weekly posts, 92 articles.2016A year ago,...
View ArticleUsing Linux instead of a SerPlus
Uploading code to an STM32 ARM µC is a bit of a chicken-and-egg problem. The traditional setup uses JTAG (or more likely: 2-wire SWD), but this requires a JTAG programmer such as an ST-Link or a Black...
View ArticleForth over USB on STM32F103
Mecrisp Forth and its GitHub mirror make a wonderful interactive environment for a range of powerful ARM-based 32-bit µCs. There are a gazillion low-cost STM32F103-based boards available on eBay and...
View ArticlePerformance and I/O toggling
With all those source lines being sent to Mecrisp, it’s time to look a little more under the hood.Let’s start by pointing out that this article focuses on an STM32F103 µC running at 72 MHz, which is an...
View ArticleA few design changes in rev4
There are not really that many changes from rev3 to rev4 of the JeeNode Zero. The main one was to extend the main header by one more pin, and to move the radio module to other pins so that all of...
View ArticleMaking the silkscreen useful
The JeeNode Zero takes a different approach from most other boards: components are placed on what is considered the bottom of the PCB, with the top free for extensive silk screen labels.Here is the...
View ArticleAnalog over wireless
Let’s put the JeeNode Zero to work a bit, i.e. let’s repeatedly measure an analog voltage through its ADC, send the results over to another node via the radio, and display the received readings.We’re...
View ArticleSending multiple values
The previous article showed how to send a value wirelessly from one node to another, as text.While it’s a good example to start off with due to the simplicity, this doesn’t really scale. It’s tedious...
View Article