Skip to the content
2 layers79.4 × 49.1 mmIr beacon, the printed circuit board in 3D

IR beacon that can be used to limit where the Roomba vacuum cleaner goes.

Size
79.4 × 49.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
20
Nets
12
Pads
51
Tracks, vias
102, 7
Pours
1
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
5 Dec 2019
Updated
23 Apr 2022

Overview

Ir beacon is an open-source printed circuit board by perja12, from the perja12/roomba_beacon repository on GitHub, published under the MIT licence. It is a 2-layer board of 79.4 × 49.1 mm with 20 parts on 12 nets, routed with 102 tracks and 7 vias.

It is built around the ATTINY85V-10SU and MMBT3904. Its parts include 4 resistors, 3 capacitors, 2 diodes, 2 switches and 1 IC. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

2

README

README.md

IR Beacon for Roomba

Quick links: Schematic | Interactive BOM

This project describes an IR beacon that can be used with certain Roomba vacuum cleaners. The beacon can be used to prevent the vacuum cleaner from entering a room or other off-limit zones. The vacuum cleaner will simply turn around when it receives the infrared light emitted from the beacon.

The project is inspired by a similar project from http://gregthielen.me/blogstuff/2017/06/27/roomba-virtual-wall/ and the timings for IR LED is taken directly from that page.

PCB side 2

Design

The circuit itself is simple enough; when the push button is pressed, the IR LED will flash in a given pattern. To save battery the duration is limited to one hour (configurable). In addition there is a green indicator LED that will flash once when the device is turned on and twice when turned off.

An ATtiny85V is used without any voltage regulator as it can operate with a voltage from 1.8 to 5.5V. The device is powered by two AAA alkaline batteries and the battery holder is soldered to the PCB. As the ATtiny85 have maximum current of 40 mA per pin and the IR LED (Vishay TSAL4000) has a forward current of 100 mA, we will need a transistor (MMBT3904) to switch the IR LED.

Power consumption

There are two modes of operation:

  1. Sleep mode: the IR LED is off and the MCU is in deep sleep. The current consumption is a couple of uA.

  2. The average current consumption during active mode (when blinking the IR LED) is about 3.3 mA and can be lowered by using SLEEP_IDLE to save power and wake up when 132 ms have passed.

Push button on/off switch

The circuit uses a power latch implemented by using special instructions that skips resetting a particular variable to zero during reset (see the power variable in the code). The push button is connected to the RESET pin and when pressed it will reset the MCU. The setup function toggles the power variable and the circuit either goes to sleep or starts blinking the LED. With such a design it is important to have low sleep current. The solution is described here: http://www.technoblogy.com/show?VOO.

Configurable on-duration

Depending on the route the vacuum cleaner chooses one can decide how many hours the device will be on. The user can configure this by setting two DIP switches. The duration is measured by using the number of milliseconds since the device was reset. The accuracy of this timer is not very good and can be off by several minutes. But for this purpose it works well enough.

Detect low battery (not implemented)

On start up the indicator LED will blink rapidly if it is time to replace the batteries (around 2V). This is implemented by setting the internal reference voltage as ADC input and the target VCC as the ADC reference. The solution is described in this application note from Microchip: http://ww1.microchip.com/downloads/en/Appnotes/00002447A.pdf

How to build

Install the ATTinyCore and use the following settings in the Arduino IDE

There is also a Makefile that uses arduino-cli.

Enclosure

The PCB is designed so that it fits the Hammond 1591 ABS multipurpose enclosure and can be mounted directly without any standoffs. Only three additional holes are needed. Using one of the transparent boxes makes it easy to see where to drill. Note that there is a slight angle on the sides so the box wont stand exactly at 90 degrees, but close enough.

Improvements

List of improvements that can be done:

  • Clean up the layout and make it more compact.
  • Replace delay in code with timers.
  • Blink the LED now and then to show that it is on.

Images

Front Inside enclousre PCB side 1

Parts

