Advertisements

LoDuino – Low power Arduino with FCC Certified Lora radio

Thought I’d throw up something I’ve been meaning to sell for a while.

LoDuino is an adorable low cost 8Mhz 3.3v ATMEGA328 Arduino with Lora radio, it’s breadboard friendly footprint makes it great for quick prototyping. Applications that utilize good power conservation practices can run for years on a small 1000mAh battery.

Features

  • FCC Certified Lora radio for 915Mhz ISM — this radio does not have a managment IC like the RN2903 which removes limitations and offers lower power consumption.
  • 4+ miles Line-Of-Site communication range when using low bandwidth Lora. Modulation type and bandwidth settings greatly impact range. Need more range? Consider the U.FL version which allows you to use high gain/directional antennas.
  • Lipo charger with charging status indicator fed into the Arduino.
  • Built in battery voltage reading.
  • Optimized for battery applications <30uA standby current. This can be much further reduced to ~5uA by disabling the brown out detection and shutting off timers.
  • Two 3.3v regulators: One that’s always on powering Arduino and radio. The second is controlled by the arduino allowing the user to shut it off in case sensors that can’t sleep or sleep at a high standby current are being used.
  • Two 1.5 amp fuses. One on the 5v charging breadboard output and one on the battery input. Just to help protect in case you’ve got it installed somewhere and a short is introduced from vibrations or other malfunction.
  • U.FL version for high gain or directional antennas. The U.FL connector also lets you run a u.fl -> sma out of your project box for a professional look.

Integrated Antenna purchase links:

Buy Here (Ebay) Buy Here (Tindie)

U.FL purchase link:

Buy Here (Tindie)

Do you need FCC certification?

Read up on this document. If it’s for personal/non business use: probably not.

Other things to keep in mind

  • If you’re needing the FCC certification then FCC ID 2AD66-LORAV2 must be placed in a visible area of your device. FCC rules/regulations must be followed within your software.
  • Code uploaded through FTDI cable or equivalent.
  • U.FL version is not fcc certified due to changing antenna and adding coaxial cables.

Included
Comes with headers and JST battery connector — not soldered since lipo batteries change up polarity on JST pins

Setup procedure:

1) Download the Arduino IDE in zip format

2) Extract the IDE, find Boards.txt for editing

3) Edit these two highlighted lines. When uploading to the LoDuino board, use the ‘Arduino Uno’ board option

4) Download ArSpayce Radiohead library

5) Extract radiohead to your new arduino libraries folder.

6) You’re done! Dont forget to check out the schematic

LoDuino Schematic

Code examples coming soon

Advertisements

Lora Range Test

Lora Pager

Lora Pager

Aright So I designed those awesome Lora pagers mentioned in my previous post based off some SX1276 modules. How far can they really go? Here’s a graph with a quick test to find out. Red line represents the Lora module broadcasting its GPS position back to the base-station. Blue line represents my phone’s GPS record (to show where I was actually driving). Yellow thumbtacks represent base station. Unfortunately my  apartment is at a low altitude with roads on giant dirt hills around the base station: this killed range testing in most directions. Be sure to check out my Lora development boards that use the same radio

4.27 miles! yellow line represents base station to tag largest distance

Remember that this is with a 5dbi antenna on the base station located on the second floor of my apartment, and a free 2-3dBi antenna on the GPS tab sticking out of the sunroof on my car. Transmission power was 20dB. Zooming into that largest distance:

Zoom into the industrial area from previous image — Found the line of sight path!

Not bad for the pager’s 13mm! bad antenna. Definitely blows every other 100mW radio <10$ I’ve tested out of the water. It’s also awesome that it can sleep for only a couple microamps which brings the whole pager to ~50uA when on standby.

Pager with gps attached in car

Pager with gps attached in car

How to do this on your own: save the pager’s Lat,Long in csv format then upload to gpsVisualizer and export as google earth (kmz format). For the phone use Geo Tracker (android) to record positions then share as a kmz and email yourself the kmz file. Then just open both files in google earth. I couldn’t figure out how to open these files in google earth for web browser, it’s very easy with the full install.

Pager-Duino

Hey the 90’s called err, paged… yeah remember those? I missed out on having a pager, so why not create my own and rock it — complete with a tiny display and mario ring tones!

20170116_13273401

Pager iterations with a quarter for reference

I really need to make a belt clip for this. hmm Anyway I created a pager with the idea that it should get a few weeks between charges on a 150mah battery. Some specs on the two iterations I made:

