Category: Programming

How fast is an AVR GPIO pin change?

A few months back, I saw this post from my friend Professor Montri Karnjanadecha regarding timing of an Arduino Nano pin. In it, he uses an oscilloscope to test what kind of speeds you can get from alternately pulling high/low a pin. But as he points out, he doesn’t get as much speed as he…


Very successful first peer-to-peer protocol test

I’ve coded up a simple test of the peer-to-peer protocol I’ve been discussing recently. Here is a picture of the set-up: For this test, I have 3 light posts transmitting short 10byte packets as fast as they possibly can given the constraints of the protocol. These constraints basically reduce to: You can’t send a packet…


Please stop interrupting me (more analysis of AVR interrupts)

I have recently been working on designing a peer-to-peer RS485 network protocol with collision avoidance (and maybe even collision detection) for the walkway lights on the land. (Link to last two posts: here and here.) As mentioned in my last post, even though each device is doing its best to detect if another device is…


Building a simple but efficient peer-to-peer RS485 network protocol

In my last post, I mentioned that I am working on a peer-to-peer network protocol for the RS485 network that I am using to communicate between my “smart walkway lights”. In today’s post, I will continue with a general outline of the approach I plan to take. This is all very nerdy, so if you…


Walkway lights, network protocols, masters, and slaves

It has been a bit quieter than usual on this blog recently. It isn’t that we haven’t been up to much. Quite the contrary, it has been very busy. But much of the business (busy-ness) has been either at work. And the land work has mostly just been putting finishing touches on projects that have…