Mostly about programming

  • 3-button AT89C2051 clock kits.

    I wanted some simpler-to-use firmware for these kits. I’m not bothered about having timers, alarms, countdowns, etc. The features I did want were: I achieved these aims, as follows: Here’s the firmware (hex files) to load to the AT89C2051: 12-hour version: clock12h.ihx 24-hour version: clock24h.ihx And the source code: 12-hour version: clock12h.c 24-hour version: clock24h.c…

  • An Arduino-based programmer for the AT89C2051 chip – part 3

    Part 2 I’ve mainly been writing programs for the AT89C2051 (and relatives) using the SDCC compiler under Linux, so it was inconvenient to run my Windows program for communicating with the Arduino, every time I wanted to program a chip. I’ve now written a Python program, that runs from the command line, so can be…

  • Tera Term macro for Forth

    A macro that paces uploads by waiting for ‘ok.’ at the end of each line, before continuing. When uploading files to Forth running on a microcontroller (Mecrisp is a good choice for the MSP430 chips), the characters can’t just be spurted out at a constant, say, 115200 baud – the Forth compiler can’t keep up,…

  • LGT8F328P ISP programming

    The Logic Green chips are enhanced clones of the Atmel ATMega328 chips, used on Arduinos such as the Uno and Nano. The Logic Green chips will mostly run the same code as the Atmel chips, but they can also operate faster, optionally on a lower supply voltage, and have extra features such as true analogue…

  • LED hourglass kit programming

    This is the kit that uses the STC15W201 (or STC15W204) chip. The -201 has only 1K of FLASH memory for program storage, the -204 has 4K. The chips are interchangeable and have the same pinout – they only differ in the amount of FLASH (and EEPROM) memory they contain. New patterns since making the video!…

  • STC89C I/O Ports push-pull

    The (English) datasheet contains Chapter 4, which explains how the I/O ports work as standard in the traditional 8051 way: so-called ‘quasi-bidirectional’. In this mode, when a ‘1’ is written to a port bit, the I/O floats high, with a weak pull-up resistor, and external devices are able to pull the pin low, so the…

  • 12864B V2.0 LCD module

    It’s 128×64 monochrome pixels, with a backlight, and can display graphics and ASCII text. It can also display Chinese, Japanese, Korean, characters using built-in fonts, but I didn’t investigate those facilities. Using the built-in ASCII font, the text resolution is fairly low – four rows with sixteen characters per row. The graphics can be switched…

  • SH-E 879 clock kit stopwatch

    I first mentioned these kits about six years ago when I blogged about making this Arduino-based programmer for the AT89C2051 chip. The kits are still available on eBay, Banggood, AliExpress, … and there are plenty of variations that still use the AT89C2051 chip, but have more (three) push buttons, a buzzer, or only four digits…

  • Reading Arduino fuses using USBasp from Linux

    Change to the directory where avrdude is located. If you don’t know, you can search for it with: sudo find / -name avrdude (find can take a long time to search the whole filesystem. You can interrupt it with Ctrl-c). For example, on my system (Linux Mint, May 2022) it was in a subdirectory of…

  • Arduino Due in Microchip Studio Part 1

    Detailing my bumbling attempts to get everything working without the complexity of learning ASF. To follow this guide, you’ll need: A Due (obviously), Microchip Studio (formerly known as Atmel Studio, but it’s the same thing) which is free, and an Atmel-ICE Debugger and Programmer. The last item is expensive, but there are probably cheaper alternatives?…

Got any book recommendations?