Assemble it with off the shelf parts

Most aspiring hobbyists don't have a full SMT workstation. I didn't when I started out. I only had a crappy soldering iron. Since the goal is to allow everyone to be able to build one themselves, I made sure that the design is completely breadboard-able. The caveat is that the overall build will be bigger. Hopefully this can be a launching point for an interest in building things - by building something cool that helps you to build the next thing better.

If you already have some prototyping skills, this project serves as a good challenge for you to build up your other skills: program a new MCU in Arduino/Other SDKs, learn how to do PCB/PCBA assembly by modifying the KiCAD files, or write data collection interfaces using the Python scripts/Flutter code as a starting point. Extend it further!

If you are already an expert, perhaps this device will be useful for you to have - measure and collect data from multiple points wirelessly to see how your device performs in the field.

Requirements

1. Soldering iron (optional)

2. Solder (optional)

3. A phone or computer with Bluetooth to connect to the device to see the data.

Use

Connect wires from the voltage or current measurement outputs. When the device is powered, the MCU will automatically start measuring voltages and pushing the converted values to the Bluetooth chip. The converted values are in the format "[voltage_1],[voltage_2],[current_1],[current_2]"

If you are using the provided App or script, it should print out directly to your screen.

Assembly

Manufacture the board using the zipped KiCAD assembly and solder the components on (purchased from the BOM list). If you prefer, you can also breadboard it using the devices I have listed below.


Wireless

The JDY-08/HM-11 forms the wireless core of this project. It is an extremely cheap (<$2) Bluetooth BLE module that already has a complete set of AT-like commands preprogrammed. The key usefulness of this module is that it already has a transparent mode included as part of the application, which allows us to send arbitary sets of data to and from the IC.

I wanted to use Bluetooth because it is low-powered so that the entire project can be powered off a single AA battery. It is also simpler to stream the data over Bluetooth.

MCU
To make it easily programmable, is paired with ATMega-328P, the 'Arduino' chip. This also means that you don't need a special board to use it. Breadboard a breakout for an Arduino Uno, wire it to a Teensy, or build your own board as I have done here.

Alternatively, use SiLab's Laser Bee MCU that is specifically designed to collect analog data and work at 3.3V.

Power
To make it usable and safe, it can take either an AA rechargeable or standard alkaline non-rechargeable battery. I think this provides better flexibility in power options - you can get batteries at a gas station, but it is unlikely you can do the same with a LiPo. I use a single battery here to minimize bulk, with a step-up voltage boost regulator to get it to 3.3V for the MCU and wireless device.

Since it is low powered, I expect a non-rechargable battery to last about a week of continuous data collection or half that for a non-recharable bettery.

Additional advanced functionality includes:

1. uA current measurement

2. Sleep mode

3. Graphing App

4. Record data in App (in development)

5. Pin toggling (in development)


Obtaining Data

To retrieve data very simple. simply use nRF connect app to scan for "JDY-" device. Once connected, first service will output the data from the wireless measurement.

For remote data collection, you can also a Raspberry Pi 4's Bluetooth, or your computer's, and use the provided script to scan and connect to the device. With this method you can SSH into a remove Rpi to collect sensor data about your device.

You can also use the dedicated App to scan for and connect to devices, which will then display and graph the information from each of the terminals.

Extension Ideas

Some ideas for extending the project:

1. Replace the combined MCU + Bluetooth with a single IC like the nRF52832. You can also use a module.

2. Create a graphical interface on the computer to graph the data


Limitations

1. This device is mainly used for measuring low-power wireless devices (3.3V). It can measure high currents and voltages, but would need modifications to the existing circuitry to do so. For high voltages, you'll need to create a voltage divider circuit in front of the input.

2. It doesn't have a noise rejection circuit

3. Measurements right now are crude but accurate - Compared with my actual multimeter, the results are usually off by 0.2%

Technical Risks

1. I have experience designing and prototyping boards as well as writing embedded code. I have worked with the EFM8 series before, and I have gotten the Bluetooth module to work, therefore, for the embedded side of the project that risk is low.

2. The case has not yet been designed. I have some experience designing 3D printed cases, which I think is the best method to prototype it and produce in local MakerSpaces. This part of the project presents more risk as I might have to take more time to iterate through the designs.

3. The Python example for scanning and connecting to the device has not been written I am planning to use a new library: bleak, to write this code, so there might be bugs that I have to work through. However, I have successfully written a script before using gatttool to collect BLE sensor data so it is not entirely unfamiliar