Driver Usb Friendly Arm 2440 Windows 10

Big Computing in a Small Box.

Windows 10 Insider Preview build 21362+ WSLg is going to be generally available alongside the upcoming release of Windows. To get access to a preview of WSLg, you'll need to join the Windows Insider Program and be running a Windows 10 Insider Preview build from the dev channel. It is a simple fix. Just install the printer using the 'add printer' app in Windows 10. Then, click on the printer name and click 'manage'. Then go to printer properties. Click 'ports', 'standard TCP/IP Port', then type in the IP address of the printer. You can get the IP address from the printer 'report' menu on the printer.

Phone number change: For reasons beyond the ken of mere mortals, our cable company can not transfer our phone number to the new location! Please use our algorithmically allotted number 253 514-8130 to reach a cheerful employee. EMail is ARMWorks@gmail.com

ARMWorks has ceased web site retail sales. The shopping cart is disabled until we figure a better way to display. The web site will stay up without a shopping cart as a product information source for OEM customers. Our retail inventory is going to Amazon for Prime Fulfillment and the links will be on the product pages. Our business model is changing to work with OEMs (Original Equipment Manufactures) who buy in volume or need customized systems, with shipping direct from FriendlyELEC in Guangzhou.

  1. Apple® OS X: OS 10.8, OS 10.9, OS 10.10, OS 10.11 Linux®: Red Hat® Enterprise Linux 6.5, CentOS 6.5, Debian 7.3 and Ubuntu 12 Smart card-based public key infrastructure (PKI) authentication for Windows login, VPN, Web Login, Remote Sessions, as well as data security, digital signature and secure email.
  2. USB Keyboard and Mouse Bundle, English keyboard, Black. The ViewSonic ® VG2440 is a 24’’ (23.6’’ viewable) Full HD monitor that includes a full-range of connectivity and ergonomic functionality ideal for your workstation at the office and at home. With SuperClear ® MVA panel technology for wide-angle viewing, and an 8-bit panel with.
Allwinner H5 is EOL. Designs that use the Allwinner 64-bit H5 Quad Core SoC (ARM cortex-A53) are discontinued due to Allwinner ceasing manufacture of the H5. The affected systems include NanoPi NEO Plus2 V2.0, NEO Core2, NanoPi K1Plus, and NanoPi NEO2. New version of these boards are in design and test with the Rockchip RK3328, which has the same ARM cores and matching IP for the various I/O and video processing. The new versions are (nearly) pin-for-pin compatible. The RK3328 based NanoPi R2S is already in production and selling very well.

Driver Usb Friendly Arm 2440 Windows 10 64-bit

OEMs can request Bulk Packaging

Driver Usb Friendly Arm 2440 Windows 10

OEM or Bulk Packaging saves space, time, and money - which is what runs the Universe. For example, 100 NanoPi NEO can fit a small box. Here is an example with Smart210 Modules.

NanoPi M4 with NVME SSD

Here is the fantastic NanoPi M4 with its special heat sink and the NVME Hat and an M.2 SSD. The hat has mounting holes for the M4 WiFi antennas for mounting without a housing. The heat sink has standard 1/4-20 threaded holes that fit photo tripods and standard optical tables as shown. A simple threaded spacer is used in this case.

We are working with the NanoPi M4 NVMe SSD Adapter and the CNC case. Here is the adapter in action. It has the proper holes for the two WiFi antennas as well in order to make a complete working system.

What a cool combination, and easy to work with during development. This is an M4 with 2G RAM and 256GB SSD. The whole thing is only 3.5 inches or 9cm long. It can be used like this, or dropped directly into the CNC case.


NanoPi M4V2 Metal Case Combo

NanoPi M4V2 4GB with CNC Metal Case w/Cooling Fan, NVMe SSD Adapter, & Antenna

New NanoPi R1S.

Tiny Computer & Router. Allwinner H3 Quad-core A7 SoC, Dual Gbps Ethernet, in pocket To-Go, OpenWrt 18.06. Fully Assembled.

5inch LCD Display with Capacitive Touch (W500)

800 x 480 resolution, backlight adjustable via 12C, works with FriendlyELEC's 210, 4412, 4418 and 6818 based boards under Android and Linux. Open source driver, 24-bit RGB interface.


SmartMini - OEM Direct replacement for Mini2440 and Mini2451 Coming soon!....Contact us for Pre-Orders.

Replacement for Mini2440 and Mini2451. Special Edition V1.0 1906 Carrier board with a Cortex-A8 embedded processing board that uses the Samsung S5PV210 System On Chip (SOC). OS Android, Linux and WinCE6.

Compare: SmartMini vs. Mini2451 (SmartMini on bottom, Mini2451 on top)

3.5' LCD's directly mount on the PCB and Displays up to 7' are easily handled

SOM-RK3399 Development Kit


