Friday, January 25, 2013

Regrouping...


Last night, I tried to get the STM examples working using the Mentor CodeBench. It didn't work, or wasn't straightforward. I had make files pointing every direction, and finally got it to compile. It never linked, too many h files that didn't have matching libraries.

I want to re-do the whole example directory. I think I can, and still make it work. The CodeBench doesn't have discovery f3 header files, so the the 8 leds aren't quite mapped out. I may be able to copy one of the header files from the STM examples to the STM directory, and make it all work.

This guy recommends building my own linker script. I am thinking that would be a good idea. Maybe that will be the trick.

I've worked with BSP's before, but they were the whole tool chain for the board by the manufacturer. I wish people would give up on proprietary compilers and such. Unless they are building code that is orders of magnitude more efficient, there is no point. Just build for GCC and we all will be better off.


Stuff 
The CodeBench manual link

I went to a seminar on building presentations. It had a bunch of good ideas. I am going to try to engage all the readers to be more active in my project using those techniques. Prepare to be engaged!

Another Rant
I don't know what is going on. TimeWarner cable said they upgraded my speed over Christmas. Well, maybe, but it seems everything I do on this laptop is as slow as molasses! It used to be faster, and sometimes I can download movies well (ooo, if you haven't seen Speed and Angels, Hulu has it on their basic service for free. It is a pre-quel to top gun)

Tuesday, January 22, 2013

more stm discovery f3 links


STM has a repository of sample code for the discovery board. I need that for finding out how to make calls. I am more of a monkey see, monkey do kind of programmer. I'll use the manual if I have a question about a call, or can't find and example. I find it faster to find some code that mostly does what I need, and adapt it (reuse!). Most of the ST site is full of javascript pop ups that probably work on other browsers, but on Mandriva running Linux, the popups get lost, and make navigation complex (probably windows would be similar, but I am not going to try to find out. The manual is a PDF file, which is fine, I can download that and have a copy any time I need it. Some of the confusion too is all the devices that you can get data for.

The example code includes code for the on chip peripherals, not so much for the off chip items like the accelerometer, compass and gyro. I'll still have to dig for that.

Then of course, yesterday hack-a-day had a template for setting up discovery board projeccts.  I'll have to look at it now, since I have a link to it. He has something similar to code bench but for gcc-arm-embedded toolchain. That is good. I should be able to follow some of that work and get some ideas.

On my facebook post, I suggested I was building an autopilot. This can be the hub of various peripherals, including the autopilot. Unless one gets a direct route, the heading might not matter, but the IMU should allow guidance point to point, as good or better than the GPS. 


News on the JXD S5110 front...

My son has tuned in to the whole retro gaming with game pad buttons. He is probably playing the game as much, or more than he was before (that is good and bad). I spent some time with it also, when he wasn't around. The OTG port was just sitting there, and I finally got around to plugging a mouse into the port. It worked! so if he gets bored with the retro games, he can plug a mouse into it, and use it like a touch screen. The usability is going up! I won't show him the HDMI port, or he'll probably want to play all his games on the big screen.

More people are following, so tell your friends!

good luck

Saturday, January 19, 2013

Discovery Board is Working

Last week, I got the compiler compiling code. This week I got the discovery board talking OpenOCD. Life is good, now I just gotta figure out a protocol for sending data back up the USB port.

The engine monitor is on the back burner again. I want to build an IMU, since I have this board. If I can build an IMU, I should be able to build a little glass cockpit type display, similar to the Dynon or other EFIS app for the Android. The discovery board doesn't have any pressure sensors, but has a 3 axis gyro, a compass, 3D accelerometer, and a bunch of LEDs.

Using the gyro's, compass and accelerometers I should be able to build an accurate atitude indicator, a turn coordinator, a directional gyro indicator. If I can add pressure sensors, I should be able to build the whole "6-pack" from a standard instrument panel.

The secret to OpenOCD was at this site. Don't build the ftdi stuff, unless you have the ftdi dongle. If you are talking to the Discovery board, all you need is "stlink" that has been in OpenOCD since version 6.1.

The open pilot site has some resources for the discovery f3. There is a quad copter built using one.

Life is funny sometimes. Telnet, something I rely on, it is just there on all systems, old DOS (with some network kit), windows, all the unix systems I've used, mac and linux. For some reason, it isn't part of the default installation of Mandriva linux. How does one do anything without telnet. A simple urpmi and I have it, but weird!!

Anyway, I don't know if I added a link to this page, but it has a very high level set of instructions for building and loading software on the board, including using OpenOCD. He does:

openocd -f /usr/local/share/openocd/scripts/board/stm32f3discovery.cfg &
telnet localhost 4444
reset halt

flash erase_sectors 0 0 127
flash write a.out 0x8000000
 

To make that work, you really need to use the '&' to put open OCD in the background or use another terminal to do the telnet. Then you need to use different commands (maybe he had another version):

openocd -f /usr/local/share/openocd/scripts/board/stm32f3discovery.cfg &
telnet localhost 4444
reset halt

flash erase_sector 0 0 127
flash write_image imu.elf 

I havn't figured out what offset to write the image yet. There is another version of write:

flash write_bank bank_id filename offset
        Write binary data from file to flash bank, starting at specified
        byte offset from the beginning of the bank.

I think that will be something to play with in the future. The test_image shows it at 0x0800000, which may have been a typo from the initial site.

test_image imu.elf
address 0x08000000 length 0x000004cc
address 0x080004cc length 0x00000028
verified 1268 bytes in 0.000318s (3893.966 KiB/s)
The darn GDB doesn't work though. It was built expecting libncurses.so.4, and I only have that version in /usr/lib64.  I'll probably have to build that too, now. The demo code only increments a value by 5. Probably keeps the CPU pretty busy! Good way to test the debugger once I get that running.




 
The JXD S5110...

Well, it lived a hard life. It isn't dead, but well on the way. Today it was dropped, and the screen broke. This seems to have rendered the touch screen completely useless. I cannot figure out how to make the touch screen usable. The emulated games to work though. They mostly relied on the buttons around the screen, and they still work! The buttons emulate certain screen inputs, so you can unlock the device, and navigate the icons to select the games. It is funny, you know it is android, and you want to touch it, but that doesn't work. The joystick on the side does most of the driving, and the select button selects things. If someone made a good bumper for it, I'd probably buy another one.

Keep building

Sunday, January 13, 2013

Android Christmas


For Christmas, my older son wanted a phone. Without any influence, other than he couldn't have a Galazy Note or an S3, he wanted a Motorola Backflip, or any Galaxy phone. (I think he knew that I wouldn't buy him anything from Apple). We weren't going to pay for an unlimited plan, so I thought it reasonable to get an unlocked phone, and a pay as you go plan. Our older son and daughter went halfs on an unlocked Motorola Backflip. At first I thought this a great idea, but the backflip is so attached to ATT, that we can't load too many useful third party apps on it. I let him use my myTouch 4g until I can get this worked out a little more.

