Machines, Programs and Tools

Mac computer, screen, GitLab, HTML site, patience. For this assignment I made a wired network of ATTony 412 using the I2C communication standard. One ATTiny 412 acts as the controller while two other AATiny 412 act as nodes. The controller sends a request to the network and the nodes answer. I used the technique that I learned in week 6 and built on it.

Introduction

This week we had to make a PCB board that could communicate. I had to design the PCB board from scratch and make the connecting wire.

Projects

Board design : I2C Control / I2C Nodes

The board needs a few things to be able to communicate using I2C, resistors, SDA lines, 4pins for the VCC, GND, SCL and SDA lines for I2C communication so I added that to my design.

Roland modela mdx-20 : I2C Control / I2C Nodes

I used fabmodules to make the toolpath for the circuts. I stared with downloading the file and make a pattern for the board. I opended the file in InkScape and make a few minor changes. Then I made a white box to put behind the file. When I was done I exported the files making sure that the DPI was set to 1000 then I moved the top layer to see only the white box was exported the white box making sure that the DPI was set to 1000. I then moved both files to my USB drive.


Soldering : I2C Nodes

I2C Nodes Item list

Name Quantity
Item1 ATtiny 412. 1x
Item2 RES 1K OHM 1% 1/4W 1206. 1x
Item3 RES 4.99K OHM 1% 1/4W 1206. 2x
Item4 LED Blue Clear 1206 SMD. 1x
Item5 Capacitor 1 uF SMD. 1x
Item6 Single Row Side-Insertion Pin 1X3 2.54mm. 1x
Item7 Dual Row SMT Type Pin Header 2X2 2.54mm. 1x
Item8 Button 6.0x6.0mm. 1x

Soldering : I2C Control

I2C Control Item list

Name Quantity
Item1 ATtiny 412. 1x
Item2 RES 1K OHM 1% 1/4W 1206. 1x
Item3 RES 4.99K OHM 1% 1/4W 1206. 2x
Item4 RES 0.0 OHM 1% 1/4W 1206. 2x
Item5 LED Blue Clear 1206 SMD. 1x
Item6 Capacitor 1 uF SMD. 1x
Item7 Single Row Side-Insertion Pin 1X3 2.54mm. 1x
Item8 Single Row Side-Insertion Pin 1X6 2.54mm. 1x
Item9 Dual Row SMT Type Pin Header 2X2 2.54mm. 1x
Item10 Button 6.0x6.0mm. 1x

Board design : I2C Control / I2C Nodes

All the parts and the connector cable.

Closeup.

A closer of the board and cable, all connected. All parts have been soldered in place.


I got the cable from my instructor to program the board.


Programing board and cable.

  • Week6

  • Output Devices: Code

    Refresher on the code and devices previously used in project. I used Arduino to program the board.

    Code : I2C Control / I2C Nodes

    I used Arduino Program Setup/Arduino IDE. I had used Arduino in week 6 so I was familliar with it. I added a Megatinycore in the board manager to enable me to program the ATiny412. In the program I chose erialUPDI - Slow:57600 BAUD. I uploaded the Code by going to Sketch - Upload using programmer.

    I2C Control / I2C Nodes - Andri Sæmundsson - Fab Academy 2023

  • ATtiny412 control I2C Code HTML
  • ATtiny412 control I2C Code Zip
  • ATtiny412 Control I2C Code INO
  • ATtiny412 node 1 I2C Code HTML
  • ATtiny412 node 1 I2C Code Zip
  • ATtiny412 node 1 I2C Code INO


  • Summary

    Designing the board went ok. Soldering it was a nightmare. I had to make 7 boards with three of them ending up working. The milling of node 1 wasnt good enough so I ended up having to splice a wire between two points. I had to update the Arduino site for it to be able to send the code. What code does is alert me if the buttons are pushed. I will send me a message that a button was pushed on node 1 or node2. The node sends a message to controller that confirms a signal was recived and you got a message (in my case) on the Arduino site.