Making a radio controlled tank – Part 2 – PCBs

With the mechanics somewhat decided on, the control circuitry was the next on the list. After ‘mastering’ radio control, temperature sensing and internet connectivity, I was pretty well versed with the Arduino ecosphere, and felt pretty comfortable making my own PCBs with the help of OSHPark.

I felt the tank needed multiple separate boards, not only to compartmentalize functionality but to work around the maximum board size in the free version of Eagle I was using to design the circuit boards. After much deliberation, I settled on 4 boards; control, connectivity, LED, and power.

Continue reading Making a radio controlled tank – Part 2 – PCBs

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.