My other son got a JXD S5110 android gaming device. If you have never seen one of these, they are pretty cool. It looks just like an older PSP, with all the same buttons, but without the CD drive in the back. There is a circular Android logo on the back, that makes it look like a PSP. It has a large screen and a ton of software loaded on it (emulators mostly, Mame, N64, GB, etc). It has Ice Cream Sandwich, but you have to load the play store on it.

99% of everything I've loaded on it works. He plays temple run, cut the rope, and NinJump mostly. It has a multitouch resistive screen, and works amazingly well. You have to push, but overall, it impressive how well it works. One thing that doesn't work is Youtube. I can't tell you why.

The JXD X5110 is fragile. He dropped it the first day, and broke the WiFi switch. Why it has a physical switch, I can't tell you, since it is also software controlled. The back comes off of the device easily, so I soldered across the WiFi switch, so we don't have to deal with that. Over the next week, he has dropped it a couple more times, and knocked the power switch loose, and both of the top buttons. The power switch is about the size of a grain of rice, and the left/right buttons are larger push buttons. I was able to re-solder them on. I am guessing they probably flow soldered them with solder paste (RoHS and all). I used plain old 60/40 lead solder and a 15 watt iron. Nothing to it, maybe like 20 minutes total time (it took a little time to find the power button, since it is about the same size as the screws).

I don't know if I mentioned it, but my wife and I both got Galaxy Note 2's a couple weeks before Christmas. That was a good choice, I really like the device, and with the big screen, it makes everything else seem tiny. I haven't done any programming for it yet, but I want to try, especially for the side by side two apps at a time work. I've got podkicker on that, and been listening to the GoogleIO podcasts from last summer. I mostly listen to +All About Android and +Android Central podcasts for insite into future and device considerations. 

I've done a little work to get a development environment setup for the STM Discovery F3 boards I have. I tried really hard to build GNU toolchain from scratch, but eventually gave up and got the Code Sourcery from Mentor Graphics. It is all setup, but havn't built anything to install yet. I am tempted to use the Discovery boards for the processor for the engine monitor, instead of the Arduino. It'd just be nice to move on from 8bitters finally.

I also was working on pinewood derby, and plastic models, and all. Not much time for watching TV, but I want to play with the SDR again. I've kind of let all that go since last summer.

