Quantcast
Channel: Articles on JeeLabs
Browsing index pages (296 articles)

Bootstrapping CP/M via simh

The next step is actually more of a giant leap: building a working CP/M system from scratch… This can’t be done in one go. Let’s start as simply as possible - which is already pretty steep: decide how...

View Article


PokeMon, the eZ80 monitor

Out of the factory, the eZ80 is totally ignorant: it comes with 256 KB of empty flash memory. This reads as $FF, which corresponds to the “RST 38h“ instruction, a one-byte call to address $0038 (mixed...

View Article


Minimal requirements for CP/M

Even a minimal EZ-Retro setup is very powerful compared to CP/M systems of the 1970’s, costing thousands of dollars, drawing hundreds of Watts, and placed in Boring Bulky Boxes. So let’s start planning...

View Article

A truly minimal eZ80 setup

To check that the eZ80 chip works, we only need to connect it to the Blue Pill with 6 wires: +3.3V and ground (the eZ80 runs at 3.3V, but it has 5V-tolerant I/O pins) a two-wire “Zilog Debug Interface”...

View Article

EZ-Retro: system overview

The EZ-Retro project is about creating a Z80-compatible board capable of running CP/M and based on the eZ80F91 microcontroller from Zilog - it looks like they’re still in business, BTW! That’s “EZ” as...

View Article


Tying SPI and DMA together

If you consider µCs to be incapable of any “serious” data handling, then you’ll be in for a treat. The following design was created for an upcoming project, which needs a fairly high-speed path for...

View Article

Interrupts, tamed at last

Before going into interrupts, why they’re needed, and why they are tricky, let’s first look into an example which does not use interrupts: writing a pass-through USB-to-serial application. Note that...

View Article

SD cards with FAT files

Those little plastic µSD-to-SD card adapters, of which you may have a bunch lying around since they are often included with new µSD cards, make excellent µSD card sockets: There are many libraries (in...

View Article


Stay busy, but also sleep a lot

One of the examples in the multi.fs code contains this little gem: : sleep ( -- ) [ $BF30 h, ] inline ; \ WFI Opcode, enters sleep mode task: lowpower-task : lowpower& ( -- ) lowpower-task activate...

View Article


Sometimes, timers are easier

Multi-tasking is a great mechanism, but there is a drawback: each task needs its own stack. In the case of Forth, it’s even worse because each task needs both a return stack and a data stack. In its...

View Article

Let's try out the multi-tasker

There’s been a multi-tasker hiding in the Embello repository for some time now. It’s a small variation of the one provided as part of the Mecrisp distribution, also on GitHub. The multi-tasker lets us...

View Article

Setting up the Pi software

To turn the Raspberry Pi into a general-purpose uploader / debugger for ARM STM32 chips, we need to set up some software. First of all - the OS. DietPi is a very practical little distribution these...

View Article

Every possible connection

The Raspberry Pi does not really need an introduction: Linux plus some tinkering pins - who could possibly ask for more? It has all the features needed to create a flexible and powerful programming /...

View Article


Faster uploads through SPI

It turns out that a ROM-based serial upload with Folie takes about 22 seconds for a standard Embello install (Mecrisp + always/board/core). While this is fine for occasional re-flashing, it adds quite...

View Article

Several years on a coin cell?

So far, the power consumption of the rotary encoder node has been optimised by taking the current draw from 5.0 mA to 45 µA - that’s an estimated coin cell battery life of 6 months. Unfortunately, this...

View Article


Making an always-on device

It’s all nice and well, but a JeeNode Zero which needs to remain tethered to a host to set it up after each reset is not very useful. Fortunately, this can be fixed using a simple recipe: add these two...

View Article

Cutting the rotary cord

Before moving on to the topic of this article, let’s figure out the problem that came up in the previous one, where adding an OLED display made the rotary encoder readout unreliable. The problem is...

View Article


Connecting a rotary encoder

This exploration is about connecting a rotary encoder switch for use as an infinitely adustable up/down controller. The basic idea is that there are two switches inside, which generate pulses. In the...

View Article

Post-mortem of a bug

As everyone knows, the later a bug shows up in production, the more trouble it is to fix… A while ago, a batch of fresh JeeNode Zero rev4 boards was assembled, in itself the result of quite a bit of...

View Article

How all those JNZs are tested

One of the requirements of the JeeNode Zero rev4, is that each one has to be tested and then end up with the proper software loaded onto it. The obvious way to do this is to connect each board over...

View Article
Browsing index pages (296 articles)


Latest Images