

Bus sonar10
Connect 10 sonar modules to a bus.
- Size
- 100 × 50 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 40
- Nets
- 47
- Pads
- 228
- Tracks, vias
- 455, 29
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 4
- Created
- 29 May 2015
- Updated
- 14 Jun 2015
Overview
Bus sonar10 is an open-source printed circuit board by makerbus, from the makerbus/bus_sonar10 repository on GitHub. It is a 2-layer board of 100 × 50 mm with 40 parts on 47 nets, routed with 455 tracks and 29 vias.
It is built around the MCP2562-H/P, 74HCT08D and 74HCT32D, with the LM2940S-5.0, 302-S401 and MJTP1243 among its other parts. Its parts include 11 capacitors, 10 resistors, 5 ICs, 2 diodes and 1 connector. It belongs with the AVR (ATmega, ATtiny) boards of this library.
Main components
7MCP2562-H/P
PDIP-8-40℃~+150℃ 4.5V~5.5V PDIP-8 CAN Transceivers ROHSMicrochip TechnologyCAN Transceivers74HCT08D
SOP-14-40℃~+125℃ 100mV、330mV 16ns@4.5V,15pF 2 2V 3.84V、4.4V 4 4.5V~5.5V 74HCT 800mV AND Gate TTL compatible CMOS SOP-14 Logic Gates ROHSMDDLogic Gates74HCT32D
SO-14-40℃~+125℃ 2 24ns@4.5V,50pF 2V 2uA 3.7V、4.4V 4 4.5V~5.5V 400mV 4mA 4mA 74HCT Series 800mV OR Gate SOIC-14 Logic Gates ROHSNexperiaGatesLM2940S-5.0
TO-263-3-40℃~+125℃@(Tj) 1 150uVrms 1A 26V 30mA 500mV@(1A) 5V 72dB@(120Hz) Fixed Over Current Protection、Short Circuit Protection、Thermal shutdown、Input under-voltage protection、Input overvoltage protection、Reverse polarity voltage protection Positive TO-263-3 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTexas InstrumentsVoltage Regulators - Linear, Low Drop Out (LDO) Regulators302-S401
插件插件 Wire To Board Connector ROHSOn-Shore TechWire To Board ConnectorMJTP1243
插件Tactile SwitchesAPEMSD101C-TR
DO-35(DO-204AH)Schottky DiodesVishay Intertechnology
README
README.mdbus_sonar10
The Sonar10 board is used to drive up to 10 HC-SR04 sonar modules.
Currently, everything is located in the rev_a directory.
Revision A
The revision A schematic is available as either
bus_sonar10.pdf or as bus_sonar10.svg.
Logic ground comes in on N1 (pins 3 and 4). Logic power comes in on N1 (pins 1 and 2.) The logic power is routed to C1, U2 (a LM2940-5.0), C4, C5, and R1. The C4/R1 series combination is used to bring the ESR of C5 to less than 1 ohm as required by the LM2940 spec. sheet. Capacitors C6, C7, C8, C9, and C11 provide filter capacitors for the various IC's.
The MCP2562 CAN bus transceiver (U3) is connected to CANH (N1 pin 5) and CANL (N1 pin 6). In addition, R6 and J1 can be used to enable a 120 ohm CAN bus termination resistor. VIO (U3 pin 5) is connected to 5V since all digital signals on this board are running at 5V.
The AND gate at U1A is used to or the signals from the MCP2562 TXD (U3 pin 1) with the TXD signal on the 3.3V FTDI USB serial cable (N2 pin 4). R4 is a 100K ohm pull resistor that pulls serial cable high if no serial cable is plugged in. (There should be a similar 100K pull-up resistor on the MCP2662 to pull it high if the MCP2562 CAN bus transceiver is not plugged in. It was accidently left out.) The output of the 74HCT08 and gate is directed to RXD (U4 pin 2) of the ATmega328P. The 74HCT08 is used to level shift from 3.3V on the serial cable up to 5V output on U1A. (Note: in Rev. A the TXD and RXD pins on U3 are accidentally swapped.) Lastly, the TXD output from the processor is sent to the R2/R3 voltage divider that takes the 0-5V signal down to 0-3V.
One other comment about the serial cable. If a 5V FTDI serial cable gets plugged into N2, nothing bad happens because U1 has 5V tolerant inputs.
The reset signal is derived from RTS on the serial cable (N2 pin 6.) Normally, RTS on the serial cable idles at 3.3V high, which is buffered through AND gate U1B to 5V. The othe end of C10 is pulled up to 5V through 10K resistor (R7). Since both ends of C10 are at 5V, C10 is discharged and has 0V across it. When RTS goes low, the output of U1B goes low. This immediately pulls the #RESET line low and that resets the processor on its #RESET line (U4 pin 1). Now R7 has 5V across it and it starts to charge C10 up to 5V. When downloading is done, The serial cable signal RTS goes back high again. This the causes the U1B AND output to go high (5V). This causes the other end of C10 to attempt to pull the #RESET line up to 10V (since C10 has 5V across it.) Luckily the Schottky diode D1 to clamp the voltage on the #RESET line to 5.2V and rapidly discharge C10 again. Lastly, the button SW1 can be used to trigger a reset as well.
(There was a theory that the AVR counter/timers could be used to time the width of a pulse. For this reason, all sonar echos were run into the input pins of 5 (OC2B), 11 (OC0B), 12 (OC0A), 15 (OC1A), 16 (OC1B), and 17 (OC2A). Alas, this theory turned out to be false.)
Order to support 10 sonars, pairs of echo return signals from the HC-SR04 modules are combined using the 74HCT32 quad OR gate U5. By using these 4 OR gates, the 10 sonar echos are directed to 6 input pins. This is good because 6 input pins are all that is available.
All the connections are summerized in the table below:
Sonar Trigger Echo Pin Arduino Port-Bit Conn-Pin Pin Arduino Counter Port-Bit PCINT Conn-Pin 0 24 A1 PC1 N3-5 15 D9 OC1A PB1 PCINT1 N3-3 1 19 D13 PB5 N3-13 N3-11 2 23 A0 PC0 N3-21 12 D6 OC0A PD6 PCINT22 N3-19 3 18 D12 PB4 N3-29 11 D5 OC0B PD5 PCINT21 N3-27 4 14 D8 PB0 N3-37 N3-35 5 26 A3 PC3 N4-5 17 D11 OC2A PB3 PCINT3 N4-3 6 25 A2 PC2 N4-13 N4-11 7 13 D7 PD7 N4-21 16 D10 OC1B PB2 PCINT2 N4-19 8 6 D4 PD4 N4-29 5 D3 OC2B PD3 PCINT19 N4-27 9 4 D2 PD2 N4-37 N4-35
Issues
-
The TXD and RXD pins on the MCP2562 (U3 pins 1 and 4) are swapped. [x]
-
It would be nice to have an LED that can be blinked. [x]
-
Tie unused inputs of U1 to one rail or the other. [x]
-
Put a 100K pull up on U1A (pin 1) to deal with MCP2652 not being plugged in.. [x]
-
Think about finding an extra pin for STBY on the MCP2652 rather than just grounding it. [x]
-
References for D1 and R7 are transposed. [x]
Rev. C
- No ISP connector.
Software
The software is developed using the arduino-mk package. You may have to edit the Makefile if you are not using a standard Ubuntu configuration and/or an 3.3V FTDI USB to serial cable.
The software is in bus_sonar10.ino.
To build the code:
makeTo upload the code to bus_sonar10 over the FTDI serial cable:
make uploadParts
40| Qty | Value | Footprint | References |
|---|---|---|---|
| 6 | .1uF | bus_sonar10:Capacitor3MMDiscRM2.5 | C4, C6, C7, C8, C9, C11 |
| 4 | 3MM_HOLE | bus_sonar10:MountingHole_3mm | H1, H2, H3, H4 |
| 3 | 100K | bus_sonar10:Resistor_Horizontal_400 | R4, R5, R8 |
| 2 | .47 | bus_sonar10:Resistor_Horizontal_400 | R1, R6 |
| 2 | 18pF | bus_sonar10:Capacitor3MMDiscRM2.5 | C1, C3 |
| 2 | 22uF | bus_sonar10:Capacitor4x3RM2-5_RevB | C2, C5 |
| 2 | 302-S401 | bus_sonar10:Pin_Header_Straight_2x20_Shrouded | N3, N4 |
| 1 | 100K | bus_sonar10:Pin_Header_Straight_1x09 | R10 |
| 1 | 10K | bus_sonar10:Resistor_Horizontal_400 | R7 |
| 1 | 16MHz | bus_sonar10:Crystal_HC49-U_Vertical | X1 |
| 1 | 1uF | bus_sonar10:Capacitor3MMDiscRM2.5 | C10 |
| 1 | 22K | bus_sonar10:Resistor_Horizontal_400 | R2 |
| 1 | 33K | bus_sonar10:Resistor_Horizontal_400 | R3 |
| 1 | 470 | bus_sonar10:Resistor_Horizontal_400 | R9 |
| 1 | 74HCT08 | bus_sonar10:DIP-14__300 | U1 |
| 1 | 74HCT32 | bus_sonar10:DIP-14__300 | U5 |
| 1 | ATMEGA328_DIP28 | bus_sonar10:DIP-28__300 | U4 |
| 1 | BUS_SLAVE_HEADER | bus_sonar10:Pin_Header_Straight_2x05_Shrouded | N1 |
| 1 | FTDI_HEADER | bus_sonar10:Pin_Header_Straight_1x06 | N2 |
| 1 | LED | bus_sonar10:T1_LED | D2 |
| 1 | LM2940 | bus_sonar10:TO-220_Neutral123_Horizontal_LargePads | U2 |
| 1 | MCP2562 | bus_sonar10:DIP-8__300 | U3 |
| 1 | MJTP1243 | bus_sonar10:Button_6.5MM | SW1 |
| 1 | OSHW_LOGO | bus_sonar10:OSHW_LOGO_400mil | G1 |
| 1 | SD101C-TR | bus_sonar10:Diode_DO-41_SOD81_Horizontal_RM10 | D1 |
| 1 | TERMINATE_JUMPER | bus_sonar10:Pin_Header_Straight_1x03 | J1 |
More from makerbus/bus_sonar10
1- 2 layers100 × 50 mm

Similar boards
- 2 layers100 × 50 mm

Bus bridge encoders sonar
makerbus/bus_bridge_encoders_sonar
A PCB that connects a dual H-bridge, dual quadrature shaft encoders and some sonars to a bus.
63 parts - 2 layers100 × 50 mm

- 2 layers100 × 50 mm

- 2 layers100 × 100 mm

- 4 layers70 × 50 mm

Stage0 5
essen48183/MinAI
A single-file C++ transformer built to be read — every mechanism of a modern LLM in ~780 lines, with a textbook companion.
72 partsMIT - 2 layers60 × 34 mm

- 2 layers107 × 58 mm

- 2 layers297.2 × 180.3 mm

Questions
How big is the Bus sonar10 PCB?
It measures 100 × 50 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Bus sonar10 use?
40 parts, built around the MCP2562-H/P, 74HCT08D, 74HCT32D and LM2940S-5.0. 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 Bus sonar10 KiCad files?
From the makerbus/bus_sonar10 repository on GitHub, at the commit this page was made from: the board is rev_c/bus_sonar10.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Bus sonar10 design in my own project?
Its repository states no licence, so its author keeps all rights: ask makerbus before reusing the design.