101 SCµM-BLE-RX

101 : SCµM-BLE-RX

Design render

How it works

This project implements a Bluetooth Low Energy (BLE) digital baseband receiver designed for the SCuM (Single-Chip µ-Mote) platform (https://crystalfree.atlassian.net/wiki/spaces/SCUM/overview). The receiver takes I/Q samples from the SCuM RF front-end (or any compatible I/Q-sample interface), processes incoming BLE signals in real time, and performs packet decoding to extract BLE packets.

Core processing stages:

  • Matched filtering for GFSK demodulation and bit extraction
  • Clock and data recovery for symbol-timing synchronization
  • Preamble-detection module for identifying the start of a received BLE packet
  • Packet-sniffer module that performs bit de-whitening, CRC checking, and detection of complete BLE packets

How to test

Connect the SCuM chip’s I/Q sampling outputs to the BLE digital baseband receiver. Configure the SCuM RF front-end to receive BLE packets, and then observe the decoded packet data on a computer through the Tiny Tapeout chip’s output interface.

External hardware

  • SCuM Chip – Serves as the RF front-end and BLE transmitter/receiver interface.
  • Digital Discovery – Used for signal probing, debugging, and verification.
  • Computer – Handles serial communication, visualization, and data logging.

IO

#InputOutputBidirectional
0I_BPF[0]demod_symbolchannel_sel[0] (input)
1I_BPF[1]demod_symbol_clkchannel_sel[1] (input)
2I_BPF[2]packet_detectedI_BPF_echo[0] (output)
3I_BPF[3]preamble_detectedI_BPF_echo[1] (output)
4Q_BPF[0]ena_syncI_BPF_echo[2] (output)
5Q_BPF[1]rstI_BPF_echo[3] (output)
6Q_BPF[2]Q_BPF_echo[0]Q_BPF_echo[2] (output)
7Q_BPF[3]Q_BPF_echo[1]Q_BPF_echo[3] (output)

Chip location

Controller Mux Mux Mux Mux Mux Mux Mux Mux Mux Mux Mux Mux Mux Mux Mux tt_um_chip_rom (Chip ROM) tt_um_factory_test (Tiny Tapeout Factory Test) tt_um_htfab_asicle2 (Asicle v2) tt_um_urish_simon (Simon Says memory game) tt_um_dlmiles_ringosc_5inv (Ring Oscillator (5 inverter)) tt_um_rejunity_vga_logo (VGA Tiny Logo) tt_um_rejunity_sn76489 (Classic 8-bit era Programmable Sound Generator SN76489) tt_um_wokwi_392873974467527681 (PILIPINAS_IC) tt_um_wokwi_442081253563458561 (PRISM 8 with TinySnake) tt_um_waferspace_vga_screensaver (Wafer.space Logo VGA Screensaver) tt_um_rejunity_z80 (Zilog Z80) tt_um_MichaelBell_tinyQV (TinyQV Risc-V SoC) tt_um_calonso88_spi_i2c_reg_bank (Register bank accessible through SPI and I2C) tt_um_htfab_caterpillar (Simon's Caterpillar) tt_um_gf0p2_faust_top (Silly-Faust) tt_um_htfab_cells (Cell mux) tt_um_zedtc1_top (Zedulo TestChip1) tt_um_essen (2x2 MAC Systolic array with DFT) tt_um_BLE_RX (SCµM-BLE-RX) tt_um_kianV_rv32ima_uLinux_SoC (KianV uLinux SoC) tt_um_schoeberl_wildcat (Wildcat RISC-V) tt_um_vga_clock (VGA clock) tt_um_digital_clock_example (7-Segment Digital Desk Clock) tt_um_rejunity_vga_test01 (VGA Drop (audio/visual demo)) tt_um_a1k0n_nyancat (VGA Nyan Cat) tt_um_proppy_megabytebeat (megabytebeat) tt_um_javibajocero_top (MarcoPolo) tt_um_kercrafter_leds_racer (LEDs Racer) tt_um_noritsuna_CAN_CTRL (CAN Controller for Rocket) tt_um_algofoogle_raybox_zero (raybox-zero TTGF0p2 edition) tt_um_flummer_ltc (Linear Timecode (LTC) generator) tt_um_dlmiles_bad_synchronizer (Example of Bad Synchronizer) tt_um_multi_bit_puf_wrapper (One Bit PUF) tt_um_algofoogle_vgaringosc (Ring osc on VGA) tt_um_lisa (LISA 8-Bit Microcontroller) tt_um_mmorri22_lockpick_game (Notre Dame - Lockpick Game TT Example) tt_um_simple_riscv (Simple RISC-V) tt_um_mmorri22_cse_30342 (Notre Dame - CSE 30342 - DIC - Advanced FSM Final Project Example) tt_um_zacky1972_PVTMonitorSuite (PVTMonitorSuite) tt_um_SophusAndreassen_dogbattle (Dog Battle Game) tt_um_frequency_counter (Frequency Counter SSD1306 OLED) tt_um_wokwi_445338187869298689 (WokwiPWM) tt_um_kbeckmann_flame (Flame demo) tt_um_2048_vga_game (2048 sliding tile puzzle game (VGA)) tt_um_spi_cpu_top (Super-Simple-SPI-CPU) tt_um_urish_usb_cdc (USB CDC (Serial) Device) tt_um_htfab_vga_tester (Video mode tester) tt_um_dlmiles_ddr_throughput_test (DDR throughput and flop aperature test) tt_um_dlmiles_loopback (GF180MCU loopback tile with input skew measurement) tt_um_thezoq2_quickscope (Quickscope) tt_um_MATTHIAS_M_PAL_TOP_WRAPPER (easy PAL) tt_um_htfab_rotfpga2 (ROTFPGA v2)