Closed anoduck closed 5 months ago
The project compiles and boots 2x HackRF, but there's a more fundamental issue for LTE use: HackRF devices have no internal hardware clock, meaning that you can't specify to transmit or receive at a certain timeslot (The BladeRF supports such functionality, in addition to being natively duplex). The LTE protocol requires very precise timing even in FDD mode:
https://www.rfwireless-world.com/Tutorials/LTE-frame-structure.html
The issue is that the HackRF devices are designed for streaming operation - essentially switch them on to RX or TX at a specified frequency, and continuously stream samples to or from them. I started on an attempt to handle the timing driverside, but couldn't see anywhere near the resolution required for LTE.
@tomdionysus Would not it be possible to use external development board to provide this functionality?
Not as far as I'm aware - the issue is that the radio itself needs to switch transmission or reception on or off at specific intervals. It may be possible to create custom FPGA firmware for the HackRF devices to do this, but that's beyond my capabilities at this time. It would be good to get someone involved who knows a lot more about the HackRF internals.
If I knew more than I do, I would help anyway I could. I Just don't know enough about the technology. It is sad news to hear, as even the knockoff usrp devices are still fairly expensive.
@tomdionysus I know this is an obvious suggestion, but have you reached out to Michael Ossman @mossmann about the need for an internal RTC to coordinate communication?
@tomdionysus Is not this paper written by Bartolucci a viable solution to exactly what you are talking about?
The paper discusses the use of two hackrf devices conjoined together with a low-cost off-the-shelf GNSS receiver. It uses the LTE opportunistic approach to validate the synchronization offset of the two hackrf devices. It was referenced by @mossmann in the hackrf documentation, along with the information on hackrf's external clock interface, and how to perform hardware triggering with the hackrf.
If an FPGA is needed in conjunction with or in substitution of the following setup, as you probably know, the Alchitry Au is the gold standard for FPGA development boards, although it's price may be undesirable. It's smaller cousin, the Alchitry Cu had a more comfortable price tag. Alorium Technology's Sno FPGA platform looked very favorable indeed, and appeared more open source friendly.
I surely hope all of this helps.
@tomdionysus Is not this paper written by Bartolucci a viable solution to exactly what you are talking about?
That paper is part of the solution, but a complete solution would also support timed transmit and receive operations. The host needs to be able to tell one HackRF to start RX at a certain time and the other HackRF to start TX at a certain time, and those times require precision relative to each other. Timed operations would require a considerable firmware development effort to support, though some groundwork was laid in https://github.com/greatscottgadgets/hackrf/pull/982.
Thanks @mossmann, from my incomplete understanding this is what I'd thought. Although as I said firmware development is beyond my current ken, I'd be happy to help in whatever limited fashion required if this is a direction the project is going in. Certainly, being able to do LTE with 2x HackRF would be very cool. Am I right in saying the HackRF would likely need to share a reference clock (both of mine have the 10MHz precision oscillator addon)?
@mossmann Wow, thanks for the response, quite informative. I missed greatscottgadgets/hackrf#982, but of course discovered greatscottgadgets/hackrf#381 with Bartolucci and Oleg Kutkov's HackRF Supercluster. There is indeed some groundwork, but as much as it pains me to admit, it is well out of my pay grade at the moment. Maybe someday, but I don't know when.
The alternatives are very expensive. As expensive as everything has become lately, pretty soon you will see me sitting out in front of a Best Buy with a sign reading "Will program for food."
Anyway, closing this one out.
@tomdionysus How far along is the project? Is it ready for testing? Should I go ahead and get another hackrf?