Skip to the content
4 layers20.8 × 18 mmWhisker, the printed circuit board in 3D

A Biomorphic Whisker Sensor for Aerial Tactile Applications , Chaoxiang Ye, Guido de Croon, and Salua Hamaza. 2024 IEEE International Conference on Robotics and Automation (ICRA 2024).

Size
20.8 × 18 mm
Copper layers
4
Thickness
1.6 mm
Parts
29
Nets
22
Pads
104
Tracks, vias
306, 37
Pours
2
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
19 Sep 2023
Updated
13 May 2024

Overview

Whisker is an open-source printed circuit board by BioMorphic-Intelligence-Lab, from the BioMorphic-Intelligence-Lab/Whisker-3D-Localization repository on GitHub. It is a 4-layer board of 20.8 × 18 mm with 29 parts on 22 nets, routed with 306 tracks and 37 vias.

It is built around the BMP390. Its parts include 10 capacitors, 6 connectors, 4 ICs and 1 resistor. It belongs with the STM32 boards of this library.

Main components

1

README

README.md

Whisker-3D-Localization

Table of contents

  1. Overview
  2. PCB design
  3. Data reading
  4. 3D-Localization
    1. Architecture
    2. Installation
    3. Dataset
    4. Model training
    5. Test
  5. Contact

Overview [blocked]

This repository contains open-source files for paper:

A Biomorphic Whisker Sensor for Aerial Tactile Applications, Chaoxiang Ye, Guido de Croon, and Salua Hamaza.
2024 IEEE International Conference on Robotics and Automation (ICRA 2024).

PCB design [blocked]

Including KiCAD files and the manufacturer's files. The manufacturer's files encompass the gerber file, Bill of Materials (BOM), and position file. The primary electronic components consist of barometers and microcontrollers. To optimize sensing ability and PCB size, we recommend utilizing the BMP390 along with the STM32F070F6. In the event of a microcontroller substitution, we recommend choosing for one with a minimum of 32Kbytes flash memory.

Data reading [blocked]

Including all programs utilizing the STM32 to read data from three BMP390s. The SPI bus is employed for communication between the STM32 and the BMP390, where the chip select pins are sequentially lowered to read sensor data in sequence. Additionally, a UART is utilized for communication between the STM32 and the PC.

We use the In-system programming (ISP) to download the program into the STM32. Initially, the BOOT0 pin necessitates a pull-up, which entails soldering an additional wire on the PCB, connecting BOOT0 to any of the leads linked to the 3.3V (PWR-layer). Subsequently, employ the MCU ISP software to flash the "whiskeropt2.0.hex" file from the Data Reading folder onto the STM32, ensuring the baud rate is set to 115200. Please be aware that when reading data, it is imperative to configure the baud rate in accordance with the parameter specified in the "usart.c" file. In this instance, we have set it to 230400.

3D-Localization [blocked]

Architecture [blocked]

Installation [blocked]

We suggest to create a conda env

text
conda create -n whisker python=3.8

Clone the source code from our github repository

text
git clone https://github.com/BioMorphic-Intelligence-Lab/Whisker-3D-Localization.git
cd Whisker-3D-Localization

We implemented this code, under the following packages:

  • Python 3.8.17
  • Pytorch 2.0.1
  • Numpy 1.24.3
  • Scikit-learn 1.2.2

using conda to install the above packages.

Scikit-learn is exclusively utilized for selecting hyperparameters in the grid search process.

Dataset [blocked]

The dataset was split into training, validation, and test sets. The training set contains 6,068,046 frames, while both the validation and test sets have 1,504,834 frames each. The validation set is solely employed for hyperparameter selection. We show the training dataset as an example:

Model training [blocked]

The training set was randomly shuffled in each epoch. All models were using the Adam optimizer. Below, we provide our optimal hyperparameters determined through the grid search method:

To train the model by our optimal hyper-parameters

text
python main.py

To train the model by grid search method to find the optimal hyper-parameters

text
python main.py --time_sequence [your_setting] --batch_sizes [your_setting] --learning_rates [your_setting] --regularization_values [your_setting] --dropout_values [your_setting]

