May, 2010Archive for

ATcommon v0.3 (beta, first release)

A suite of minor support libraries (C++) required by the nRF24L01P driver and several other Autonomous Tools projects newly released under the GitHub repository ATcommon. Included libraries: FixedPoint: A cheap fixed point fractional arithmetic implementation. Does not allow overflow; clamps to extremes instead. StateMachine: Borrowing from existing work, implements low-cost parallel (thread) states in a non-threaded environment. MemoryPool: Tracks and implements memory allocation lim...

Templated SPI (AVR/C++): AVR/spi.hpp v0.1

In the same vein as avr/io.hpp, I present avr/spi.hpp, a C++ class wrapper for the AVR SPI bus.  All methods are inlined and disintegrate upon compilation for maximum efficiency. Unlike io.hpp, this class has not been generalized to every AVR device.  Only the ATmega328P series and devices with the same SPI registers and pin locations are supported. Both classes are now hosted in a single GitHub repository entitled AVR_Objects. This repository is licensed under GPLv3 and later.

Nordic nRF24L01+ (nRF24L01P) driver v0.1 (alpha, first release)

Unable to locate an existing C/C++ driver that supports all of the Enhanced Shockburst functions in the Nordic nRF24L01+ (a.k.a. nRF24L01P) and multiple concurrent nRF24L01P devices, I present a C++ nRF24L01P driver for release under GPLv3 (and later).  The driver can be obtained from the GitHub repository Nordic_nRF24L01P_driver.  The driver is currently in v0.1 alpha (fresh out of the oven!). All nRF functionality is supported, such as: Dynamic packet sizes, up to 32 bytes. (The nRF...

Meanwell S-350-12 12VDC power supply

ATX power supplies, as are found in most PCs and cheaply on eBay, shutdown in the event of a current overload (or short circuit) until the 120VAC input is power cycled (disconnected and reconnected). This is a reasonable response in the context of sensitive motherboard components. However, some AT units (e.g. ATR5) carry large inductive loads (kilowatt DC motors) which instantly kill ATX supplies due to their spin-up current surges. The Meanwell S-350-12 switching power supply resembles a...

High Current DC Connectors

Small diameter barrel connectors (1- to 2-pole, different sizes incompatible) are the ubiquitous low-current DC connector, supplying up to 2A.  USB Mini-B connectors supply only about 1.5A max (plenty for logic!), whereas reliable but bulky Molex connectors (2- to 26-pole) can handle 5A.  SAE 2-pole connectors can handle at least 5A, and are hermaphroditic (which simplifies charging, for instance). Servos often use a 3-pin connector, 26- to 22-gauge, where the third wire is a low-current signal ...

Templated drivers and pin access abstraction (AVR/C++): avr/io.hpp v0.1

Born of a discussion on the AVRFreaks GCC forum, I present <avr/io.hpp>.  This header file provides a set of classes that represent each of the possible AVR pins.  Current convention is to use a set of macros, like: #include <avr/io.h> #define GreenLED_DDR DDRB #define GreenLED_PORT PORTB #define GreenLED_BIT PB0 int main(){ GreenLED_DDR |= GreenLED_BIT; GreenLED_PORT &= ~GreenLED_BIT; // ... } This is crap.  The user has a series of opportunit...