Software reset Teensy 3.1

For my tank project it was useful to be able to sense when a reset signal is sent and restart the Teensy via software. A quick google later and I found this post by kam42, which describes a macro which does exactly what I needed.

For the sake of completeness, heres a full sketch that would reset every 5 seconds. Don’t do this as I doubt constantly restarting is particularly healthy for the chip.

[c]
#define CPU_RESTART_ADDR (uint32_t *)0xE000ED0C
#define CPU_RESTART_VAL 0x5FA0004
#define CPU_RESTART (*CPU_RESTART_ADDR = CPU_RESTART_VAL);

void setup() {
}

void loop() {
CPU_RESTART
delay(5000);
}
[/c]

This will break the USB serial connection, so your serial monitor will fail, and you’ll have to reconnect.

Sofa LEDs

While on a 48 hour long drink/blackout, the idea was posed that the sofa should have under lighting. Seemed like a reasonable request. With the installation of a projector, the room had to be kept as dark as possible. A few dented shins and it was evident that some kind of low-level lighting was required. Jump to having 2 large pieces of MDF cut to 10mm narrower to the sofa outline and we’re half way to victory. Looking through Ebay it was easy to find LED strips that would be sufficient to wrap around the perimeter of the MDF; it was just a matter of controlling the colours.

sofa-under-lights

Continue reading Sofa LEDs

Capturing serial events

My home automation and monitoring system runs off two separate radio networks; RF12 and XRF. The RF12 network communicates with a JeeNode LED board, which also runs the light strip for the centre cabinet. The XRF network uses a USB stick made by the makers of the XRF radio.

syslog

Both of these devices create a serial port instance on the Ubuntu server, and pass through exactly what is sent or received – either PC to radio, or radio to PC. In order for my web apps to communicate with them, I had to find a way to constantly monitor what was received, and also a way to send commands out.

Continue reading Capturing serial events