Convolution, anyone?
Right now, the JeeLabs Energy Monitor only tracks and reports three mains pulse counters here at JeeLabs. The smart meter’s P1 serial data source will be added soon, but there have been issues with...
View ArticlePDP-8/L & DF32 disk on FPGA
As final entry in this PDP-8 saga (for now), I’d like to present an FPGA implementation of a small but very functional setup by Ian Schofield of a PDP-8/L with serial console and a whopping 32-kiloword...
View ArticleDebugging an FPGA via a µC
When trying out things in Verilog, one of the struggles I have is understanding what my “noob” code is doing. There’s no such thing as a printf here, obviously. There’s simulation, but that only goes...
View ArticleComposite video from ARM
Some weblog posts tend to take me further away from the usual topics. No worries… it’s just that I want to explore some “outer edges” to better understand complexity & speed trade-offs between µCs...
View ArticleComposite video from FPGA
Last week’s setup was just for warm-up – I wanted to understand the signal generation before bringing it over to an FPGA. Here is the same signal, generated by the sameµC, but passing its data through...
View ArticleTying into SDRAM
Synchronous Dynamic RAM is perhaps the most common form of random access memory - it’s large (MBs, vs SRAM’s KBs), it’s fast (supporting 100 MHz and higher), and it’s low cost due to the widespread use...
View ArticleSo many memories
An EP4CE6 FPGA has 30 KB of built-in “Block RAM” memory. Fast, but limited in size. With SDRAM, you can have megabytes more, but it’s not quite as fast and harder to interface to, due to the periodic...
View ArticleA fast µC to FPGA bus
For reasons which will become clear later, I’d like to exchange data quickly between an STM32 µC and an FPGA. SPI is a serial bus, which can be pushed to several dozen Mbit/sec - but what if we want...
View ArticleBlu-Ray safety copies
Having been bitten by data loss occasionally during the past decades (several of them dumb “operator error”, I must admit), I’ve adjusted my backup strategy a few times.Since I live in an “all-Mac”...
View ArticleLet's start with a Blue Pill
If you search for “stm32f103c8t6 board” on eBay, you will get lots of hits for what is essentially a single product, to be called the “Blue Pill” from now on:The price of these boards is absolutely...
View ArticleGetting started with STM32
ARM Cortex microcontrollers are incredibly powerful 32-bit computers - many not larger than the size of a fingernail, and able to sleep with just a few µA of current draw. There’s a whole bunch of...
View ArticleUSB serial is a good way to go
Note: let’s use “F103” as shorthand to avoid typing “STM32F103C8T6” all the timeThe F103 has a built-in ROM-based boot loader, so there’s no risk of ever damaging it, but it’s quite limited since it...
View ArticleWe need a toolchain and library
Now that the connections and uploading have been dealt with, let’s turn to generating code.First of all, we need a C/C++ compiler: this one. GCC is now at version 5.0, but 4.8 is also fine (there have...
View ArticleLED blinks and serial echoes
Compiling software for the F103 is very easy but – as so often – does take a little preparation. In this case, we will need set up a few build files and make sure they are correct for the F103.But...
View ArticleHooking up an RFM69 radio
It’s time to step things up a bit. Let’s create a wireless node, with an RFM69 attached to an F103 µC, and then see if we can make it sing…We’re going to need two nodes, if we want to actually test...
View ArticleFancy serial with a SerPlus
So far, to upload new code to a Blue Pill, you had to change a jumper, press reset, perform the upload, change the jumper back, and press reset again - this will quickly become very tedious!So why not...
View ArticleStop staring at that screen!
Embedded software development can usually be characterised by the following diagram:In other words: a “host” computer with a cross-compiler, where you enter code, compile it, and upload it to a...
View ArticleInteractive development
Most readers will be familiar with this view:Now that you’ve seen how to build software and run it on the Blue Pill in the traditional way, I am going to switch gears radically:Stop staring at that...
View ArticlePeeling off layers of complexity
As you know, compilers generate code. They take one or more source files and turn them into an executable. In the case of embedded software development, the compiler is actually a cross-compiler...
View ArticlePolish notation and tiny words
Ok, so what is this “Forth” thing like, as programming language?One way to answer this question, is to point to the Forth in 7 easy steps article, published a while back on this weblog. Go ahead and...
View Article