element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Raspberry Pi
  • Products
  • More
Raspberry Pi
Raspberry Pi Forum What gets in the way of your Raspberry Pi project?
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Featured Articles
Announcing Pi
Technical Specifications
Raspberry Pi FAQs
Win a Pi
Raspberry Pi Wishlist
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 71 replies
  • Subscribers 674 subscribers
  • Views 17852 views
  • Users 0 members are here
  • pico
  • projects
  • raspberry pi
  • zero
  • introduction
Related

What gets in the way of your Raspberry Pi project?

cstanton
cstanton over 3 years ago

For those following along, it's become a bit of a daisy chain...

It's been about 10 years since the Raspberry Pi was released to the world, and I remember everyone being excited. It was a mixture of miscommunication, promises and new technology. An affordable embedded computer that was the size of a credit card. A lot of heated debate about open source and availability, and plenty of marketing. It hit off very well, and everyone clamored to get one, and somewhat still do, and support it. With open source libraries, packages and Linux, quite the contrast to similar boards released around the same time - I think it says a lot when someone has a project and decides 'no, this is how you do it' and leads with a direction and decision and doesn't leave it open for the herd of cats.

Still, a lot of people I know have a collection of Raspberry Pi, and the meme goes 'Yes I have one, it's sat in my drawer collecting dust, I don't know what to do with it' or 'I use it for my media server... and that's about it'. While using a Raspberry Pi as a media server is not a bad thing, it's rather justified (and frankly has spun off a lot of similar products since) it's not the only thing to use a Raspberry Pi for.

Now there's a lot of accessories available, a lot of example code (like other microcontroller boards) but there still must be something about it that trips you up when creating that project. Is it limitations with the hardware? (it is mostly 3v3 after all) or is it the physical size of it? (the compute module, pico and zero start addressing this) well right now it's obviously the availability (or lack) of it, but we can't address that right now, so let's focus on what we do with it when we have one.

