To see the video better, click twice and bring it up in its own window and enlarge. Otherwise, squint and you can see what's being typed.
So, I ended up modifying the AVR Terminal serial connection application that I had already written, and I added TCP/IP support to it. To go along with it, I wrote some firmware that provides something like a UNIX shell, giving me remote access to all the pins, fuse settings, etc. You can turn on LED's and all that stuff remotely. It even supports adjusting the clock speed in real-time and has a pseudo-password system that gives the framework for Access Control Lists or authentication for root-level commands (like powering down subsystems, etc). Here are some of the things it can do:
- Display your cpu frequency
- Set any pin to input or output
- Read the state of any pin
- Send logic 1 and 0 to any pin to turn on LED's, etc
- Power down and power up the SPI, TWI, USART, and ADC peripherals
- Read the lower fuse, higher fuse, external fuse and lock bits in real-time
- Start timers for automatically timing events and things.
- A framework for an authentication system into EEPROM
- Establish any available clock prescaler in real-time
- Written in C++ and compiled for an ATmega328P
Remove these ads by
Signing UpStep 1What You'll Need
- An stand-alone AVR or Arduino/clone (for detailed instructions on how to make your own, fairly complete stand-alone AVR system including an external crystal, decoupling capacitors, and a regulated power source, see my other instructable).
- A serial or USB connection to your host PC
- The AVR Terminal version that has the embedded TCP/IP server
- Optionally, the AVR Shell (avrsh) if you want to run firmware on your target AVR/Arduino to get access to your peripherals.
| « Previous Step | Download PDFView All Steps | Next Step » |








































Say I wanted to contact a time server?
Thanks for posting this.
Ralph
Well, you have a couple of options. Using the existing connection, you could read serially over the USB for comms from the AVR and then proxy that information out through your PC's internet connection, then back for the reply. Alternatively, you could use an ENC28J60 and a pulse jack to access the ethernet using a custom TCP/IP stack (say, uIP) or even attach a WIZ811 module that manages the MAC/PHY of ethernet plus has a built-in TCP/IP stack on top of it, all accessed via SPI between the MCU and the WIZ811.
Just a few ideas.
Good luck!
-gian
As for source code, I'll be glad to post it up here. Look for it soon.
Cheers!
-gian
/nev/dull