keep in touch. 


Sunday, November 25, 2012

I am getting excited

Earlier in the week my chips showed. They came from California, not from up the street. Wow, they are tiny, but that is ok. I've decided this is going to be a prototype, and if things are working, I'll do a board layout, and have a short run of boards made. Maybe do a kit, if anyone wants one. This being a holiday weekend (Thanksgiving), I didn't do anything but think about things.

I did go look a new phones. I am really excited about the Galaxy Note II. Close to a tablet, but then it is still a phone. It does fit in my pocket, and the stylus seems really useful. I played with one at the mall on Friday, and I really liked it. More to learn, but overall the same Android that I know and love. More to see and a smooth briht screen.

Speaking of Android vs. Apple again, one of the other Cozy builders talked with one of the autopilot manufacturers who said, Apple doesn't want liability for any control software, so Apple won't let anyone add an autopilot app to the iTunes store. My comment was, the Android eco-system is just getting ramped up, with multiple sizes and configurations. Unless Apple has something significantly better than Siri, they are always going to be playing catch-up to Android.

Discovery Board - Autopilot

Hack-a-day again cam through. They had links to the STM discovery F3 board Linux tool chain. Not for building Linux on the board, but for building apps for the board in Linux. The board has been sitting in my bedroom on my night stand for the last month. I was excited about getting it, but no time. Hopefully some time will be available real soon now, especially with the availability of OpenOCD for the F3 ready to go.

The DIY Drones guys had a Black Friday sale. I was looking and thinking, they have whole FMC (flight management computer) for about $150 on sale. I certainly can't build one for that much, including software, given my time.

My Christmas wish...more time, and closer to my airplane.

happy holidays

tom


Wednesday, November 14, 2012

I just gotta say something...

A product review, if you will.

I got an "Fly Air Mouse" for the Mk808, and am mostly unhappy with it. The accuracy isn't that good, and it doesn't function all the time. The keys bounce, and the some of the buttons don't always do what it says.

There is a nice bluetooth to USB dongle that just plugs in the Mk808 and it all woks fine. The instructions aren't really clear. You need to push the Android button down half way, to use it like a mouse. The full press means select, similar to the left mouse button, but it doesn't always work.

There is a full keyboard on the device, that can be very nice. searching for netflix videos, or entering something in a web site. You need to be careful, the keys bounce. You might be typing in a simple word, say "columbus" and it comes out "ccollumbbuus". I am never sure, and still pressing the delete or back space, and that key will bounce. Getting back to the first "c" may erase the whole word.

Actually I think the best thing would be a simple wireless mouse. The on screen keyboard on the Mk808 is really solid, and almost everything can be done with the left mouse button.

I don't want to complain about anything, or make the world think that this is completely useless. It can be usable, but I probably won't use it much.

That is all for tonight.

tom

Sunday, November 11, 2012

I got a couple days...

Before the MAX31855's show up. So I can afford some distractions. The STM32F3 discovery board I ordered showed up. This board will probably be pretty useful. I still want to do some instruments, and this could be the strap down IRU maybe. It seems to have enough GPIO pins on the board to maybe even be an air data computer by adding a couple pressure sensors to it. It only has USB IO so connecting it to an Android might be a challenge.

I've been listening to the GoogleIO podcasts and the Android library has a nice IO library that allows similar calls for Bluetooth and USB. I think it requires 4.1 though, and may or may not have backward compatibility. I really feel I missed out on this years conference. I don't know why it wasn't even on my list this last year. They gave away a really cool ADK kit that is like an alarm clock, but allows many development options, including demo code for connecting euther Bluetooth or USB.

I figure between the ADK libraries and some demo code for the STM32 discovery board, I ought to be able to connect them together. I need to play with USB hubs though. The physical connectors are either USB minis or USB micros and nothing has a A connector. The discovery board has two USB mini connectors, and the tablets and phones have USB mini connectors. I believe the phones support USB On-The-Go so that should work, but I still need a cable. That is there I think the HUB would work, since I have plenty of A to Mini and A to micro cables.

Sure enough, once you start looking, good things happen! There are A female adapters to mini and micro B connectors, or individual ones. This is going my way now.

Some phones have gyros, and most have compasses with accelerometers, so why have this board in the plane? Few tablets have gyros, and that is what I want in the dash of the plane. The compass may not work in all orientations, or near whatever is in the panel either. Having this board allows placing the gyros and compass in known good locations, and having the air data information integrated will allow any tablet to be used, and know it will work at all times.

I may not finish this in the next couple days, but that is OK. I have plenty to follow up on, and read about and plan. Give me a couple months, and I think I'll have something working.