We're looking at expanding our content and what we ask from Raspberry Pi (Foundation/Trading) to govern our campaigns and content on the Community, and I'm interested in what you need help with, so reply and let us know, regardless of knowledge level or what you've been doing.

  • Sign in to reply
  • Cancel
  • Jan Cumps
    Jan Cumps over 3 years ago in reply to shabaz

    I've been investigating that path too. A proper gateway is cheaper than a converted Pi.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • BigG
    BigG over 3 years ago in reply to shabaz

    Whether it's MQTT or LoRaWAN gateways you would've had to create driver software or utility software to handle the messaging received and transmitted etc.

    What I struggle with is working out which software package works best for these sort of applications. If it's Python then how do you protect your script from being hacked etc.

    I would have a similar question for say using Raspberry Pi as say a USB Hub. It's trying to work out what drivers can be installed (and where I get those) and then what additional software layers need to be created to handle the USB data etc. to build an application.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • Jan Cumps
    Jan Cumps over 3 years ago in reply to BigG
    BigG said:
    Whether it's MQTT or LoRaWAN gateways you would've had to create driver software or utility software to handle the messaging received and transmitted etc.

    It is not often needed to write drivers, except if you are connecting custom designs that aren't supported yet.

    BigG said:
    What I struggle with is working out which software package works best for these sort of applications. If it's Python then how do you protect your script from being hacked etc.

    The security to deal with the execution of Python or other (compiled?) languages is similar. 
    It's not something to handle off in a comment. But changing the default user password, running all packages under a dedicated account, and only enabling what's needed is a good start.

    Microcontroller software is also vulnerable. Security awareness is needed for any design that needs to be secured.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • shabaz
    shabaz over 3 years ago in reply to BigG

    Most people end up using the few open source projects, or reference code from Semtech. However, as you say, this is just one part of it, and how do you protect from being hacked.

    Ordinarily (speaking generally, because I don't know of any orgs using Pi as LoRaWAN gateway) when using Linux in such a way to make a product, there's a process to go through, which results in some hardening of the OS, and eliminating/removing services from starting up if they are not used.
    It's a full-time job, at one firm that I worked at, they had a team that was responsible for producing a Linux build that could be used for the org's products. That Linux build would prompt the user to enter the IP address, DHCP, time server, admin password and so on, just as if it were an appliance. The user might not even know it is Linux, since they will never see a shell prompt.

    Regarding knowing what drivers etc to use, I can only speak from my experience, where (say) if network communication was needed, then middleware was used to do that, i.e. no creating sockets for instance was needed in the application itself, i.e. the code can be layered. Add in code (can be separate programs) to do upgrades, logging, restarting after a crash, etc., and it's a non unsubstantial amount of work to turn a Linux computer into a product, but feasible for a small team provided some of the effort (like preparing the Linux build and installer) can be offloaded to a team shared for several products.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • BigG
    BigG over 3 years ago in reply to shabaz

    Wow, you've confirmed my fears. It's complicated.

    I guessing here but I think this is where the Yocto project (or equivalent) is supposed to help, where you develop an image file for your application on say a PC and then bundle it with all the Linux OS drivers into one massive custom image to then be uploaded onto the embedded flash or SD card.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • Jan Cumps
    Jan Cumps over 3 years ago in reply to BigG

    I'm trying to support that approach, by giving cross-platform how-to's.
    These are a first step, to learn and develop on another platform than the final solution.
    Once you've taken that leap of faith (trust me, it isn't a leap in skills - steps are repeatable), the art of adding your design to an OS build suddenly becomes graspable.

    But that's not the only path. You can learn to develop for Linux. Or adapt your design to run on Windows and Linux. 

    Part of what shabaz describes, I will be doing for an active road test. I will make 2 separate C and C++ applications that will run as a service on a Pi, and that use the network APIs. Feel free to follow along and to comment, ask, critique, rant.

    edit: true story!

    image

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Cancel
  • Jan Cumps
    Jan Cumps over 3 years ago in reply to dougw

    dougw, to see if this is an asset, it's worth to take a measurement of time spent.
    If the device is for an end user, and should be active immediately, this is a yes.
    If the device is a development or prototype platform, where you spend the majority in help files, datasheets, compilers, aren't 3 minutes acceptable then?
    If time is money: there are SBCs and PCs that start in seconds. It 'll be a cost per minute vs cost per device discussion then.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • Jan Cumps
    Jan Cumps over 3 years ago in reply to BigG

    answer 2 Smiley : I think that for an IT guy without previous embedded skills, it's easier to learn and build a meaningful application for a Pi than on a bare metal Arduino.
    Let's abstract from A: blinky and B: meshing existing code available on the internet into something that works.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • dougw
    dougw over 3 years ago in reply to Jan Cumps

    For me it is about how much of my life is spent waiting for computers to boot. Right now I wait for at least 3 computers to boot every day, and sometimes many more than that. It adds up to over a month of my life so far. If you multiply that by the billions of computers and users in the world, you come up to an astronomical amount of time that is wasted every day and every year. A very large segment of computer users leave them running 24/7, at considerable cost, just so they don't have to go though the pain of booting. This can cost about $5 per week in electricity which exceeds the cost of the computer over its life.

    Long boot times are not necessary as you point out - they are just accepted as okay because everyone else has been designing this way for a long time.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Cancel
  • Jan Cumps
    Jan Cumps over 3 years ago in reply to dougw

    3 Pis is 9 minutes. 3 minutes if they are convicted to (edit consecutive - ow, I'm not a native English speaker, mistake) concurrent reboots.
    Part of time management is to take care that you have something to do while systems are rebooting. Else you have a luxury job.

    edit edit:
    My job as PM is glimmering trough. If you don't have time for something that can be done at any time, yet tell that you were waiting for something that takes a known amount of time, then there is time left to spend on a moment for self reflection ...

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
<>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube