Difference between revisions of "ArduinoInABox"

From Land Boards Wiki
Jump to navigation Jump to search
Line 205: Line 205:
  
 
* [https://github.com/land-boards/lb-Arduino-Code/tree/master/LBCards/ArduinoInABox GitHub Repository]
 
* [https://github.com/land-boards/lb-Arduino-Code/tree/master/LBCards/ArduinoInABox GitHub Repository]
* [https://github.com/land-boards/lb-Arduino-Code/tree/master/LBCards/ArduinoInABox/OLED_Test OLED/Rotary Switch Test]
+
* [https://github.com/land-boards/lb-Arduino-Code/tree/master/LBCards/ArduinoInABox/OLED_Test OLED/Rotary Switch Test] - Good starting point
 
** Uses [https://www.best-microcontroller-projects.com/rotary-encoder.html Rotary Encoder Tutorial] - best code is at the ends under "Code For Improved Table Decode"
 
** Uses [https://www.best-microcontroller-projects.com/rotary-encoder.html Rotary Encoder Tutorial] - best code is at the ends under "Code For Improved Table Decode"
 
* [https://github.com/land-boards/lb-Arduino-Code/tree/master/LBCards/ArduinoInABox/BounceLEDs BounceLEDs] - Bounce an LED across pins D5-D13 and A0-A3
 
* [https://github.com/land-boards/lb-Arduino-Code/tree/master/LBCards/ArduinoInABox/BounceLEDs BounceLEDs] - Bounce an LED across pins D5-D13 and A0-A3

Revision as of 10:06, 22 May 2022

ArduinoInABox-P18170 720px.jpg

Features

  • Arduino Pro Mini
  • Detachable Human Interface design (HID)
  • Flexible Input power
    • On-board DC/DC buck regulator allows 7-23V input
    • Direct 7-9V input (USE VRAW jumper)
    • 3.3V of 5V Arduino support
    • Measured 12 mA with 9V input and 3.3V Arduino Pro Mini
  • I/O Boards
    • DB-25
  • Mounts in a standard extruded Aluminum enclosure

Arduino Pro Mini

  • Inexpensive and widely available
  • Arduino Pro Mini sCHEMATIC
  • I/O - 14 digital input/output pins (of which 6 can be used as PWM outputs)
    • Serial: 0 (RX) and 1 (TX).
      • Used to receive (RX) and transmit (TX) TTL serial data.
      • These pins are connected to the TX-0 and RX-1 pins of the six pin header.
    • External Interrupts: 2 and 3.
      • These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value.
      • See the attachInterrupt function for details.
    • PWM: 3, 5, 6, 9, 10, and 11.
      • Provide 8-bit PWM output with the analogWrite function.
    • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).
      • These pins support SPI communication, which, although provided by the underlying hardware.
    • LED: 13.
      • There is a built-in LED connected to digital pin 13.
      • When the pin is HIGH value, the LED is on, when the pin is LOW, it's off.
    • 6 analog inputs
  • On-board resonator (8 or 16 MHz)
  • Reset button
  • A six pin header can be connected to an FTDI cable provide USB power and communication to the board
  • 3.3 or 5V
  • 8 MHz (3.3V) or 16 MHz (5V)
  • Programmable in Arduino IDE

ArdruinoProMini-EBAY PART-720px.png

Detachable Human Interface design (HID)

Input Power Options

  • 2.1mm DC Power Connector Jack
  • Mini360 Switching Mode Power Supply
    • Wide input voltage range
      • 5-23V (for 3.3V Arduino Pro Mini)
      • 7-23V (for 5V Arduino Pro Mini)
      • About $1
  • Jumper to use raw input and not populate the Mini360
    • Uses the inputs jack as RAW power into the Arduino Pro Mini
    • 3.35-12 V (3.3V model) or 5-12 V (5V model)

= RF Filters

  • RF filter into Switching regulator board
  • 2nd RF filter into HID card

Connectors

ArduinoInABox CAD X1.png

J1 - OLED

  • Pinout
  1. SDA
  2. SCL
  3. +VCC
  4. GND

J2, J4 - On Base and HID card(s)

ARB J2.PNG

  • Can detach HID to mount in box
  • Pinout
  1. GND
  2. ENCODER A
  3. ENCODER B
  4. ENCODER SWITCH
  5. I2C_SCL
  6. I2C_SDA
  7. VCC
  8. GND

J4, J7, J8 - BNC/SMA input headers

  • Connect here to use the BNC or SMA jacks on the rear (option)

J5 - Arduino Pins

ARB J5.PNG

J6 - Voltage Adjustment

  • Adjust voltage for 3.3V or 5V to match Pro Mini voltage before installing jumper

J9 - Use Raw Power

AIB J9.PNG

FTDI (on Arduino Pro Mini)

  • Used to download program to Arduino Pro Mini

Human Interface (HID)

  • OLED
  • Rotary Switch with Pushbutton
  • Detachable board
    • Can be mounted to Front Panel of enclosure

HID Connect.PNG

OLED

  • 0.91" 128x32 or so rotary switch (installed in SW1 location) is to the right
  • 0.96" 128x64 (rotated) with rotary switch (installed in SW1 location) below
  • SSD1306 family of displays
  • Connections to Arduino Pins
    • A4/SDA
    • A5/SCL

Rotary Encoder

  • Connections to Arduino Pins
    • A=P2
    • B=P3
    • Switch=P4

I/O Boards

  • Base board has 3 optional BNC (P1-P3) or edge launch SMA (P4-P6) connectors
    • Brought to headers (J4, J7, J8)
  • Easy to application specific custom I/O cards
    • All Arduino pins brought to J5 - 2x13 pin header
    • I/O pins are on 0.1" grid for easier prototyping
    • P2-P13, A0-A3
    • A4/A5 or SDA/SCL (connects to OLED)
  • Location of mounting holes

DB-25 Mechs DBdMtg.png

DB-25 Example

  • Standard DB-25 female
    • Does not have 26 pin of the 2x13 header in the box
      • OK, extra powers/grounds at the ends
    • Connect with 1:1 cables to 2x10/2x3 Dupont receptacles

MultiCompInBox P1991 cropped.jpg

DB25-02 Schematic.PNG

DB25-02 Pinout.PNG

DB25-02 Mechs.PNG

DB25-02 3D.png

Mechanicals/Enclosure

  • Board is designed to fit into Aluminum Project Box Enclosure DIY 100*76*35mm - ebay search

ArduinoInABox Mechs.png

VFO-003 FrontPanel Holes.PNG

VFO-003 RearPanel Holes.PNG

Test

  • Test code - OLED/Rotary Switch Test
  • If there is no display on OLED, verify OLED appears at expected I2C address with I2C scan at I2C address 0x3C
    • Expect results
Scanning...
I2C device found at address 0x3C  !
done
  • May require a different constructor
    • I used
U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_NONE);
    • Your mileage may vary

Software

GitHub Repository

Total Memory usage with u8x8 Library and Rotary Encoder Code

Sketch uses 7062 bytes (22%) of program storage space. 
Maximum is 30720 bytes.
Global variables use 475 bytes (23%) of dynamic memory, 
leaving 1573 bytes for local variables. Maximum is 2048 bytes.

Minimal u8x8 code

Sketch uses 6198 bytes (20%) of program storage space. Maximum is 30720 bytes. Global variables use 446 bytes (21%) of dynamic memory, leaving 1602 bytes for local variables. Maximum is 2048 bytes.

Download/Programming

  • FTDI cable
    • FTDI jumper is set to 3.3V
    • Power wire is not used
    • Other connections are 1:1

ArduinoInABox-P18162-720px.jpg

IDE setup

  • Board: Arduino Pro or Pro Mini
  • Processor: ATMega328P (3.3V, 8 MHz)

ProgrammingArduinoInABox.png

Assembly Instructions