I have successfully implemented a few projects on the STC 15F104E, a Chinese 8051 architecture MCU.
The chip includes EEPROM, and some flexible extensions to the timers which potentially make it more useful than a standard 8051.
I have previously observed that the documentation is poor, and the programming tool is poor.
The project that led to the latest observations was an attempt to implement RC PWM – ON/OFF switch originally on one of these chips as it contained sufficient resources to suit the application. One of those resources was an +/- edge triggered INT0.
The code worked fine, but for only a short and variable period. Essentially, the the main loop was executing fine, the chip stopped triggering the interrupt service routing for INT0 after a variable time from 10s to 1000s… but it ALWAYS stopped working. Cycle the power and the same thing is observed. Continue reading Revised thinking on STC chips
This article describes a remote ON/OFF switch which uses an RC receiver and adapter chip to convert the RC PWM signal into an ON/OFF output. (Suitable RC transmitters are on hand.)
The immediate application is for remote ON/OFF PTT or KEY of a transmitter for field strength testing at various locations.
Remote control hobbies have long used a multi channel digital proportional protocol for control of planes etc. The simplest multi channel receiver has an independent PWM output for each servo.
The PWM signal is a 1000-2000µs pulse with a repetition rate from about 50Hz up to 500Hz or so, the duration of the pulse conveys the information.
The converter chip is a ATTiny25 MCU with firmware that monitors the PWM stream and provides ON/OFF and OFF/ON output pins. For the immediate application, the ON/OFF (or non inverted) output drives a 2N7000 FET with ‘open collector’ output suited to the PTT and KEY lines of most modern transceivers.
The firmware ignores PWM signals with duration outside the range 900µs to 2100µs, and switches ON at 1600µs, and OFF at 1400µs to provide some hysteresis. If PWM input is lost for 125ms, the output will fail safe OFF.
Above is the schematic. The 2N7000 is good for 60V, can handle up to 100mA without a heat sink, and had a body diode to absorb transients if the load is a relay. Continue reading RC PWM – ON/OFF switch
An upcoming project calls for a stand alone GPS logger.
The requirement is for a GPS stream that allows correction using RTKLIB, but this trial is of a lesser GPS as proof of concept.
Above, the equipment consists here of a Ublox NEO-6M based GPS module (~A$15 incl on eBay) at left, an Openlogger (~A$15 incl post on eBay) at right, and a 12V-5V converter (~A$7 from Hobbyking) at bottom. The latter is a 5A converter, way overkill, but it was on hand. The GPS module has a 3V regulator on board for the NEO-6M chip.
Continue reading Trial of prototype stand alone GPS logger
A drive test of the OpenLog logger collecting raw NMEA data in parallel with the TinyTrak (VHF) was conducted. To maximise the performance of APRS, a fill-in digi / iGate was run at my home. The tracker used a 65W transmitter with quarter wave vertical in the centre of the car roof.
Above is an overview of the APRS and OpenLog tracks. Click on the image for a scaleable / zoomable view in Google Maps. Continue reading OpenLog for TinyTrak – drive test
There are a host of factors that contribute to data loss in APRS, to name just some:
- non-standard / sub-standard / poorly configured digipeaters;
- defect ridden iGates that lose, duplicate and corrupt packets;
- poorly configured mobiles;
- network congestion and interference;
- unpredictable equipment failures;
- basic geographical coverage of the network; and
- dependence on the ionosphere for HF APRS.
This article describes an enhancement to the popular TinyTrak (and its clones) to also capture the GPS stream to an inexpensive local data logger.
The logger does not interfere with normal radio APRS, it coexists with it and creates a properly timestamped fine detail log of positions over a very long time, a log that can be post processed into a range of graphic / map and tabular reports.
The datalogger used in an OpenLog. It is a simple logger that writes data to a micro SD card, costs about $A12 (inc post) for the logger and about A$10 (inc post) for a 16GB Class 10 micro SD card. (A slower card could be used, but they aren’t much cheaper.)
Above, the OpenLog data logger.
Continue reading OpenLog for TinyTrak
I had need of a portable serial data logger for proof of concept of a supplementary data logger for an APRS tracker.
The requirement is to capture RS232-TTL data at 4800bps, 8N1 to a data file for later extraction. The logger needs to restart automatically and append new records to the existing file.
A spare Raspberry Pi2 was applied to the job as a headless data logger.
Above is the RPi2 with an inexpensive FTDI USB/RS232-TTL adapter. Only the ground and RD wires attach to the modified TinyTrak. Continue reading A cheap and cheerful data logger
This project is a data logger accessory for Lou Destefano’s (VK3AQZ) RF Power Meter kit (RFPM1).
The RFPM1 develops an analog signal 0-2000mV corresponding to 0-100dB input power range, -85-16dBm. The module described here produces a digital output scaled -85.0 to 15.0 for 0-2000mV input.
The hardware is based on a clone of the Digispark ATTiny85 USB development board, about A$3 incl shipping on eBay. Differently to the original Digispark, the board above has a micro USB connector on board. The vero ‘mother board’ carries a resistor and 10t pot for calibration adjustment. Continue reading A prototype data logger for RFPM1
This article describes an enhancement to the DIY USB password generator, a small USB HID keyboard device that types a password stored in EEPROM automatically when it is attached.
The implementation was on a Digispark ATTINY85 General Micro USB Development Board which was purchased on eBay for a few dollars. The board uses different pin connections to USB to the original. Continue reading DIY USB password generator – (USB PRC) enhanced #1
This article describes an implementation of the DIY USB password generator. It is a small USB HID keyboard device that types a password stored in EEPROM every time it’s attached.
The implementation was on a Digispark ATTINY85 General Micro USB Development Board which was purchased on eBay for a few dollars.
The board uses different pin connections to USB to the original, and requires a hardware jumper from D+ (PB4) to INT0 (PB2).
In the process of changing the code, I updated the V-USB driver. That necessitated quite a few changes to source code.
The updated code was compiled, and tested just fine.
Changed / updated code (includes hex): usb_tiny85_passgen.zip.
This article describes a few methods of bulk renaming of files using Regular Expressions. The first two run in batch mode from the Windows console, the third is an interactive application. Continue reading Bulk file rename using regular expressions on Windows