Rockchip 64-bit hexa-core RK3399

Driver Usb Friendly Arm 2440 Windows 10 Download

11.6inch eDP FHD LCD Display with Capacitive Touch for NanoPC-T4


BreadShield Kit

BreadShield maps Arduino Uno pins to solderless breadboards without jumper wires. It plugs into both, firmly bridging them together mechanically and electrically. This solder-yourself kit Includes a FREE Solderless Breadboard and FREE USPS First Class Shipping! See the discount 3-Pack!

NanoPi NEO Core Complete Starter Kit $44.99

We have a nice inventory now of the NanoPi NEO Core starter kits. This is a very slick collection with the NEO Core carrier board for development and the very small NEO Core.

The kit includes a NEO Core with Allwinner H3, heat sink, Mini-Shield carrier that has connectors for USB and Ethernet and all that plus a socket for the short versions of M.2 SSD's. Ubuntu and FriendlyCore images are a simple download form the Wiki.

1-bay NAS Kit

Build your own NAS storage!

'My Mini2440, Mini2451, or Mini6410 has been declared end-of-life and there are no inventories anywhere! What do I do now?'

Do you use the Mini2440? For alternatives, your lowest risk AND least amount of work is to migrate to our long term support Mini210S-BE. Your Mini2440/2451 are ARM9 architecture. Your Mini6410 is ARM11. The Mini210 is ARM A8 Cortex - faster better cooler. The Mini210S will run the same version of the WinCE5/6 or Linux OS and drive all our LCD's. Your code needs to be recompiled and any I/O checked to see if you need changes, and we can help with this.

The Mini210S is 100x100mm and compares to the other boards like this. Here is Mini2440 versus Mini210S-BE on bottom.



Here is the Mini2451 on top.

Check the Mini210S-BE pages

mini2440

What is it?

The FriendlyARMmini2440 is a small single-board computer with plenty of I/O and severaloptions for touch-screen LCD interfaces. I've got the version with a 3.5'touchscreen which is available from several resellers in the USA for about$110:

Driver Usb Friendly Arm 2440 Windows 10 32-bit

Driver usb friendly arm 2440 windows 10 iso

Hardware

The principle attraction of the mini2440 is all the I/O. In particular, there area number of 3- and 4-pin shells with serial, audio and power connections, and a34-pin shrouded IDC header which carries processor GPIO, clocks and I2C signals.These are somewhat unusual connectors, especially the expansion header which isa 2mm pitch. Fortunately they're all available at the normal components retailers:
  • Digi-Key
  • Mouser

Expansion header

Driver Usb Friendly Arm 2440 Windows 10 Free

The expansion header is where most of the interesting things are happening. Thisprovides access to a number of direct connections to the ARM SoC as shown below:
FunctionPinPinFunction
+5V12+3.3V
GND34nRESET
AIN056AIN1
AIN278AIN3
GPF0/EINT0910GPF1/EINT1
GPF2/EINT21112GPF3/EINT3
GPF4/EINT41314GPF5/EINT5
GPF6/EINT61516GPG0/EINT8/Button1
GPG1/EINT91718GPG3/EINT11/SPInCS1
GPG5/EINT13/SPIMISO11920GPG6/EINT14/SPIMOSI1
GPG7/EINT15/SPICLK12122GPG9/EINT17/nRTS1
GPG10/EINT18/nCTS12324GPG11/EINT19/TCLK1/Button6
GPE11/SPIMISO02526GPE12/SPIMOSI0
GPE13/SPICLK02728GPG2/SPInCS0
GPE14/I2CSCK2930GPE15/I2CSDA
GPB0/TOUT03132GPB1/TOUT1
GPH9/CLKOUT03334GPH10/CLKOUT1

Legend

  • AINx - analog inputs to 10-bit ADC
  • GPxn - GPIO port x bit n
  • EINTn - External Interrupt n
  • SPIfn - SPI port n Function f
  • I2Cf - I2C Function f
  • nCTSx - UART x Clear to send
  • nRTSx - UART x Request to send
  • TCLKx - Timer x clock
  • TOUTx - Timer x output
  • CLKOUTx - Clock output x

Note that many of the pins have several functions which are selected bysetting the pinmux in the SoC - I'll discuss that in greater detail in thesoftware section. Also be aware that pins 16 and 24 are also tied to buttonson the board, and many of the pins are also routed to some of the otherconnectors so don't try to use them for more than one function at a time.Refer to the schematic for further details about potential conflicts.

Software

The mini2440 is shipped with a fairly usable QTopia installation running ona Linux 2.6.x kernel. By default this kernel supports a few custom I/O driversto access the on-board LEDs and Buttons, as well as the I2C port and one of theADC channels. All of these are accessible via user-space devices for which demoapplications and source code is available. Unfortunately, if you want to useother I/O ports and services you'll need to customize the kernel. Details ofthat process are presented here.

