Hi;
It is really a good work. Congratulations...
I hope to develop in this project. Although I do not have any
experience about microcontroller development and gsm,
I think I can do. I can develop with C or C++.
Does anyone suggest me any document, site to start?
Thanks...
>> But I guess you can use two MSs, one for transmit and one for receive
to
>> overcome this limitation. Is there any problems with this approach
other
>> then good clock synchronization?
>
>You need a very good clock sync :) But that's something that could be
>tried I guess.
maybe..
you could sync the "receiver phone" to the "transmitter phone" by using
one timeslot. (TS7)
or you could sync the receiver phone to a nearby bts and use a control
line on the serial link to sync the transmitter phone to the receiver
phone. (you need to cross-connect the serial ports on the phones for
signalling anyway.)
andreas
> But I guess you can use two MSs, one for transmit and one for receive to
> overcome this limitation. Is there any problems with this approach other
> then good clock synchronization?
You need a very good clock sync :) But that's something that could be
tried I guess.
> PS Looking at pictures of ip.access Nanostation we didn't find any duplexers.
> How does it work then? Or have we just missed duplexers on the photos?
Nope, no duplexers.
There is a TX antenna and a RX antenna. I think they are patch antenna
that don't radiate sideways so that they don't leak into one another.
There is also a massive chunk of metal between them to isolate :)
Sylvain
Hello Sylvain,
On Wed, 24 Feb 2010 00:06:54 +0100, "Sylvain Munaut" <246tnt(a)gmail.com> wrote:
>
> Since the beginning, I'm wondering if it would be possible to turn one
> of those cheap phone into a BTS. I'm n ot talking a full featured BTS
> and the mod will involve hardwares changes obviously.
> The more I look at it and the more I think it might work. No, I'm not
> crazy, please bear with me until the end of this post :)
No, you are not crazy, to be true I thought about it for a while too ;-)
It all depends on what you want to do. Just transmitting a C0 so that
other phones nearby would recognize the new BTS should be rather easy.
You can synhronize on an offical network to adjust the clock, the clock
should be stable enough for a while so that other phones can detect the
new BTS. There should also be no severe limitations from any filter
when transmitting. You are probably out of the specification for the
transceiver and maybe the power amplifier but the power should still be
good enough to cover an area large enough for experiments. Transmitting
the required SBs and FBs should not be too difficult, the DSP cannot
generate them, however its rather easy to programm the ABB with the
raw bits of a burst.
Receiving is more difficult. The filters will influence the signal
quite a lot, however it should be still possible to receive strong
signals without the requirement for a hardware modification. I
already did a few experiments to find out how far the transceiver
could be tuned out of range, for GSM-900 I was able to detect the
frequency bursts of a 840 Mhz signal with about 40 dBm less strength
than receiving a similar signal inside the GSM-900 band. 840 Mhz
would be more than enough for receiving uplink signals in GSM-900.
I did not yet tried it for the transmitter, however I expect that
it can be used to transmit downlink frequencies too.
Just as an example for the influence of the filter: The Openmoko
Freerunner uses a Calypso based Tri-Band GSM modem, its available
for GSM-900 or GSM-850, the difference is mainly a different filter
in the RX path. However you can still use the GSM-850 variant with
GSM-900 if you are close enough to the BTS.
One real problem for the "phone as a BTS" idea is the detection
of the RACH bursts. You most certainly cannot use the DSP "as is"
for this task because it does not know about the special RACH burst.
It would probably require some modification (patches) to the DSP if
you want to detect and handle them.
Best regards,
Dieter
--
Dieter Spaar, Germany spaar(a)mirider.augusta.de
Hi,
Since the beginning, I'm wondering if it would be possible to turn one
of those cheap phone into a BTS. I'm n ot talking a full featured BTS
and the mod will involve hardwares changes obviously.
The more I look at it and the more I think it might work. No, I'm not
crazy, please bear with me until the end of this post :)
So, what are the obstacles (taking the C118 as an example):
* RX filters :
Obviously you would need to remove one and replace it with one for the
good band. I would only replace one of them so that you can use the
900 band for BTS and the 1800 band for MS for example (so that you can
still listen to a official bts and calibrate the clock).
* RX/TX switch
Those have ports that have frequency bands ... but .. do they really
filter that much ?
* MS can't TX/RX simultaneously.
I think you can take advantage of the fact. Imagine that you only ever
allocate channels on TS0,1 & 2. ( BCCH+SDCCH/4 + 2*TCH/F ), you could
divide your time like this :
TS0 - Capture FCCH of a nearby station to calibrate local vcxo
TS1 - Our BTS TS0 TX
TS2 - Our BTS TS1 TX
TS3 - Our BTS TS2 TX
TS4 - Our BTS TS0 RX
TS5 - Our BTS TS1 RX
TS6 - Our BTS TS2 RX
TS7 - nothing ...
But this can still be a battery powered handheld BTS :)
Sylvain
Hi!
I've done a day of bugfixing today, mostly regarding the timing and
sequencing of the TPU window during receive (and transmit).
The biggest new feature is the #define TPU_DEBUG which will transfer the
content of the TPU RAM to the host PC every time tpu_enable(1) is called.
There's a TPU debugger (tpu_debug.c) as part of osmocon which receives,
decodes and prints the TPU instructions. This way you can clearly see
the exact sequence (and timing) of the commands that are executed by
the TPU.
What turned out to be the major problem that I was hunting most of the
day: Whe first did the downlink calibration (BLDCAL), then waited for
a specific time, and then enabled the downlink path (BDLENA).
This worked fine so far. I then added code to disable the TRF6151 after
the downlink path is closed (twl3025_downlink(0)). Suddenly not a single
burst was received anymore.
Now the sequence of events seems correct, at least in the little testing
I did.
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
hi there,
my name is andreas eversberg. i worked for the mISDN and openbsc project
before. after joining the openbsc project, i mainly worked on the call
control protocol and the application interface, as well as E1 kernel
driver improvements for openbsc. i expanded my linux-call-router
application to be able to link with openbsc, so both become a mobile
network, as used on the 26c3.
i like to put my experience into the osmocomBB project. therfore i
started working on the layer 3 "call control" (network layer, mobile
side) already. (TS 04.08) the application interface is almost identical,
so osmocomBB can be used with linux-call-router also. the next goal is
to implement "radio ressource" protocol and "mobility management"
protocol (real state machine), and i hope to get help with that. all
three protocols are required to do voice calls.
my motivations for joining the project are at the moment:
- having a cool (graphical) network monitor
- backup line for PBX, PBX in a car.
- attaching (virtual) test SIM via phone's menu
- changing IMEI via phone's menu
i hope this project make as much phun as openbsc.
andreas
On Sun, Feb 21, 2010 at 06:03:08PM +0100, Sylvain Munaut wrote:
> > I will think about how to solve this. Either we introduce some busy-waiting
> > until more space is available, or I will try to fill existing buffers even
> > beyond the end-of-line.
>
> I've seen the commit to fill up the msgb more. But this exposed
> another bug in msgb I think.
> The headroom allocation doesn't work AFAICT. In msgb.h there is :
>
> static inline int msgb_tailroom(const struct msgb *msgb)
> {
> return (msgb->data + msgb->data_len) - msgb->tail;
> }
you are right, it should be msgb->head + msgb->data_len, I've fixed
that now.
I've also changed to busy-wait until we have msgb's available again.
dsp_dump and hello_world as well as l1test seem to work again now.
It's all still a big hack and later we need to determine if we're called
from a context that supports busy-waiting at all.
Imagine this code being executed from the FIQ context, while new memory
will always only be available from IRQ context (UART Tx FIFO interrupt):
We will deadlock.
Cheers,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi,
I'm new at this project and I've no experience to program a complete SIM
card. But I've experience to implement the ISO-7816 standard on a
ARM-Cortex-M3, so that you have a SIM-interface (SIM emulation) between
the PC an the Mobile equipment.
However, if I can help I'll be pleased to hear from you.
cheers,
Carsten