Skip to content

4" Avionics

One Month of PCBs

The power module 0.0.2 works perfectly.

Here's some photos of me testing it. I got heat shrink that's too big.

alt text

alt text

I even got the fuel gauge chip working.

alt text

A month into this project, and I got a working PCB! I'm happy about that. Not often it works on the first try either. It took 15 days for the PCBs to arrive and it cost $116.28 CAD for assembly for 5 boards including shipping and tax and everything.

Chip Selection

Here is the post outlining the reasons for picking the chips. This post will be updated in the future with reasons why or why not to pick these chips. Requirement for all chips was being available on JLC.

MCU

RP 2040

I went with the RP2040 because the alternatives are usually more complex or more expensive. The documentation on the rp2040 is great and there's a great online community around it. It's more than fast enough to accomplish what we need to do.

ESP chips get kind of expensive, although they have some kind of CAN and ethernet capability on board. When we do go ethernet it'll probably be an addition to the CAN bus though.

Flash

W25Q128JVP Didn't even read the data sheet. It's the one they use in the rp2040 hardware design guide, it's the most flash the rp2040 can use.

Crystal

ABM8-272-T3 In the rp2040 design guide.

USB-C

USB-C port Easy choice; pretty much only one on JLCPCB at the time

Power

3.3v Regulator

LMR51430YFDDCR Constant, 1kHz switching reg, wide voltage input range, goes to 3.3v, cheap

5v buck-boost

TPS630701

Power MUX

TPS2121RUXR Two inputs, one output cheap, on JLC. done. Using this in Highest Voltage Operation (VCOMP) mode with the battery as the main and USB as secondary

Sensors

IMU

Need IMU with accelerometer, gyroscope and magnetometer, high sample rate, some vibration resistance, onboard sensor fusion and on JLC.

BNO055, BNO055, BMX055, MPU-9250 are off the table because they need standard assembly. The options are: - MPU-6050 (only 6-axis) - ICM-20948 (9-axis with fusion)

So there's only the ICM-20948 if I wan't to do 9 axis.

Pressure

Need temperature and pressure and high sample rate.

Some JLC options for pressure sensors: - MS563702BA03-50 - GZP6816D - GZP131-701A - MS560702BA03-50 - HP203B - WF100SPZ 0.4BG S6 AT - MPXHZ6115AC6T1 - GZP170-701A - LWLP5001DD - MPS-3117-006GC-A3 - NSPAS1N115RR01

MS560702BA03-50 was chosen for high speed capabilities.

Payload Module

We might add a payload module with a bunch of different sensors and the "experiment" will be to see the discrepancies in their readings.

0201, 0402 or 0603?

Should I use 0603, 0402 or 0201? If I go with 0603 we can solder it pretty easily. 0201 its not happening, and 0402 is harder. Those components aren't even the expensive ones to have JLCPCB assemble for you. Actually 0201 is more expensive I think. Okay 0402 it is then.

Okay there's not that many JLC basic resistors so I'll use 0603 and hand solder those ones.

Conclusion

It's not a good idea to spend too long on chip selection, better to just start making shit and find out along the way. I'll probably regret some of these choices, but that is part of learning. Some chips I really didn't think that much about, if it does the job and is cheap enough I'll use it I don't need to compare it with every single alternative out there. Some chips like the sensors I compared a bunch of chips in the same range, and took inspiration from other teams and such. ChatGPT is great for suggesting chips, it currently gets the numbers wrong very often so you can't trust anything and have to read the data sheet yourself to confirm but it still makes it much much easier. Vibration wasn't too much a concern, most chips can withstand the vibration we'd put them through.

December 9th

Things I bought today:

  • Test PCBs from JLC, module and backplate for the 4" Avionics
  • 12 18650s
  • spot welder and threaded heat inserts
  • PCIe and UCB-C receptacles

Should I use 0603, 0402 or 0201? If I go with 0603 we can solder it pretty easily. 0201 its not happening, and 0402 it's harder. Those components aren't even the expensive ones to have JLCPCB assemble for you. Actually 0201 is more expensive I think. Okay 0402 it is then.

For the next board, we'll have a way to upload new code over the air. The CAN network will have its bootselect pins on the PCIe bus, the raspberry pi 5 or something will be able to put any of them into mass storage mode, and upload new code on the USB lines... maybe I should just do this now. okay fine i'll do it now

KiCAD vs Altium and Solidworks vs OnShape

Gotta pick which software to use. Most teams use KiCAD and Solidworks.

KiCad vs Altium

5 minutes into KiCAD. Here's the pros and cons of KiCAD. One downside already is no dark mode support on windows

