TECH 4234
Microprocessor Interface Technology
Fall 2020

Instructor Info

Daniel Kohn
Office ET218
Phone: 678-4515
Office Hours

Course Info

Course Policies
GradeWatch Access

Assignment Submission

Submit Assignments

Required Text

The AVR Microcontroller and Embedded Systems Using Assembly and C: Using Arduino Uno and Atmel Studio by Sarmad Naimi and Muhammad Ali Mazidi 2nd Ed

Author's Website

Parts Kit

Since we will be starting the class in a Virtual mode, the instructor has made parts kits for the semester (this kit suppliments the kit you signed out for TECH 3233 so you do not need to return that kit). You are required to pick up the parts kit the first week of the semester by Signing Up for an Appointment and then coming to ET227 during that time to pick up the kit and sign a Equipment Signout Form. Please note that failure to return BOTH lab kits (TECH 3233 and TECH 4234) by the end of the semester will result in an "F" for the course, so make sure you return it.

As stated in an email, you might want to purchase a Jumper Wire Kit. This will make it easier to connect components to the arduino board and worth the $6 price tag.

Required Software

Atmel Studio 7
Arduino IDE (for avrdude utility)

Online Class

Because of the Covid-19 Virus, TECH4234 will start via Zoom web based video conferencing at the normal class time by clicking on icon (below).

I will also be available during our lab time to assist via Zoom as well.

Classes will be recorded for future reference.

If you have never used ZOOM before, you might want to check out this Video Tutorial and the log in instructions. It is best if you have a mic. A Camera is not required, but I do like seeing who I am talking to. If you do not have a mic, you can ask questions via the Chat function as well. If using a mic, make sure you know how to mute/unmute (to ask questions) and ensure you know how to share your screen so I can see the issues you are having when asking a question on assignments.

Passcode 771279

Video of Lectures

I will be posting the lectures to OneDrive (CLICK HERE) for you to veiw anytime.

Course Outline:

Aug 18Welcome   
Aug 20
Aug 25
Sync SerialSync Serial FundamentalsLecture
Review Chp 10
Lab #1 - Due Sep 29, 2020 at start of class. Click HERE for array String.
Aug 27UART/USARTBasics of UART Communication


Asynchronous Serial (Hackaday)
Uart Lecture
Chp 11
Sep 1
Sep 8
USART (cont)
C Programming and Strings
Dealing with Strings in C

itoa function
 Lab #2 - Multiple parts (Submit final code via online submission). Due Oct 6, 2020 at start of class.
Sep 10
Sep 24
SPIWhat could go wrong: SPI (Hackaday)


SPI Explained (Note code for different uProc)
Lecture NotesLab #3 - Due date Oct 22, 2020.
Oct 1
Oct 6
I2CChp 18

What Could Go Wrong? I2C Edition (Hackaday)
 Lab #5a - get program 18-13 working for RTC. We will replace the uart routines in the sample code and use printf instead.

Due date Oct 27, 2020.
Oct 8
Oct 20
I2C (Cont)  Lab #5b - Add the ADXL345 to the I2C Bus and add code to the previous program to read the accelerometer and output a CSV output to the terminal including time and date, x, y, and z values.

Here is the complete wiring setup.

Due date Oct 29, 2020.
Oct 22
Oct 29
WiFi Using ESP8266  AT CommandsLab #6

We will use a NEW Software Serial Template Software Serial Template* to start this project. Download, unzip and open to start YOUR code.

* minor fix to code. If you downloaded the first version, add a c=0; line to the end of the usart_response() function.

Due Nov, ??, 2020.
Nov 3
Nov 10
WiFi Server  Lab 7 - Using the Software Serial Template and what you learned in Lab #6, we will create a program to set the ESP8266 into server mode, listen for a request and turn on / off and LED via a web request.

Please read THIS PAGE for how to use the ESP8266 in server mode. We will discuss how to parce the web request and control the LED in class (sorry I do not have a write up done for this lab (as of yet).

HTML Form.
Nov 12   Demo of Ethernet Sheild

Reference Links:

ATmega328P Website
ATmega328P / Arduino pinout
C Quick Reference

Tutorialspoint C Programming

VT100 Escape Codes

C Style Guides

Rigol Digital Oscilloscope - 2000 Series
• (note: to use USB Stick, it MUST be formatted as FAT32)

Arduino Ethernet Shield 2
WIZ5500 IC
Real Time Clock (BOB 12708)
16x2 SerLCD
ADXL345 Tripple Axis Accelerometer
Transceiver (nRF24L01+)
Wifi Module (ESP8266)
Bi-Directional Logic Level Converter

Info needed for Labs

Determine Com Port

With Arduino plugged in to computer's USB port
Win 10 - Search for "Powershell" and open
Type - "Get-WMIObject Win32_SerialPort" (no quotes)
check results for Arduino Uno (Com __ )

Atmel Studio

Setup Strings:

C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe

-C "C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf" -p atmega328p -c arduino -P COM7 -b 115200 -U flash:w:"$(ProjectDir)Debug\$(TargetName).hex":i"

Atmel Studio add ins:

Microchip Gallery

Go to above link then search for "Microchip Gallery". Click on "Download" on left side of screen and run the downloaded file (if Atmel Studio was opened when you did this, close and reopen Atmel Studio). This should now allow Atmel Studio access to plugins (TOOLS | Extensions and Updates). It is suggested in go ahead and install "Terminal for Atmel Studio"

To get printf to work with floating point values:

Project | nameofproject Properties | Toolchain : AVR/GNU Linker | General | Check "Use vprintf library(-Wl,-u,vfprintf)"
Project | nameofproject Properties | Toolchain : AVR/GNU Linker | Miscellaneous | Other Linker Flags put into textbox | "-lprintf_flt" (leave off quotes).