Home Assistant Yellow

Not sure why it would be any different.

Well the external antenna is first and foremost out of the case, which is generally an improvement. Secondly, on paper at least, it should have longer range compared to the one on the board.

The Raspberry Pi Operating System is a customized, purpose-built OS for the Raspberry Pi hardware. Thus, it contains features and options that not all Linux distributions have built into them. I am not an expert on HAOS for Raspberry Pi, and thus the question regarding whether or not it has built-in support for enabling the CM4’s External Antenna feature. I am hoping one of the HAOS devs, like @agners, can comment on this particular feature for the Yellow edition of HAOS.

Yes I’ve had to edit config.txt to enable USB 2.0 on the CM4. For some reason it’s disabled by default. I use this addon to configure root access via SSH on port 2222.

If anyone needs it. To enable USB 2.0 Host Mode I added the following to /boot/config.txt. Without this my zigbee stick was not recognised.

dtoverlay=dwc2,dr_mode=host
1 Like

You are using the generic RPi image then (I did too initially - USB being disabled by default is a CM4 thing). The custom Yellow image has USB enabled out of the box.

I make an add-on specifically to enable USB-Host-mode Serial as well. 🆕[add-on] HassOS Serial Configurator

Screenshot_20221030-085656

Yes I know that, but I was asking why the it would be any different modifying config.txt. I know an external antenna should act differently to a PCB one.

Any raspberry pi OS has config.txt.

Ok ok, I seem to have misunderstood the question. It’s because the CM4 has been designed to only use the built in antenna on the board, unless specified differently. And as far as I know this only applies to the CM4. But as @ogiewon already stated, I’m not sure if this actually translates/works with HAOS. Here you have a blog post from Jeff Geerling that explains the process:

https://www.jeffgeerling.com/blog/2022/enable-external-antenna-connector-on-raspberry-pi-compute-module-4

Check out this site. That’s how I got mine quickly: https://rpilocator.com
Filter by CM4 and your region.

I got mine now and just migrated from my Raspi 4. It was completely painless due to this wonderful tutorial by Lewis: Getting Started With Home Assistant Yellow! - YouTube.

Highly recommend his channel in any case.

Yes that is my setup, however no time yet to test. I recommend getting a (or a few if you have a larger home) ESP32s and set them up as BT proxies: ESPHome Bluetooth Proxy That is my next to do.

Yes that would have been nice, but it doesn’t work for me. I generally only need BT for my Mi Flora sensors and they unfortunately do not play nice together with the proxies. I’ve tried different ESP32s with different proxy settings, but eventually they just turn unavailable. They work perfectly with my BT dongle. :man_shrugging:t2:

How did you configure the CM4 to use the external antenna? Did you edit the config file? And what’s roughly the range of the antenna in your home?

1 Like

ESP Home has support for MiFlora. Xiaomi Mijia BLE Sensors — ESPHome

Yes, I know. But the Mi Flora component does not support the battery sensor, since it’s passive. The battery sensor requires active BT communication.

Or the older firmware :slight_smile:

There are posts claiming otherwise, perhaps post an issue if it is not working for you.

Well when I bought them they had the old firmware and that didn’t work at all.

Already did. Could you please point me to these posts?

Edit: Never mind, found some.

Replying to myself. Samsung 980 500GB works!

➜  ~ dmesg | grep nvme
[    1.212386] nvme nvme0: pci function 0000:01:00.0
[    1.212541] nvme 0000:01:00.0: enabling device (0000 -> 0002)
[    1.221640] nvme nvme0: Shutdown timeout set to 8 seconds
[    1.237086] nvme nvme0: allocated 64 MiB host memory buffer.
[    1.609890] nvme nvme0: 4/0/0 default/read/poll queues
[    1.650561]  nvme0n1: p1
[   54.713438] EXT4-fs (nvme0n1p1): mounted filesystem with ordered data mode. Opts: commit=30. Quota mode: none.
[   54.828654] EXT4-fs (nvme0n1p1): resizing filesystem from 7455483 to 122096384 blocks
[   55.614051] EXT4-fs (nvme0n1p1): resized filesystem to 122096384


➜  ~ lspci -nnvv -s 01:00.0
01:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd Device [144d:a809] (prog-if 02 [NVM Express])
        Subsystem: Samsung Electronics Co Ltd Device [144d:a801]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 46
        Region 0: Memory at 600000000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: [40] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [50] MSI: Enable- Count=1/32 Maskable- 64bit+
                Address: 0000000000000000  Data: 0000
        Capabilities: [70] Express (v2) Endpoint, MSI 00
                DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0W
                DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset-
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr+ NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
                LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM L1, Exit Latency L1 <64us
                        ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
                LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 5GT/s (downgraded), Width x1 (downgraded)
                        TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR+
                         10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
                         EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
                         FRS- TPHComp- ExtTPHComp-
                         AtomicOpsCap: 32bit- 64bit- 128bitCAS-
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR+ 10BitTagReq- OBFF Disabled,
                         AtomicOpsCtl: ReqEn-
                LnkCap2: Supported Link Speeds: 2.5-8GT/s, Crosslink- Retimer- 2Retimers- DRS-
                LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
                LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete- EqualizationPhase1-
                         EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
                         Retimer- 2Retimers- CrosslinkRes: unsupported
        Capabilities: [b0] MSI-X: Enable+ Count=13 Masked-
                Vector table: BAR=0 offset=00003000
                PBA: BAR=0 offset=00002000
        Capabilities: [100 v2] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout+ AdvNonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
                AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
                        MultHdrRecCap+ MultHdrRecEn- TLPPfxPres- HdrLogCap-
                HeaderLog: 00000000 00000000 00000000 00000000
        Capabilities: [148 v1] Device Serial Number 00-00-00-00-00-00-00-00
        Capabilities: [158 v1] Power Budgeting <?>
        Capabilities: [168 v1] Secondary PCI Express
                LnkCtl3: LnkEquIntrruptEn- PerformEqu-
                LaneErrStat: 0
        Capabilities: [188 v1] Latency Tolerance Reporting
                Max snoop latency: 0ns
                Max no snoop latency: 0ns
        Capabilities: [190 v1] L1 PM Substates
                L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
                          PortCommonModeRestoreTime=10us PortTPowerOnTime=10us
                L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
                           T_CommonMode=0us LTR1.2_Threshold=25600ns
                L1SubCtl2: T_PwrOn=10us
        Kernel driver in use: nvme