Note that many of the folks using the mini2440 have chosen to completelychange their Linux installation. This means choosing a different kernel, anew root filesystem, and in some cases even replacing the Supervivi bootloaderwith an alternative like u-boot. I'm not interested in making such extensivechanges - the QTopia linux works fine and seems to be fairly well integrated,so I'm happy to continue using it.

Kernel Tweaking

Driver Usb Friendly Arm 2440 Windows 10

Tweaking the Linux kernel isn't particularly difficult, but gathering theinformation and tools required to do so and setting them up can be tedious.FriendlyARM's download pagehas archives of the source and tools you'll need, as well as an extensive anddetailed user manual with instructions on how to do this in Chinese. For thoseof us who don't read Chinese, Google Language tools are able to make somesense of this manual - cutting and pasting into the translator worked for meand I've extracted the relevent directions down into a text file which youmay find helpful: mini2440 Manual ch5-7 EnglishTranslation.

The most important part of setting up a development environment is tobe familiar with working with the linux command line. That's well outsidethe scope of this document, so I'm assuming you've already got a Linux systemup and running which you can use to base the rest of the process on. I useboth Fedora 11 and Ubuntu 9.04, but all my mini2440 work has been done on theUbuntu system.Given that you've got Linux running, the rest of the processconsists of:

  1. Download and Install the ARM cross-compiler

    The ARM cross-compiler is available on the FriendlyARM download site here: arm-linux-gcc-4.3.2.tgz.

    I found this blog entry extremely helpful for the process: Equally Bad: Project: How to setup the mini2440 dev tools

    Take note of the software dependencies that are called out in the above blog. I've also been cautioned that on a vanilla Ubuntu 9.10 install you may also need to install the ncurses5 package if you haven't already.

  2. Download and Extract the Linux kernel source

    There are several versions of the Linux kernel shipped with the mini2440 depending on when you bought your board. My board was delivered with the 2.6.32-2 kernel, so that's what I'm basing this on. If you have an older kernel (use the 'uname -a' command to check) you'll want to use different files, or else upgrade your entire NAND installation to use more up-to-date firmware.

    The Linux kernel source I used is available on the FriendlyARM download site here: linux-2.6.32.2-mini2440_20100113.tgz. You'll want to use this rather than a generic Linux kernel since it contains customized code specific to the mini2440, including the LED, Button and ADC drivers.

    Once you have the kernel source tarball, choose a place to extract it - the location isn't critical. Use the command 'tar -zxvf linux-2.6.32.2-mini2440_20100113.tgz' to do this and a new directory called 'linux-2.6.32.2' will be created. At this point you're ready to customize and/or compile your kernel. If you'd like to try building the kernel without changes just to test that everything is working, follow these steps:

    1. cd linux-2.6.32.2
    2. cp config_mini2440_t35 .config # choose the pre-built config that matches your LCD
    3. make menuconfig # and just exit
    4. make zImage # and wait for the process to finish - about 1/2 hour on my Atom CPU

    Now you've got a compressed kernel image in ./arch/arm/boot that you can download into the NAND flash as described below.

  3. Edit the board initialization routines for your hardware

    The specific hardware hookups that Linux has to know about are all set forth in the board init file and consist of data structures and C code which describe the hardware to the kernel drivers. This is aslo where the GPIO pinmux (mentioned above) is set up - it's responsible for routing the signals from on-chip peripherals like SPI and I2C to the port pins and must be configured before they can be used. The board init file for the mini2440 is located at:

    linux-2.6.32.2/arch/arm/mach-s3c2440/mach-mini2440.c

    As delivered, this board init file contains info about the UARTs, LCD, Ethernet, NAND, MMC and I2C buses. To use SPI bus 0 on the expansion connector we have to add information about it. I've done that already and the updated file can be found here: mach-mini2440.c.zip

    Extract this file and copy it to the location above.

  4. Configure and compile the kernel for your hardware

    Although we've told the kernel about the specific hardware our board uses in the init file, we need to give the kernel a set of drivers that can talk to that hardware. More specifically, we want to add the GPIO and SPI device drivers to the config file. The easiest way to do this is to grab my config file here: config_mini2440_t35_gpio_spi.zip

    Extract this file and copy it into the linux-2.6.32.2 directory, then follow these steps:

    1. cd linux-2.6.32.2
    2. make clean # to start over if you built a test case above
    3. cp config_mini2440_t35_gpio_spi .config
    4. make menuconfig # and just exit
    5. make zImage

    This will only work if you happen to have the same T35 LCD that I do. If you have different LCD you'll need to configure your kernel by hand using the menuconfig tool. This requires you to find the pre-built config file for your hardware - primarily which LCD you've got - and copy it to '.config' in the kernel root directory. When you've done this, run 'make menuconfig' to build and run the ncurses-based configuration utility. Use the arrow and enter keys to navigate around the various kernel options and enable the following:

    • GPIO sysfs
    • SPI
    • SPI Master
    • SPIDEV
    • SPI S3C24XX

    Once you've found and enabled these (they should all be under the devices menu), exit menuconfig and proceed with 'make zImage'.

  5. Install the kernel on the board

    This step requires the use of a host computer to talk to the Supervivi bootloader which is accessible when the mini2440 is powered up with the NAND/NOR switch in the NOR position. Two links are required - an RS-232 serial connection for text-based command/response between you and the bootloader, and a USB connection for bulk data transfers. It's possible to do this in either Windows or Linux, but the Windows process seems a bit better integrated so that's the approach I took.

    NOTE: during the process of getting my kernel to work I had to download several times and I ran into some annoying USB driver behavior. It seems that the Windows USB driver for the mini2440 is buggy because it frequently fails to recognize the mini2440. The only solution I found was to disconnect the mini2440, uninstall the driver and reconnect/reinstall. Perhaps I should have tried downloading using the Linux approach - it might have been more reliable.

    You'll need a Windows machine to run the download application provided by FriendlyARM on the DVD which ships with the board. The application is called DNW and is found at:

    FriendlyARM/Chinease/windows####/dnw

    You'll also need the USB drivers for Supervivi which are found at:

    FriendlyARM/Chinease/windows####/usb##

    These can also be found on the FriendlyARM download page here:

    First connect the mini2440 RS-232 port to your Windows PC serial port (or use a USB/Serial adapter) with the serial cable that came with it. Bootloader commands are sent via this link. Connect the mini2440 USB to your PC as well - bulk data transfers take place over this connection. Flip the NAND/NOR switch on the mini2440 to the NOR position and power it up. Windows should recognize a new USB device and prompt you for the driver location. Point it at the USB driver mentioned above.

    Run DNW. It should spot the USB connection and put the text [USB:OK] in the window's title bar. Select 'Serial Port->Connect' from the menus and hit enter a few times. This should put the text [COM:115300] in the window's title bar as well and you should see the Supervivi help text scroll across the screen.

    At this point you're ready to download your new kernel. Hit 'k' on the keyboard to download a kernel image. Now select 'USB Port->Transmit/Restore' from the menu. This brings up a file select dialog. Browse to the location of your new kernel file and proceed. A progress bar should appear as the file is sent - the process should only take a few seconds. Download is complete and you may now exit from DNW.

    Power down the board and flip the NAND/NOR switch back to the NAND position. Power up - you should see the penguin screen and short progress messages, after which a QTopia desktop appears. Pull up a terminal window and type 'uname -a' - the kernel date should be only a few minutes old. You're done.

