Si può fare una radio Bluetooth da zero?
Cosa intendi specificamente quando dici una "radio Bluetooth"? Supponiamo che tu intenda Bluetooth Low Energy.
Intendi implementare solo il livello fisico del collegamento wireless? Tutto ciò di cui avresti bisogno è un trasmettitore di classe AB e un ricevitore supereterodina dove entrambi sono sintonizzati per funzionare nello spettro tra 2400 MHz e 2480 MHz. Hai bisogno di trasmettere/ricevere 1 Mbps, dati modulati 2-GFSK, >185 KHz di deviazione, +/- 50 ppm di errore di temporizzazione del simbolo. Devi supportare 39 canali con 2 MHz di larghezza di banda del canale, e il tuo trasmettitore è limitato a +10 dBm di potenza di uscita massima (assumendo un'antenna 0 dBi, e stai operando sotto la revisione 4.2 di Bluetooth Core, e non sotto CSA 5). Ci sono altre specifiche sul PHY radio che devi soddisfare, ma queste sono le più importanti per iniziare.
Ora come gestisci il livello MAC? Sarà fatto in hardware o in un software che gira sopra il tuo radio PHY di cui sopra? Dove fai rispettare la lunghezza massima dei pacchetti e l'indirizzo IEEE della radio? Dove filtrate i pacchetti ricevuti per indirizzo? E il channel hopping - è gestito nel tuo MAC (nell'hardware o nel software) o da qualche altra parte nello stack? Dove si fa rispettare la spaziatura minima tra i frame? Tutte difficili sfide progettuali che devono essere superate.
Ora che dire del livello di collegamento? Questo è troppo complesso per iniziare a riassumerlo, ma dovrete implementare anche questo. Oh, e già che ci siete, non dimenticate il security manager, il profilo ATT e il database GATT. La tua radio Bluetooth sarà un master/centrale o uno slave/periferico o entrambi? Vuoi essere in grado di supportare più connessioni simultanee? Solo un paio di decisioni di progettazione che devi prendere a questo livello.
Ora che hai fatto tutto questo, come svilupperai un'applicazione sopra la tua radio Bluetooth? Quali funzionalità abiliterà la vostra API Bluetooth? Quali sono le risorse necessarie per far funzionare il vostro dispositivo Bluetooth? Cosa viene gestito dall'API stessa e cosa ci si aspetta che l'utente imposti/gestirà? Altre decisioni di design da prendere a questo livello.
In definitiva la risposta alla tua domanda è: sì, è possibile sviluppare una radio Bluetooth da zero. Molte aziende lo hanno già fatto, e continueranno a farlo perché c'è una domanda di Bluetooth.