NFC Chipset evaluation tool - visual-c++

I need to develope a NFC chipset evaluation tool. i need to connect the NFC board (that includes the NFC chip) to PC (running in Windows). then i need to get all the data of the chip to my PC using a software tool. this is the first time i am trying to do it. i need some advises regarding the first steps. i suppose, i would use a TCP-IP protocol to connect with the chipset. but how exactly it would work? for example, there is a USB-tester... http://www.vconsole.com/client/?page=page&id=13. my tool will be similar to this.
i also need to validate in the low level entry, for the framework.
i need to have a process description for the development of the tool. what are the steps?
thanks for your advices.

You cannot use TCP/IP over a USB/I2C connection. Most test boards come with software that you can use to connect to the board. What you are asking is a very broad question. If you are trying to write your own question, or hook it up to Excel to run tests with, you are progressing down a very time consuming path. People here are willing to help you figure out a question you are stuck on, but not to do all the hard work for you.
Like I said, you are starting on a BIG project, and will need to research A LOT. Then I'd recommend asking specific questions rather than very general questions.
As far as where to start, I'd start by writing down everything you want to know, and then start figuring out how to get each individual piece.

Related

SuperCollider without jack server

One of the requirements in my project is to reduce runtime footprint on an embedded system. It looks like jackd is required on Linux and seem like it's currently a hard dependency and it cannot use libasound directly instead, is it true? It'd be also great to hear from someone who use jackd on an embedded device and could summaries it's resource usage. Although, I'm planing to use BeagleBone with relatively enough memory, I'd rather spare it for a longer delay line instead of running jackd.
Jack is definitely the standard way of doing it for SuperCollider on Linux. There is an AUDIOAPI flag in the cmake build settings - you can set -DAUDIOAPI=portaudio when you make your own build. (There's no direct libasound implementation; supercollider is cross-platform.) However, be warned that the portaudio approach is rarely used and might not even work at the moment. If you need help getting a build working, ask the sc-devel mailing list.
On the other hand I know people have run jack+supercollider on small ARM devices such as beaglebones. You might find it a better use of your time to go with the flow and use jack.

Balanced processor/SOC (?) for small embedded system running linux

So, I know Linux kernel is quite "heavy" when considering lower scale embedded systems, but currently but we're a 2 man team trying to see how to create our own embedded system.
I'm the one in charge of all software (the other guy is a HW guy), and thus I would like to re-use existing libraries and frameworks as much as possible, and I would like to bounce off some ideas with gurus around here.
I am fairly comfortable in Linux, but the booting and initialization process is new to me, and I need to dive in to that soon enough. Any book recommendations are welcome as well!
I haven't designed any embedded systems before.. Only own some ARM dev boards (beagleboard and raspberry pi).
Current I have prototype of the software running on beagleboard already, and now we're thinking how to minimize the cost, and to create something our own..
It's a system connected to the internet, and I need to run a tiny web server with some scripting support. Performance wise I don't think it needs to be too powerful.
I would like to minimize all bootloader etc work, since I'm a one man SW team, and just concentrate on the application itself.
Of course I understand that I need to configure our kernel for this, but this is indeed why I thought selecting some SoC would be good, since they usually have some linux and bootloaders ready..
First I thought that Cirrus EP9301 would be perfect, since it seems to be a good package, and not very expensive.. But it seems that it's already in end-of-life, and also support for this is very bad (people on the cirrus forums constantly complain about it).
Are there some good choices for this kind of project, which would enable us "easily" to get linux kernel up and running, with still maintaining some kind of decent BOM (hopefully 20USD or so) ?
Your hardware guy should already know this, but go with an existing reference design. Take the raspberry pi, the beagleboard/bone, open-rd, or any number of other existing systems and clone the part you need. As a result the linux porting will be a matter of removing what you are not using from the reference design instead of adding new stuff and hoping it works. If you go with flat pack parts you can do the work in your garage, if you go with bgas you need the equipment for that or pay someone to do it. (can you tell yet that I hate bgas?).
Is linux a requirement, if not that opens the door to a lot more devices using freertos or chibios or a number of other solutions. the stm32f4 discovery board for example is $20, uses what can barely be called a microcontroller for all the features it has (cortex-m4). Supposedly possible to run uclinux on a cortex-m, but definitely possible to run any number of rtoses and have an ip stack, etc. stellaris (ti.com) has a number of eval boards, one/some with ethernet already (use as a reference design). You can also take the wiznet approach (or a spi ethernet) and use any microcontroller (puts you into the avr/msp430 level and price range). Bang for buck the cortex-m's are good, arm based so comfortable to work with, etc.
Using linux if you are already not an experienced at porting to an embedded platform, and dont want to learn that on this go around, I would definitely go with a clone of an existing design, leverage as much as you can from a project with folks that are experienced at porting linux to a platform. If need be take an existing board (beagle/raspi/openrd) and go through the motions of porting to the platform with the cheat sheet of having access to an existing port, see if you cant get uboot ported and linux booting, etc. (dont really need uboot at all, that is possibly an unnecessary complication, just get dram up and pass the atags, etc to linux and just branch to it, pretty easy to launch linux from bare metal).
You could probably do worse than taking the Broadcom BCM2835 - used on the Raspberry Pi - as your starting point - especially if you want to avoid kernel and boot-loader work and a source of reference schematics. If this proves too expensive, check out other devices in the Broadcom range.
A few bits of advice
You probably want some flash rather than a MMC card interface for production use. eMMC is an option. NAND flash is a nightmare due to rapid component obsolescence and the need to get own and dirty with the MTD drivers.
USB Ethernet will be easier to integrate than a controller hanging off a general purpose bus, but won't perform as well. SmSC seems to be popular source for either
You could also have a look at the work that Olimex is doing with their linux boards. Perhaps even order a som and then combine it with other external components.

How did NOKIA N9 pppd to network?

When use wcdma module ,we should use ppp protocol to communicate with ppp server. But I can't see any file about ppp in NOKIA N9's filesystem.
So,How N9 use linux(harmattan) to dial to PPP server and then linked to internet ?
This question seems more suited to SuperUser.com - it is not related to programming. See the StackOverflow FAQ for more information on what kind of questions you can ask here.
Regardless of where you post a question, it would help all of us if you provided more context, preferably using full sentences. As it stands now, it is difficult to tell what your actual question is. Do you want to connect a computer to the internet using the phone? Do you want to use the phone itself to access the network?
It is also difficult to understand what the problem is. You should at least tell us what you have tried and where that failed.
Unless you pay more attention to your question, you will not get any meaningful answers. You should probably have a look here for a guide on asking questions.
You should keep in mind that hardware-related questions can usually be answered only by people that have access to that particular device. With the amount of information you are providing this question boils down to "How do I connect to a PPP server on Nokia N9?", which is impossible to answer, unless one has access to that particular phone model.
By providing more context, such as describing how the firmware in that phone is setup, you allow people that have more general experience on Linux and embedded devices to help you.
Since I do not have that particular device, I will take a shot in the dark and offer a few alternatives, in order of decreasing probability:
You may need to install additional packages. I believe that MeeGo uses Debian-style packages and the PPP-related packages may not be installed by default. You should have a look at your software repositories.
The PPP support does not have to be a module - it can be included in the main kernel binary. pppd could also be replaced by a custom binary, although that is not very common, even on embedded devices.
Are you absolutely certain that your current software configuration does not support PPP? How are you searching in the filesystem for PPP-related files? What are you expecting to find? Does using the phone UI to connect work?
There is a very slim chance that the default firmware does not support PPP at all - in that case you may have to install custom packages or even replace the firmware itself with a custom version.

Raw data from USB

I haven't used Visual C++ before, however I'm starting a project that will require me to use it.
I want to get raw data from the USB. Almost every website tells me that I need to write a device driver for it first... Well I know that!
But I want to start simple - with my wireless mouse receiver, which obviously has a driver installed, which works. How can I access the contents which that receiver provides to the computer, using Visual C++?
This is a great project - a ton of fun too. Perhaps you can find some resources from this related post. I go into a lot more detail there. But I'll answer a little bit here too.
First off, you definitely don't want to write a driver. The time of writing drivers is mostly behind us. :) At least for what you are trying to do in particular. As I detail in the aforementioned post, we now mostly use HID descriptors to communicate with HID (usb) devices instead of writing drivers. This is awesome because it seriously simplifies the task.
I will highly recommend you or anyone in the same position use the libusbx library. It makes things very simple and straightforward in terms of communicating directly with HID devices. Again, see the post for a much more involved answer, but this should do it. Good luck!

Learning Embedded Firmware Hacking [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I have a Samsung TV with connected via optical output to my DTS sound system.TV has ARM CPU and an embedded linux operating system. It comes with an embedded media player.But internal media player doesn't pass DTS audio to my sound system. it only passes-though AC3 and other formats. I want to hack TV's firmware to pass-though DTS audio to my sound system.
What are the books, learning resources etc. to start this kind of hobby project ? I have never programmed on embedded platform. What should I know before the start ? For example Should I know audio programming, electronics, Linux Kernel, C Programming ? Any recommendation would be helpful.
Actually there is a whole dedicated sourceforge project related to firmware hacking on Samsung TVs called SamyGO. But When I asked one of main firmware hacker in this site, I didn't get a reply from him. So I thougth someone here can answer to my question.Thanks..
UPDATE :
How much electronics knowledge should I have for this kind of job ? (I have a C.S degree and basic knowledge about electronics, logic design etc.). Should I be a linux kernel or C expert ?
Actually I have always wondered how embedded device hackers like George Hotz gain this kind of knowledge.Because it is a closed system, they don't have any documentation, how can they do this? Do they learn it from school?(I don't think so). If they do, What do they study? Which books do they use? If they don't, how ?
I came across this excellent blog post on Reverse engineering firmware for Linksys router,
http://www.devttys0.com/2011/05/reverse-engineering-firmware-linksys-wag120n/
It explains in detail how to reverse engineer the firmware, get to the file system in clear steps. If you can follow through the steps, you would get a really good insight into what it takes to hack a firmware.
I don't think you require lot of electronics knowledge to hack a firmware, basic 101 level knowledge would suffice. If you understand basic OS and systems in general then you should be able to work your way through.
Hacking an undocumented system is nowhere a trivial task. You definitively should learn C and practice embedded programming and a good knowledge about electronics will help a lot (you'll have to look at the circuit and guess how it works, if you can't find any docs on google).
My advice is: get some (documented) ARM board to start hacking on (beagleboard/pandaboard comes to mind). You'll learn a lot about Linux, C, Kernel development and even electronics if you want to.
Trying to dive directly on a TV system will probably be very frustrating for you.
UPDATE:
At the electronics side, you don't need to be an electronic engineer. Study a lot of digital electronics and understand how CPU's, buses and commom peripherals work. Most of the time you can look at any chip code and search for it datasheet, but sometimes they're designed specially for one device, or have no identification at all. In this case, you'll need a logic analyzer to reverse engineer it and try to understand how to "talk" to it.
You can learn CS and electronics from books, but real reverse engineering can only be learnt by experience (of course, learning how others do things helps a lot).
Go on and open devices you find interesting, try to understand how they work and change things on it. You'll for sure burn some of them (begin with the cheaper ones), but it's the best way to learn how to hack devices.
Just take care to not die while messing with high voltage devices (and LCD TV do have some HV parts)
Suitable development boards to consider, with very active communities, i.e. easy to get help if you are stuck :-)
http://www.arduino.cc/
http://beagleboard.org/
Start with them to learn about embedded systems, before you move on the more difficult tasks
Yes,C language knowledge is important.
First try and learn Raspberry Pi then jump into Adruino.
You could find so many communities for these in facebook and google plus join and involve yourself.
Then you can learn so many hacks

Resources