User Applications

After the process described above you should have a kernel with GPIO and SPIcapability. You should find a device named '/dev/spidev0.0' as well as newGPIO entries in the /sys/class/gpio directory. You'll need some applications to test thesenew I/O devices and I've got a few here:
  • GPIO

    The GPIO device driver that we added to the kernel above is known as the 'sysfs' driver. This is because it works through a simple interface based on pseudo-files in the /sys hierarchy. This seems kind of odd at first, but makes GPIO easy to control from a variety of languages.

    A simple shell-script approach is described for the Beagle board over at Make Magazine and this works on the mini2440 with our new kernel as well. Just cut/paste the script there and load it into the mini2440. The I/O number that the script requires can be computed for any of our GPIO pins by

    GPIO_num = GPIO_port * 32 + GPIO_bit

    Where GPIO_port is GPA = 0, GPB = 1, GPC = 2 ... GPH = 7, etc. So for example if you wanted to toggle pin 9 (GPF0) of the expansion header you would use the value 5*32+0 = 160.

    You can find out more about the GPIO sysfs device driver by reading through the kernel documentation found at

    linux-2.6.32.2/Documentation/gpio.txt

    in the kernel source

  • SPI

    The SPI device driver is fairly well described in the kernel source documentation found at

    linux-2.6.32.2/Documentation/spi/spidev

    In the same directory you'll also find source code for some user-space applications. I've compiled one of them for my system and you can grab it here: spidev_test.zip.

    To use it, just enter the command './spidev_test -D /dev/spidev0.0' If you short pins 25 to 26 you'll loopback MOSI to MISO and the test data sent out should come back. Disconnect the two pins and the data will change.

Going Further

You'll notice that there are two SPI ports, numerous external interrupts,timers and UART flow control options for some of the expansion connector pins.Connecting these is possible and requires further modifications to the boardinit file and kernel configuration. Additionally, there are four ADC inputs,only one of which is presently supported by the kernel driver. All these shouldbe fairly easy to enable with a bit of extra work.
Last Updated
:2010-03-28
Comments to:
Eric Brombaugh