First iteration is based on a Si4432  radio. With a max range of ~1/2 a mile in a fairly urban environment (metal fences, wood/drywall buildings) at 433Mhz, 2dB omni antennas, 100mW tx power, GFSK modulation, 56uA when it’s sleeping, ~90mA when it’s talking to the base station. ~3$ radio module

Second iteration is on a Sx1276 LORA radio. Max range is upgraded to roughly 2 miles with Lora modulation — same environment at at 910Mhz, 2dB/5dB omni antennas, 100mW tx

screenshot_2017-01-08-15-21-1901

Lora range Test

power, 56uA when it’s sleeping, ~90mA when it’s talking to the base station. ~10$ radio module.

Yeah I’m leaving out a lot of the fine details on the modulation, but i’ll post source code if anyone is really interested.

Quick video of me rambling just a heads up I am up for making this into a kit if anyone is interested.

Expect another post with Sx1276 range test (lora range test)

 

Nixie clocks

Some clocks I’ve made:

Lethal Nixie Clock

Lethal Nixie Clock

Clock 1 schematic

Clock 1 schematic

Clock 1: Single tube Lethal Nixie clock — you know having all the high voltage lines exposed and un-insulated. Inspiration for this design was from this clock. Unfortunately I built mine right after having surgery. I think the painkillers had something to do with the aesthetics… Anyhow I wasn’t electrocuted while building it under the meds…That’s always a plus!

Pinout and some key components

Clock 1 Pinout and key components

ATMEGA 328 arduino with a DS1307 RTC for timekeeping. Basically the arduino pulls time from the RTC then updates IO. During this it’s got a time based ISR that: interrupts the code, measures the high voltage, then makes necessary tweaks to the boost converter duty cycle via a proportional controller. Alright let’s get to me gabbing on about it in the video. I forgot to show how to set the time in the video, here’s a quick video on that. Arduino Code here.

Main circuit schematic of the 4 tube nixie

Clock 2 main schematic

Clock 2: Four tube nixie clock. Very similar to the previous clock but uses i2c GPIO port expanders for all the tube outputs, and a GPS instead of a DS1307. This clock just needs some final tube aligning and some buttons to change the time zone! Everything’s implemented on the board/code side. Code for it is here. Just a heads up this is a ‘guide’ to making one, not instructions.

Each individual nixie tube schematic

Clock 2 individual nixie tube schematic

The individual nixie tubes have the same repetitive circuit for each cathode, here’s what one cathode

4nixieTubeProtoLayout

Clock 2 protoboard header layout

