BLE beacon profile: Port Eddystone for Mbed to Raspbian - Raspberry Pi Q&A, Help & Troubleshooting

Hello,
Could you please help me to port the Mbed implementation of Google Eddyston Bluetooth Low Energy beacon profile to Raspbian on the Raspberry Pi 3b+. Sorry I can't link to the implementation now as I haven't written 10 posts yet.
But on Github it is under the directory...
google/eddystone/implementations/mbed/
Porting instructions from Google:
1. Edit Eddystone_config.h, most boards should work with changes only to this file.
2. There are #defines for each target board, just add your own #define to the list
Click to expand...
Click to collapse

Related

[DEV] Blackstone Linux / Android Development

This thread is for development discussion only. If you are not actively working on the project, please go to the discussion thread where your contribution will be more valuable. By keeping this thread clean, we can hope to get Android working on our devices much quicker.​
Project Status:
We now have a 2.6.27 kernel which is capable of booting Angstrom and Android. Android looks good and is responsive, but most core functions are not there yet. Work is focused on kernel development to provide us with a stable base with working hardware. You can find test files in the second post.
We have a Wiki page where the project gets documented in some detail.
History
The development had a slow start while Orux worked out how to make the mdp talk to mddi to get a working display. We hope that progress will be faster now as there has been considerable work on the Diamond and Raphael hardware, which is quite similar to the Blackstone.
23Feb09
Screen problems fixed at last - many weeks work from Orux got the mdp talking to mddi and give us a working display.
03Mar09
Wow! So much progress in just a week! We now have working SD (some issues with brands of cards - under investigation), allowing booting direct from the SD card; working hardware buttons, and some GSM functionality (the network connects and reports of sending SMS successfully). Credit to Orux, Pichurri, Cybersalsero, Jonlar (and have I missed anyone out - not me, I have been spectating!). Pichurri has posted a full install package on teh wiki, go try it and give feedback in the testing thread.
(to be continued!)
Current tasks
Debugging SD card problems many ppl having
Getting our own version of Android (currently using builds optimised for Raph/Diam
More GSM functions - who will be first to make a call???
What can I do?
You tell us! First thing would be to get yourself set up with a development environment. You need Linux on your PC - either installed as the main OS or if you use Windows, in a virtual machine (eg Virtualbox). Then follow the instructions on the wiki to get the sources and latest diff.
Reserved for files
Here you will find the up to date files related to the project.
Pichurri's full 2.6.27 install package is on the wiki here
You should correct the posts: 2.6.26 and 2.6.27 is the kernels used. More info: www.kernel.org
brumbrum said:
You should correct the posts: 2.6.26 and 2.6.27 is the kernels used. More info: www.kernel.org
Click to expand...
Click to collapse
We are using 2 kernels:
2.6.25 --> htc-msm-2.6.25 branch in git.linuxtogo.org. This is the kernel that we are testing in our machines these days.
2.6.27 --> htc-msm-2.6.27 branch in git.linuxtogo.org. Where we will stay in a few days. Better kernel, more improvements. Here is where people from other projects are working now.
orux said:
We are using 2 kernels:
2.6.25 --> htc-msm-2.6.25 branch in git.linuxtogo.org. This is the kernel that we are testing in our machines these days.
2.6.27 --> htc-msm-2.6.27 branch in git.linuxtogo.org. Where we will stay in a few days. Better kernel, more improvements. Here is where people from other projects are working now.
Click to expand...
Click to collapse
Sorry, my mistake. Typed the message above late in the night.
But in the first and second post in this thread it says 2.2.65 and 2.2.67.
Thanks, was posted in a rush, just pm me if you see more errors. We use the odd numbered dev kernels, they will always have the most recent stuff.
A challenge for someone who likes graphic drivers:
I think linux is using ~10% of epson controller capabilities.
We have a lot of information about this controller, and open source code from epson.
Perhaps someone would like to work with this stuff.
orux said:
A challenge for someone who likes graphic drivers:
I think linux is using ~10% of epson controller capabilities.
We have a lot of information about this controller, and open source code from epson.
Perhaps someone would like to work with this stuff.
Click to expand...
Click to collapse
Do you mean things like picture-in-picture? Would be good later on in the gui - multiple desktops, that kind of thing. Also I noticed the Epson controller handles TV-out. Do we know if the out-connection exists for this, or have they just not connected it up?
Another thing to consider maybe USB on-the-go - the MSM72xx supports it; if (big if) the usb port has the right connections, it would be possible to mount external storage.
But I think it's more for later on - core functionality would be about making calls, sms, GPRS/3G. Let's see what we get from the latest kernel. Orux have you talked to the RAPH/DIAM guys on irc about merging?
orux said:
A challenge for someone who likes graphic drivers:
I think linux is using ~10% of epson controller capabilities.
We have a lot of information about this controller, and open source code from epson.
Perhaps someone would like to work with this stuff.
Click to expand...
Click to collapse
what makes you believe that?
whatever makes you believe it, share it!
if you have anything like docs,etc to share or point to lets have it !
Blackstone has got 2 graphic processors:
--->mdp, inside the chip. We have drivers in the kernel (mdp.c, mdp_ppp.c ...) I am not sure what capabilities are being used in current kernel. There are not good docs about mdp processor (I haven't got any useful).
--->epson controller. It can do:
• Picture in Picture, Transparency, Alpha Blending
• Image Rotation (90°, 180°, 270°) and Mirroring
• Scroll Assist
• AME (Auto Movie Enhancement)
• Supports up to three layers
• Image Doubling
• Bi-Cubic Scaling (1/2x ~ 8x)
• Over/Down Sampling Scaling (1/8x ~ 8x)
• Edge Enhancement
We don't have driver support in current kernel, but we have docs and source code from epson (link posted in discussion thread).
Htc Touch Pro has a tvout usb cable adapter, and seems to work in linux! I don't know if this cable works with our device.
USB on-the-go: interesting TODO.
patp said:
Orux have you talked to the RAPH/DIAM guys on irc about merging?
Click to expand...
Click to collapse
Not yet; perhaps your (or pichurri, ...) task when we have a good .27 diff. I have too much language limitations for an on-line discussion
p3ngwin said:
what makes you believe that?
whatever makes you believe it, share it!
if you have anything like docs,etc to share or point to lets have it !
Click to expand...
Click to collapse
OK, OK! These things take time - we all have other jobs I guess. We plan to get any open source docs online in a systematic way, we just need to figure out a reliable way - ie not RS etc. And we have to be careful of proprietry materials - we don't want copyright lawyers after us...
If anyone wants to offer us some rock solid webspace, that would be awesome.
TODO: Investigate instability of screen
I think that problems with screen are caused by onscreen keyboard. This keyboard is an excellent hack, but it is not 100% integrated with android.
We need to test a kernel without it.
orux said:
I think that problems with screen are caused by onscreen keyboard. This keyboard is an excellent hack, but it is not 100% integrated with android.
We need to test a kernel without it.
Click to expand...
Click to collapse
Or use the cup cake version with the keyboard in android it self.
Full doc of the epson controler : http://vdc.epson.com/index.php?option=com_docman&task=cat_view&gid=278&Itemid=40
Link is at the bottom of the wiki, add yours
I don't think we need to put all the docs at the same place, just add links at the bottom of the wiki, either hosted or link to website.
I can provide hosting if you need, just pm me.
repository
what do you guys think about creating some kind of repository(git or svn) to upload and share our blackstone kernel? i think it would make development much easier if you could see changes of other people immediately. we could use github or sourceforge.
I also think the On-Screen Keyboard is a problem.
Earlyer today I was goofing around in Android and every time I moved the keyboard, the graphics started acting very weird.(scrolling, not updating etc.)
When I hit F5 on the OSK, it would refresh Android and go back to the home page and the screen would be normal again.
Maybe route the OSK to a pip on the epson?
It's git for kernel dev, anyways svn sucks (inc troll)
If we set up a git, we'll need a guy working as a maintainer and pulling from everyone. This may become usefull when people start working in many different areas of the kernel, but for now diffs are better as they can be easily shared, and there's a howto in the wiki.
patp said:
OK, OK! These things take time - we all have other jobs I guess. We plan to get any open source docs online in a systematic way, we just need to figure out a reliable way - ie not RS etc. And we have to be careful of proprietry materials - we don't want copyright lawyers after us...
If anyone wants to offer us some rock solid webspace, that would be awesome.
Click to expand...
Click to collapse
hey i have a servage account that i hardly use which has massive space and bandwidth i could give you a ftp account to and any sql servers you may need. let me know
Rewpparo said:
Full doc of the epson controler : http://vdc.epson.com/index.php?option=com_docman&task=cat_view&gid=278&Itemid=40
Link is at the bottom of the wiki, add yours
I don't think we need to put all the docs at the same place, just add links at the bottom of the wiki, either hosted or link to website.
I can provide hosting if you need, just pm me.
Click to expand...
Click to collapse
Agreed, the wiki is the best place for this. Would you be happy for me to mention your hosting offer on the front page (which will quite soon need a better structure I'm sure).
JanSchotsmans said:
I also think the On-Screen Keyboard is a problem.
Earlyer today I was goofing around in Android and every time I moved the keyboard, the graphics started acting very weird.(scrolling, not updating etc.)
When I hit F5 on the OSK, it would refresh Android and go back to the home page and the screen would be normal again.
Maybe route the OSK to a pip on the epson?
Click to expand...
Click to collapse
Now that my friend, is a stunning idea (if it can be done simply). How does it relate to the Android OSK mentioned by xmoo? I guess the linux one is low level whereas the Android one is basically an app in the gui. Advantages to both, but if it works out of the box, the android one would mean we could essentially get rid of the linux one. We have ssh if we want to type in a console (or maybe android terminal app?).

PS3 controller

Hi everyone,
I have started looking into using a PS3 controller as an input device for my Diamond.
I want the adility to play games using a PS3 contoller over bluetooth, as the device doesnt have good controls for games. I have managed to get my ps3 controller to work over usb on my pc Next step is to get my controller over blueooth to my pc, I will keep updating this thread
I have found some useful web pages
how get input from PS3 controller over wired with source code: http://www.codeproject.com/KB/mcpp/wiredps3axis.aspx
How to get ps3 controller over bluetooth on linux with source code: http://fedoraforum.org/forum/showthread.php?t=199246
I dont really know what Im doing when it comes to wm6 and making a device work with wm6. I dont know much about the bluetooth stack either. I will probably need to write some sort of a driver at some point. To catch the input from the controller and convert it into a command on my diamond.
So any help of any kind would be great. Any problems you can see with my plan?
Sorry not sure if this is the right place to put this thread so move if you want.
Well, that didnt go to well.
The controller is appearing in my bluetooth manager on my pc, but i cant connect or query its services.
Now Im really stuck
if someone could help me get some trace data from the connection, or enlighten me to a way of getting some information out of the bluetooth stack.
Thx,
Chris McNamee
Assuming that the PS3 doesn't use a proprietary communication protocol that can't be reverse engineered, this should be possible.
However, I suggest looking here first to get source and discussion re use of the Wii mote on the PPC first.
Then re implement the PS3's control mechanisms.
http://www.codeplex.com/WiiMoB/Thread/View.aspx?ThreadId=10953
There's further discussions here:
http://forum.xda-developers.com/showthread.php?t=335973
and here:
http://forums.neurostechnology.com/index.php?topic=9759.0
to get you started. Interesting project though!
V
Thanks
Cheers vijay555,
I will have a look as soon as I get a bit of free time
Hmmmm
Thanks vijay555
There is some excellent information on some of those links, but will need to get a wiimote. I cant tell if the drivers have been loaded by the wm6
but i was wondering, how does wm6 know which device its talking to over bluetooth?
It must be via a device serial or something, but what is the term for it?
like i said im a bit of a novice
Yeah, now we're cooking
I found an alternative, the wii remote/classic controller it uses bluetooth and there is lots of source code and examples
http://sourceforge.net/projects/wiiuse/
it comes with a libaray for windows and an example of how to use
all the source code is there to downloading
Now all I need is a wii remote
and to get it going on my pc, then port to PPC.
Then I need to write a frontend to control what action on the mote do on my PPC. Should be easy
sounds like an interesting project, keep us updated!
It has begun
Yesterday I bought a wii controller and got it talking to my pc using the wiiuse.
Wiiuse is open source and it has code already to interpret the controls of the wiimote, including the ir sensing, accelerometer, wii nunchuck, and the classic controller. Which we be very useful, as I dont need to work it out myself.
Also I have got wiimob, kind of working. It uses a library called bluetools to controller the bluetooth (which is pay for, so will need to find/make an alternative at some point but works for now). I have got to the point the author got stuck at (comment in the code says he never got passed), so Im kind of on my own now. Wiimob can search for wiimotes, then search it services but fails when trying to get a stream to the service. Im pretty sure this is because the RemoteService class returned by the bluetools doesnt have the correct GUID, which cause the connection to be refused by the remote device as it doesnt exist.
It is all looking very promising at the min
next steps:
get the bluetools talking to a service on my pc and see if I get the right GUID to determine if its the bluetools code which is failing to get the GUID or the wiimote not giving its GUID for the service.
Will post back with any news
Interesting
It seems that the library doesnt want to connect to a human input device, it wont connect to the wiimote or my bluetooth keyboard. It does seem to work to other services like Obex file transfer.
Hmmm, what?
Guess I found try and find some samples of people using this library and human input device or find a new library. Im not really up for trying to create my own at the min, as it would take a while
O dear
Its really not going well, either my knowledge isnt up to the job or it cant be done.
I have tried hard, but windows mobile is missing the all important hid.dll driver to get a listing of pair bluetooth hid devices so i can open a handle to the device. So I then looked into opening a connection myself and bypassing the hid driver, but from what I can work out it needs two l2cap connections open to the device, 1 on channel 11 for writing and another on channel 13 for reading data. But windows mobile doesnt have an api to access the l2cap layer of the bluetooth stack, the layer down (hci) can be extended but this would take along time to implement as I would then have to implement the l2cap layer myself.
Its turning into a losing battle, I really now doubting that I can do this.
The only idea left is how does the windows mobile use a bluetooth keybaord, does it use a generic driver which it extends or is it complete in its self. If it does uses a generic driver, i need to find some doc.
If anyone has any advice about how to implement l2cap connection or any thing about connecting to a hid device in windows mobile I would be very greatful.
Thanks guys,
But I think this is dead, like many other projects to try and get windows mobile work with a wiimote.
Things have taken a turn
Yeah,
A very helpful guy pointed me down a new line of throught,
I now beleive that I maybe able to do this
well, i need the win ce 6 platform builder
i owuld like to help but not got a clue about these things! keep up the good work
Well, any suggestions
Hmm, the wiimote uses bluetooth hid profile to communicate which talks over a l2cap connection. HID profile uses the universal serial bus (USB) architecture but send data over bluetooth
http://www.bluetooth.com/Bluetooth/Technology/Works/HID.htm
I have two options from what i can see
1. Well, I have found source for a sample keybaord device which I could rip off but cant get it to compile
2. Gain access to the L2CAP layer of the bluetooth stack by extending the stack with some of my own code. Then create my own connections to the wiimote and start sending and receiving reports to the device.
Any suggestions on the best approach?
both will take alot of time either way.
Hmm,
The L2CAP sample code requires some of the core dll for wm. These include coredll.dll and the btd.dll
during the build linking fails as I dont have the lib files, to get the lib files I need to build the os, as these files can change depending on the options specified during the build. I dont really want to do this, as it will limit the software to only one os version of wm, the one i build against.
Next question is can I do a library call and get the function points at runtime?
Well I think I may have to ask on a new thread. I hope so, as it would over come alot of problems, and it wouldnt limit the code to certain versions of the wm
Opened my mouth too quick
I using the wince 6 sdk,
But windows mobile 6 is based on wince 5. Hopefull I will have more luck with the wince 5 sdk
Well, that went a bit better.
Ive got pasted all compiling errors with the sample code I found. I have all the needed include and library files.
When trying to link the compiled code I get a single error now.
1>Compiling...
1>l2capdev.cpp
1>Compiling resources...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Linking...
1>uafxcw.lib(dllmodul.obj) : error LNK2005: DllMain already defined in l2capdev.obj
1> Creating library Windows Mobile 6 Professional SDK (ARMV4I)\Release/l2capdev.lib and object Windows Mobile 6 Professional SDK (ARMV4I)\Release/l2capdev.exp
1>Windows Mobile 6 Professional SDK (ARMV4I)\Release/l2capdev.dll : fatal error LNK1169: one or more multiply defined symbols found
1>Build log was saved at "file://d:\Documents and Settings\Chris\My Documents\Visual Studio 2008\Projects\Bak new l2capdev\l2capdev\Windows Mobile 6 Professional SDK (ARMV4I)\Release\BuildLog.htm"
1>l2capdev - 2 error(s), 0 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
If anyone can help with this error it would be great.
Sorry guys, but Ive got alot of coursework on at the min.
So it might go a bit quite on here for a bit, but done worry.
Im still working on this when I get some spare time, but I dont have much at the min
Any progress on this mcnamee?
No luck
Well, I have given up on this for awhile.
I would like to start working on this project again when I have some more time.
But for now this is dead.
Chris McNamee
If you are interested in alternatives to the MSI or Chainpus BGP100 bluetooth gamepad, google search "modded by bacteria" go to the "work in progress" section of his forums, and search for the thread "Re-housed Bluetooth controller". The creator of the site, Bacteria, will be transplanting the innards of the BGP100 into an SNES controller. Previously, he has transplanted it into a PS1 controller. It seams feasible to DIY into almost any controller housing.
PS3 for EVO?
I'd love to use the bluetooth connectivity for my Evo and playing ROMs. any ideas?
Apologies if this has been mentioned...

Android Bluetooth Support

Any word if and when Android will support MAP and other profiles?
Is there a possible workaround in the meantime?
Okay, what about utilizing iAnywhere Blue SDK? Anyone tried incorporating it?
This must be a taboo subject - there is literally no information anywhere on this. The only thing I could find is that Marvell has licensed the Android version of Blue SDK. Blue SDK for Andorid integrates MAP and a whole host of Bluetooth advanced profiles at a software level but I can't find anyone who has reported any experience with it.
Seriously, the iPhone and Blackberry all have built in support for advanced profiles. Android needs to get on board ASAP - the advanced profiles are crucial for automotive apps and next generation in-vehicle information/entertainment systems.
Does anyone have a contact with the Android developers they can PM me so I can try and find out if this is in the cards at all? This is terribly frustrating....
If you look the Droid 2/X it has support for MAP and some other protocols that the other android phones don't have. I'm currently looking at the Droid line to figure out where this support is and maybe see if I can port it to the Nexus.

Need help for merging python programs

I was doing my first raspberry pi electronic project. I choosed the adafruits Google docs logging project for a start. The project was a success and I obtained a complete output. My problem is , when I looked into the python program provided by adafruit (got it from github) it is calling other small programs. So I looked one of the called programs and it again calls other program.
I want to write a complete program that includes all the necessary things ie a stand alone version.
I want to write it in python 2. Also use a gpio pin 5. My model of pi is raspberry pi 2 model b.
I don't know whether I can include driver in my program. But if it is possible , I also want to include the driver too, please help me.

Windows 10 preview

Anyone gave this a try yet?
http://gizmodo.com/you-can-download..._source=gizmodo_twitter&utm_medium=socialflow
gsmyth said:
Anyone gave this a try yet?
http://gizmodo.com/you-can-download..._source=gizmodo_twitter&utm_medium=socialflow
Click to expand...
Click to collapse
Nope, have no use for it...
I've looked into interfacing with GPIO in C# but found it to be lacking in many ways, the most important being speed. It also appears to be impossible to repurpose pins with ALT functions which Microsoft have fixed to SPI/I2C etc- you can't use them as basic GPIO pins which makes it impossible to use Windows 10 with many, many Pi accessories. I have successfully tested I2C, however, and SPI to an LCD display is next on my list.
As for straight up GPIO twiddling, my litmus test was multiplexing a 7 segment, 4 digit display - not exactly an uncommon or complex activity. I couldn't get a stable timing resolution any smaller than 500 microseconds, and at this point you're plugging decimal numbers into DotNet's TimeSpan.FromMilliseconds and things are getting silly.
I'll have to try it with a straight up loop to see what overhead the threaded timer introduces, but right now Visual Studio is refusing to deploy code at all- probably because I've got a shoddy networking setup to bridge the Windows IOT ethernet-only connection to my PC.
One thing is abundantly clear; if you're not a DotNet/C# developer then it isn't for you.
It's Microsoft, just saying.
gsmyth said:
Anyone gave this a try yet?
http://gizmodo.com/you-can-download..._source=gizmodo_twitter&utm_medium=socialflow
Click to expand...
Click to collapse
It is just for developers. No desktop only app testing. Total waste of time.
gsmyth said:
Anyone gave this a try yet?
I'm also interested in finding out. Haven't tried it myself yet.
Anyone got it running?
How does it compare to 8.1?
Click to expand...
Click to collapse
@wodeh: what do you recommend to use in place of Windows 10 ? How does it compare to linux+python (with RPi-gpio) ?
I never used my RPi for this kind of things, I'm just curious.
@davcri91 it depends what you're familiar with- if you already know C#, use Windows and are familiar with Visual Studio then it will certainly get you off to a good start. Right now, though, support for Pi add-ons in Windows 10 is going to be all but non-existent so it's not the best all-round experience.
Raspbian, the official OS, grants you much more flexibility- you can choose to use Python, Ruby, Node JS, PHP, C, Go or really whatever you fancy. All the current documentation and software support is focussed on this OS, so Pi add-ons- especially more complicated things like our Unicorn HAT or the Pi DAC+- will work.
As for performance, I've yet to try a better test since I couldn't get Visual Studio to upload code to my Pi anymore and didn't want to waste any more time with it. My initial experimentation suggested that C# is tremendously slow at toggling an IO pin though, I couldn't even reasonably multiplex a 4-digit, 7-segment display whereas in Raspbian I can clock out serial data to a 128x64 pixel LCD at 200FPS.
Someone with a more recent working knowledge of C# ( mine is about 10 years out of date ) could probably do somewhat better... I'd hope.
The GUI "Universal App" stuff seems to be a talking point for Windows IoT but this has absolutely no utility in any setup that doesn't have a screen. My preferred setup for Raspberry Pi UIs is HTML/CSS with a RESTful or Web Sockets API- that way I can use my phone, my laptop, or whatever screen/device is handy.
So to summarise:
Windows IoT:
* Targeted at existing C# developers
* Dev-environment with step debugging and all the trimmings
* GUI framework... I think... for better or worse
* Slow to build and deploy
* Slow IO, it seems
* Impossible to use pins reserved for I2C/SPI as general purpose IO, breaking any add-ons that rely on this
Raspbian:
* Complete and total free for all- could probably even use C# with Mono
* Whatever Dev environment you can cobble together.. it'll probably be Sublime Text on your computer plus SCP or VIM/NANO/IDLE
* No standard framework for doing anything, which is a shame- there needs to be an official stance + docs on App/Game dev for the Pi
* You can just run Interactive Python and toggle GPIO pins on and off instantly with commands- fast deployment/test/fail cycle since you're already *on* the device
* IO pins will toggle at 20 Megahertz using C, although the resulting signal will be useless mush
* You can re-assign IO pins as you see fit- SPI and I2C can be regular GPIO, and you can use ALT functions to move some things around
This is a totally top-of-my-head summary of the strengths/weaknesses of each. It's an apples to oranges comparison, though!
You made a really great post, thank you wodeh
For now I think I'll stick to linux because I'm used to Python.

Categories

Resources