George timmermans
  • About Me
    • Resume
  • Blog
  • Projects
    • Long Range WiFi Link >
      • Camera
      • Weather Station
    • Embedded Systems >
      • Photo Booth
      • USB Media Controller
      • Arduino Swimming Pool Controller
      • GRBL Android Controller
      • Arduino Serial Driver
      • Arduino Multitasking
      • 8x8x8 LED Cube
      • Analog -> Digital Geiger Counter
    • Home Brewing >
      • Mead
      • Glühwein (Spiced Wine)
    • House
    • Toolmaking
    • 3D Printing/Laser Cutting
  • Contact

Arduino Bit Bang Serial Driver

For an assignment for my embedded systems course we were required to write our own bit bang serial driver for an Arduino Uno. As the assignment progressed, more and more requirements were added. The final driver consists of:
  • 2400 Baudrate generated by timer interrupt
  • 1 start bit, 8 data bits, 2 stop bits, no parity
  • Circular buffer for data input
  • Circular buffer for data output
  • State machine to reduce CPU load
Picture
Final result. Channel 1 is used to measure CPU execution time.

Code

The code is available on my github page here.
Powered by Create your own unique website with customizable templates.
  • About Me
    • Resume
  • Blog
  • Projects
    • Long Range WiFi Link >
      • Camera
      • Weather Station
    • Embedded Systems >
      • Photo Booth
      • USB Media Controller
      • Arduino Swimming Pool Controller
      • GRBL Android Controller
      • Arduino Serial Driver
      • Arduino Multitasking
      • 8x8x8 LED Cube
      • Analog -> Digital Geiger Counter
    • Home Brewing >
      • Mead
      • Glühwein (Spiced Wine)
    • House
    • Toolmaking
    • 3D Printing/Laser Cutting
  • Contact