20
QtyValueFootprintReferences
210KResistor_SMD:R_0805_2012MetricR2, R4
10.1uFCapacitor_SMD:C_0805_2012MetricC3
110uFCapacitor_Tantalum_SMD:CP_EIA-6032-28_Kemet-C_Pad2.25x2.35mm_HandSolderC1
115Resistor_SMD:R_0805_2012MetricR3
11uFCapacitor_SMD:C_0805_2012MetricC2
1220Resistor_SMD:R_0805_2012MetricR1
1ATtiny85V-10SUPackage_SO:SOIJ-8_5.3x5.3mm_P1.27mmU1
1AVR-ISP-6Connector_IDC:IDC-Header_2x03_P2.54mm_VerticalJ1
1BatteryBattery:BatteryHolder_Keystone_2468_2xAAABT1
1CQY99LED_THT:LED_D5.0mm_IRGreyD2
1LEDLED_THT:LED_D5.0mmD1
1MMBT3904Package_TO_SOT_SMD:SOT-23Q1
1On/offButton_Switch_THT:SW_PUSH_6mmSW1
1Timer configButton_Switch_THT:SW_DIP_SPSTx02_Slide_9.78x7.26mm_W7.62mm_P2.54mmSW2

The 15 most common of 20 parts.

Similar boards

  • 2 layers54 × 29 mmSonos magic hub, the printed circuit board in 3D

    Sonos magic hub

    perja12/sonos_magic_hub

    Circuit for using the LG OLED C9 TV remote (LG Magic Remote) with the Sonos Playbar.

    18 parts3Apache-2.0
  • 2 layers16 × 110 mmGatekeeper, the printed circuit board in 3D

    Gatekeeper

    mjrskiles/gatekeeper

    A digital gate/trigger processor for Eurorack modular synthesizers. Gatekeeper has a two-state (0 or 5V) output driven by push button and CV input. The input response is configurable via menu settings.

    33 parts2MIT
  • 2 layers15.3 × 19.3 mmKicad hx711 tyny85, the printed circuit board in 3D

    Kicad hx711 tyny85

    IvDm/Z-probe-on-smd-resistors-2512

    Auto bed level strain gage for 3D printer using resistors 2512 instead of strain gauges.

    18 parts150GPL-3.0
  • 4 layers110.7 × 69.8 mmSgb mbc5 1-4, the printed circuit board in 3D

    Sgb mbc5 1-4

    MouseBiteLabs/Super-Game-Boy-Plus

    A replacement circuit board for improving the Super Game Boy, or for creating a standalone Game Boy game for the SNES.

    95 parts41CC-BY-SA-4.0
  • 2 layers12.2 × 40.4 mmBadUSB, the printed circuit board in 3D

    BadUSB

    joelsernamoreno/Attiny85-Standalone

    PCB designs based on the Attiny85 microcontroller for standalone development.

    7 parts21CC-BY-4.0
  • 2 layers34 × 12.2 mmSpherometer display, the printed circuit board in 3D

    Spherometer display

    hzeller/digi-spherometer

    A digital spherometer, reading data from digital dial indicator and converting it to radius, displaying on OLED display.

    14 parts14GPL-3.0
  • 2 layers72.7 × 114 mmWs 3.0, the printed circuit board in 3D

    Ws 3.0

    boanjo/myhome

    A collection of mysensors nodes, gateways and HW from my home

    57 parts4
  • 2 layers19.6 × 24.1 mmMoleblink, the printed circuit board in 3D

    Moleblink

    rjhsun/moleblink

    ATtiny85-based illuminated PCB keychain featuring the Blacker House crest

    31 parts2CC-BY-SA-4.0

Questions

How big is the Ir beacon PCB?

It measures 79.4 × 49.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Ir beacon use?

20 parts, built around the ATTINY85V-10SU and MMBT3904. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Ir beacon KiCad files?

From the perja12/roomba_beacon repository on GitHub, at the commit this page was made from: the board is kicad/ir_beacon/ir_beacon.kicad_pcb and its schematic kicad/ir_beacon/ir_beacon.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Ir beacon design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).