Konsulko Group
  • Home
  • Software
    • Edge AI
      • Edge AI Services
      • Konsulko Orca OS
    • Embedded Linux
    • Yocto Project
    • Security
    • Software Update
    • Automotive
    • RTOS and Bare Metal
  • Hardware
    • Electronics Design
    • Sensor Integration
    • Low Power
    • Wireless Communication
    • System Architecture
    • Manufacturing
  • Industries
    • Healthcare
    • Industrial and Heavy Equipment
    • Telecommunications Industry
    • Transportation Industry
  • About
    • Meet the Team
    • Careers
    • Resources
      • Embedded Systems Design
  • Showcase
  • Contact
  • Blogs & News
    • Technical Blog
    • News
  • Click to open the search input field Click to open the search input field Search
  • Menu Menu
Logo of FlashAir

Developing on hardware without functional networking

October 28, 2016/1 Comment/by Tom Rini

One of the more painful steps in doing development on hardware is when you don’t have any networking that’s functional and reliable yet. So you end up having to shuffle a SD card, USB stick, or similar back and forth. This can be even less fun when you’re working on a prototype, and need to take care to avoid disconnecting a fragile collection of boards, wires, and cables.

While there are a few different ways to get around this problem, depending on what is and isn’t working, my current favorite is wireless enabled SD cards. Why? One reason is that they’re OS-independent. So long as the board can supply power the card will be able to bringup its network. Break booting into Linux with your latest change? Not a problem. Want to integrate with your existing build cycle? There are CLI tools, and at the end of the day you’re sending stuff via HTTP to the card so you can always write something yourself if you don’t like what you find for tooling. The biggest drawback to me is that it only supports exposing the first FAT partition, but on the other hand you can happily partition the card and there is no requirement on where the FAT partition physically resides.

To make the best use of these cards, there are a few tricks you will want to employ. And while everything is documented, I found it handy to make up some templates to work with when I was setting up my lab with a few cards. On each card I would leave the VERSION and CID fields alone as they are pre-populated, and then overwrite the rest of the contents based on my template, fill it in, and go. My template looks like:

[WLANSD]

DHCP_Enabled=NO
IP_Address=192.168.0.XXX
Subnet_Mask=255.255.255.0
Default_Gateway=192.168.0.1
Preferred_DNS_Server=192.168.0.1
Alternate_DNS_Server=8.8.8.8

[Vendor]

CIPATH=/DCIM/100__TSB/FA000001.JPG
PRODUCT=FlashAir
VENDOR=TOSHIBA
WEBDAV=1
TIMEZONE=-28
APPSSID=MY-LOCAL-SSID
APPNETWORKKEY=MY-LOCAL-SSID-PASSPHRASE
APPNAME=flashair-XXX
APPMODE=5
APPAUTOTIME=300000
DNSMODE=0
LOCK=1
UPLOAD=1
WLANAPMODE=0x82

A few of these choices are odd enough that they are worth explaining. First, while the cards can happily do DHCP, I don’t like relying on that in cases like this. I’m much happier to instead put the card in a case with a sticky note on top that notes the IP, for the next project I need it for. Next, I set APPMODE to 5 so that it will join my network rather than start its own. The TIMEZONE key is a little odd. It is UTC based but works in 15 minute increments, which can be useful, but is somewhat unexpected. Note that if you do not spell out UPLOAD=1 uploading of files is disabled. The default upload path is the root, and that is often what we will want. Finally, I have WLANAPMODE set to the value for 802.11n/g rather than the default of 802.11b/g. It is also worth noting that once the card has run with this config file, it will update and asterisk out your network passphrase.

At the end of the day, I like these, and have a number of them because they’re so versatile. They come in sizes up to 32GB, which is enough to have a pretty well featured distribution available; either for the board itself, or to chroot into during development to easily add perf or other tools to a stripped down system. They are a full-size SD card but that’s just an adapter away from fitting into a microSD slot which is how I use about half of mine. And if you don’t have a spare (or functional yet) SD slot a USB card reader works just as well to bring this into the system you’re working on.

author avatar
Tom Rini VP of Engineering
Tom has over 25 years experience in developing different parts of the Linux ecosystem, with the majority of that time focusing on embedded systems. He was an early PowerPC Linux developer, focusing on the area of handoff between firmware and kernel. He has been a key developer in the OpenEmbedded and Yocto projects, spending time on the OpenEmbedded Technical Steering Committee. He was a technical leader at MontaVista, Mentor Graphics, and Texas Instruments as well as playing key roles in the Embedded Alley Solutions team. Tom is currently the head custodian of Das U-Boot, a popular open source firmware.
See Full Bio

Related posts:

  1. Git workflow for upstreaming patches from a vendor kernel
  2. Tool Time: Quilt
  3. YAML and Devicetree
  4. Balena: Running Containerized Applications on phyBOARD-AM62x
Share this entry
  • Share on Facebook
  • Share on X
  • Share on WhatsApp
  • Share on Pinterest
  • Share on LinkedIn
  • Share on Tumblr
  • Share on Vk
  • Share on Reddit
  • Share by Mail
1 reply
  1. Carlos Hernandez
    Carlos Hernandez says:
    February 22, 2017 at 5:20 am

    Nice trick. We will have to give it a try in our lab. Thanks for sharing!

Comments are closed.

Recent Posts

  • Konsulko Group extends Edge AI practice on Jetson, joins NPN
  • Konsulko Group: The Year in Review 2025
  • Introducing Konsulko Orca OS, the Platform for the Edge
  • Cybersecurity on NVIDIA: Why Embedded Lags Enterprise Linux
  • Integration and troubleshooting: Sterling LWB+ radio module
Konsulko Logo

Helping companies around the world develop successful products, offering consulting, product engineering, support and capability building at every stage of the engagement.

Connect with us

Software

  • Edge AI
  • Konsulko Orca OS
  • Embedded Linux
  • Yocto Project
  • Security
  • Software Update
  • Automotive
  • RTOS and Bare Metal

Hardware

  • Electronics Design
  • Sensor Integration
  • Low Power
  • Wireless Communication
  • System Architecture
  • Manufacturing

Information Hub

  • Technical Blog
  • Company News
  • Press Releases
  • Showcase

Company

  • About Us
  • Contact Us
  • Meet the Team
  • Careers
© 2012-2026, Konsulko Group. All Rights Reserved
  • Privacy Policy
  • Cookie Settings
Link to: Leon Anavi of Konsulko Group Honored by GENIVI Alliance Link to: Leon Anavi of Konsulko Group Honored by GENIVI Alliance Leon Anavi of Konsulko Group Honored by GENIVI AllianceGENIVI Link to: Konsulko Group welcomes Matt Ranostay to the team Link to: Konsulko Group welcomes Matt Ranostay to the team Matt RanostayKonsulko Group welcomes Matt Ranostay to the team
Scroll to top Scroll to top Scroll to top