looks like (you’ll need to make 10 replications for a tube that needs to display 0-9, for like the tens minutes you’ll only need 0-5 cathodes to work. The gpio expander boards all connect to the same I2c bus. There’s jumpers on the MCP that select the i2c address, these jumpers are different on each tube to allow the microcontroller to control each one individually.Anyway VIDEO PART2, PART3 here. I did a lot of explanation in the video’s, so I’ll keep this post brief.

pinout mapping of nixie tube

Clock 2 Pinout mapping of nixie tube

Finally Clock 3 (Not a nixie!):

This is when I look back and think “I really make too many clocks…”, I’ll keep this one brief. This is a clock based on a ~3 inch TFT with touchscreen with Teensy3.1. It generates fractals thanks to a julia2 fractal algorithm I found online. My code randomly tweaks some of the constants that determine shapes/colors in the julia2 algorithm to keep things fresh.

As you can see it graphs temperature, humidity, barometric pressure over a 2 day period. The vertical markers represent 6 hours. The graph auto

20151001_172931

Fractal Clock

zooms/offsets each sensor’s data to keep it looking nice with the mins/max displayed at top and bottom per graph. The 3d printed case insulates the insides, so the temperature is a bit high — i need to print one with more vents.  Time is set by the touch screen (video doesn’t show that). As you can see I actually made this clock quite some time ago. Source code here.

I did a game of life with this library too. I meant to make a clock where the game of life would randomly get organisms added that would eat away at the time. This code also demonstrates the graph algorithm that auto scales/auto offsets.

Clock 4:

Hey remember that original clock? I also made a kit I had up on ebay for a while. PCB was designed with CircuitMaker, PCB manufactured by OSHpark

20160520_185557

Ebay kit of the ‘lethal nixie tube clock’

3d Printed Minigun

minigun

Quick post on something I whipped up Friday night: A completely 3d printable rubber band mini gun. All that’s required past the expensive printer and filament ;p is about 3ft of string and some hot glue. I designed the gun around rubber bands used for making bracelets. If a larger rubber band is needed, just do a non-uniform scale to make the barrel and clip longer (yellow and purple pieces in image). Design based off this guy’s video

Files: AutoDesk123d , STL

Venturing into 250cm quadcopters

20141116_233219

My quadcopter

Hey all sorry it’s been so long! I promise I’ve got a tutorial on the way for a super simple and easy to build nixie clock that I’ve designed. Anyway I thought I’d share my quadcopter build. This isn’t a tutorial! I’ve included a BOM at the end, and I encourage anyone who’s experienced in putting electronics together to give it a shot! If you’re interested but intimidated, I’d be up for building and tuning a quadcopter for you for a very reasonable price! If you want to get into this hobby, I highly recommend you to buy a cheap toy quadcopter like this one and learn to fly — I guarantee it will save you money and frustration in the long run. I’m also rank 1 jet/heli pilot in BF4 and I can say it flies similar to a small chopper when using the FPV system (wireless camera First Person) :P

Inspiration

Check out some other racing mini quads

20141116_233356

Better view of electronics and camera

BOM

The BOM is what/where I bought parts. Don’t forget that multirotors need ESCs that don’t do any input filtering. Get an ESC (like in the BOM) flashed with SimonK firmware or an equivalent. Check out my youtube video’s description for latest parts.

My BOM

Overall my quad is flying like an absolute champ! Unlike the QAV250, it doesn’t have a battery hanging way out the rear, which has caused the QAV250 to have some notoriously bad flight characteristics due to poor weight distribution. The only thing I’d change are the 20A escs which are overkill on 3s maybe get a 12A esc, but a 20A esc compatible with a 4s battery would really put this quad into overdrive — I’ve read the motors can handle 4s but may fail if pushed to hard.

Some terms

What is this ‘s’ mentioned above? It stands for the number batteries in series in a battery pack:  4s = 4*4.2v = 16.8v, 3s = 3*4.2 = 12.6v. A fully charged lipo = 4.2v per cell.

Also in my BOM I have a high ‘C’ battery. C determines how much current the battery is rated for. To find this max current take the C*mAh/1000 = max continuous amps. So a 1300mAh, 45-90C battery can do 45*1300/1000 = 58.5 amps continuously, but can handle a spike of 90*1300/1000 = 117 amps. In this field a spike is generally less than 10 or 5 seconds.

Senior Design

20130428_204455For my senior design I wanted to incorporate MEMS sensors and show off how awesome they are. The immediate project that came to mind was a segway style robot, or a quad copter. I mentioned these ideas to my mentor (Dr. Kocanda), but he suggested not to do those projects since they pop up fairly regularly. I recruited two others and we got to it!

So we tried to come up with some creative content and thought it would be a great idea to stabilize a vehicle with as few sensors as possible and incorporate a gyroscope. In the end we had two sensors: a gyroscope and a wheel encoder. We also needed the angle of the front wheels, but we assumed the steering servo would maintain whatever angle we were sending it, so that really makes it three inputs.flow diagram

The control system will try to stabilize the vehicle by compensating the steering and reducing throttle. In the video below I maintained a fairly constant throttle and just occasionally made minor adjustments. My steering input is displayed, and you can see the steering output – see video intro.

The hardware we went with was the adafruit boarduino for the microcontroller, parallax gyroscope module available at radioshack, two xbees – one serving as serial/programmer and the other as a kill switch for the inevitable times when something goes wrong and it takes off uncontrollably =P We were able to wirelessly tune and graph everything in real time without a restart. We could also wirelessly (and reliably) reprogram the arduino. For the vehicle we purchased an RC drift car from hobbytown usa.

A very rushed project!

A very rushed project!

Results? Decent, not great. I think the slow analog steering servo was a problem. I also noticed that at high speeds even if the system appropriately responded, the car would still spin out. In the end it’s worth mentioning that the system is purely reactive.

We should have added a simple proactive system – have the max steering angle allowed a proportional function of speed. At high speeds the driver shouldn’t be allowed to try to turn on a dime.

The system was pretty rough, but look at the time line! Not much time to complete this project and we were all taking a full load of classes while involved in various other extracurriculars. All of the engineering senior designs do take part in a senior design competition and we did end up coming in second.

Breadboards work surprisingly well with vibration! =P

Breadboards work surprisingly well with vibration!

I’ll keep the blog post short, but more can be found in the reports below:

Vehicle Stabilization Presentation – #3.2 (ppt)

Final Report (pdf)