Pros

  • There seems to be a much better built in library. Well it has PCIe footprints.
  • I don't have to sign in and click roam on the licenses all the time.
  • There's a plentiful plugs ins repo.
  • It's way way faster
  • Dark mode for schematic editor.
  • FOSS
  • Altium's manufacturer part search is really not that fast, and for whatever reason the BOM is the slowest thing in the world. There's few companies that would use the build in supply chain shit, it just slow things down and I didn't see a way to disable it without disabling the manufacturer part search.
  • Many different repos for all the manufactures design rules.
  • Exporting is way faster with the JLCPCB plug in
  • The measurement tool is slightly better

Cons

  • The UI is somewhat less professional looking. (who cares)
  • KiCAD doesn't have dark mode on windows. Altium's UI is dark by default, but I don't think you can add themes for the actual schematic editor. So that's
  • Altium actually has better git integration surprisingly.
  • You can only have one project open per instance. open -n /Applications/KiCad/kicad.app
  • I've experienced more crashes than Altium. Running tally of crashes: 10
  • Sometimes the footprints don't show up in the previewer windows when selecting a chip

Routing

Altium has much better routing. Dragging chips that already have traces around in Altium works much better than in KiCad.

Design Rules

The design rules manger is much better in Altium.

Solidworks vs OnShape

I'll do pros and cons of Solidworks

Pros

  • Faster
  • Realview graphics
  • Can handle assembly as large as your computer will allow. OnShape is run in AWS. I didn't think this would be an issue, because they dynamically allocate compute based on your needs. Even still, it is really slow loading things, and I did notice that after a while it gets faster the more you use it, but still its much slower than Solidworks.

Cons

  • Very old looking interface
  • Have to update variable file reference manually every time you add a variable.
  • No version control, although OnShape has it but doesn't use git.
  • Mating in OnShape is faster, the same thing that takes one mate in OnShape takes 2 or 3 in Solidworks.
  • Only runs on windows, OnShape is really great for how it runs in the browser. I would do almost anything to never have to use windows again, but onshape is just too slow.
  • Very expensive for companies, onshape has a free tier for open source people.
  • The workflow with Solidworks involves using sharepoint or something similar. The files will get too large for regular git so LFS will be needed.

Avionics Bay CAD

Wow, the CAD for the avionics bay took a little longer than I expected. I had to make everything easily modifiable, so I used variables for almost every dimension. With the change of a couple numbers in a text file I can go from this:

alt text

to this

alt text

This is a fun avionics layout. I think it's kinda fun how they all slot into a PCIe CAN bus. 3D printing this is gonna be weird. I could also go with this design, but I think the first one is more fun.

alt text

The thing about this avionics system, is that once the board dimensions are made, there's no going back.

Solidworks is fucked

Why is Solidworks so fucked. It keeps flickering between these views:

alt text

alt text

I've had so many glitches. I've ran the import diagnostics on the PCIe step it says its fine. I did... do the workaround to get my 3070ti working. Although this happens with realview on or off.

December 2

Gonna start work on the avionics bay . I think I'm stuck to using Altium and Solidworks now.

Two Weeks Update

It's been two weeks since I started the 4" Avionics. I just ordered it for assembly with JLCPCB I used USP express saver shipping. Hopefully I don't have to pay any more fees when it arrives. It cost $80.75. I got 5 boards. They don't have USB-C connectors in stock so I'm getting them off digikey.

dingboard is Nextboard

Well I named the dingboard the dingboard because I thought I was gonna make a bigger board later on and I was gonna name it the dongboard or some shit. There's no value in making a single board flight computer right now, so the MCU will be CAN enabled from the get go. It doesn't add much complexity. The MCU board will be ran at 3 volts so I will be able to use the V1 power board for it. Later on I'll need to use an antenna which will be ran at 5v with 3.3v logic. So while power v1 is shipping, I'll work on the MCU with CAN, while that is being shipped I'll upgrade the power to 3s with 3.3v 5v and unregulated 12v. Then I'll work on the antenna module while that is shipping then I'll work on the GPS while that is shipping then blah blah. The specifics will change but this is the idea.

Annoyed at Altium Still

So to use ECAD/MCAD you have to use Altium 365. It makes it's own .git file in the main Altium directory. So you could still have a .git in the directory above it which you could push to github as a primary thing. Then you could just push to the Altium 365 whenever you want to use MCAD. The ECAD/MCAD integration just doesn't seem worth the hassle though. Being able to move around components in MCAD does seem really cool though. I just wish they did it right. Engineering tools are never designed by good software engineers. The software engineers that make it never really use it. The best stuff is made by the people that use the thing. git is so good because the people that maintain it are the people that use it. I love that shit that's like "made by blank for blank." Usually it's shampoo or something, but when it's actually true the product is good.

When I pushed my project to Altium 365 it copied my project to a new location on my computer. So I've been making all these changes to a separate repo this whole time. So to continue using the old repo, I'd have to delete the old files and add the new files, reinitializing the repo basically. Because the Altium files are all binaries. I hate Altium.

At some point I switched the buck boost to a linear regulator/boost. Idk how that happened now I gotta switch it back.