Test [blocked]

text
python main.py -test --model_file your_file_name

We also provide our model weights at best_model_save/best_model_ts_40_bs_32_lr_0.0001_reg_0_do_0.0_loss_0.1170.pt

To evaluate by our model weights

text
python main.py -test --model_file best_model_ts_40_bs_32_lr_0.0001_reg_0_do_0.0_loss_0.1170.pt

Contact [blocked]

If you have any questions, feel free to contact us through email (C.Ye@tudelft.nl). Enjoy!

Parts

29
QtyValueFootprintReferences
9100nFCapacitor_SMD:C_0402_1005MetricC4, C5, C6, C7, C8, C9, C10, C11, C12
8TestPointTestPoint:TestPoint_Pad_D1.0mmCSB1, CSB2, CSB3, GND, PWR, SCK, SDI, SDO
6Conn_01x04_MaleConnector_PinHeader_1.27mm:PinHeader_1x04_P1.27mm_HorizontalJ1, J2, J3, J4, J5, J6
3BMP390BMP390L:XDCR_BMP390LU3_1, U3_2, U3_3
110KResistor_SMD:R_0402_1005MetricR2
110uFCapacitor_SMD:C_0603_1608MetricC3
1STM32F070F6PxPackage_SO:TSSOP-20_4.4x6.5mm_P0.65mmU2

Similar boards

  • 4 layers93.7 × 43.7 mmFlight Computer, the printed circuit board in 3D

    Flight Computer

    SunDevilRocketry/Flight-Computer

    General purpose flight computer for high powered rocketry projects.

    113 parts5
  • 4 layers70.8 × 100 mmFlapjack, the printed circuit board in 3D

    Flapjack

    Caleb646/Flapjack

    A custom VTOL drone platform — from airframe to PCB to firmware.

    116 parts4
  • 6 layers34 × 40 mmESPWatchS3, the printed circuit board in 3D

    ESPWatchS3

    Ilikemining1/ESPWatchS3

    ESP32-S3 based smartwatch with CrystalFontz 240x240 1.3in LCD.

    126 parts2
  • 2 layers91.5 × 100 mmTrailmap, the printed circuit board in 3D

    Trailmap

    katetriestocode/trailmap

    this is the working version! (disclaimer: no antenna as it has not delivered yet, so manual gps coords insertion for now!)

    57 parts2
  • 4 layers44 × 33.5 mmTelinksensor hw, the printed circuit board in 3D

    Telinksensor hw

    WojtaCZ/telinksensor-hw

    HW repository for TLSR8258 based temperature, humidity and pressure sensor

    79 parts2
  • 4 layers53 × 57.5 mmAflight 2Wings, the printed circuit board in 3D

    Aflight 2Wings

    Afligh8/FlightController

    A simple Plug and Play FLight Controller for Wings. Supports two motors with ESC, 6 PWM pins, SPI, I2C and Serials. Also 6 ports for servos and extra GPIO pins for debug and freelance.

    72 parts1
  • 2 layers50 × 60 mmGO, the printed circuit board in 3D

    GO

    Ainacteru/GO

    The source code for the GO PCB

    72 parts1
  • 4 layersPerserveranceAvionics, the printed circuit board in 3D

    PerserveranceAvionics

    bahrant/HAP-Electronics-

    EDA files for a rocket flight computer. Resulting designs will be printed on a pcb and be flown on level 1 & 2 High Powered Rockets

    19 parts1MIT

Questions

How big is the Whisker PCB?

It measures 20.8 × 18 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Whisker use?

29 parts, built around the BMP390. 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 Whisker KiCad files?

From the BioMorphic-Intelligence-Lab/Whisker-3D-Localization repository on GitHub, at the commit this page was made from: the board is PCB design/KICAD file/whisker.kicad_pcb and its schematic PCB design/KICAD file/whisker.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Whisker design in my own project?

Its repository states no licence, so its author keeps all rights: ask BioMorphic-Intelligence-Lab before reusing the design.