Korene’s Status Report 3/18

This week completed ethics assignment and the 3D housing design in solid works. Unfortunately, this proof does not have screenshots because I had forgotten to take them, but the files are in Box.

It was necessary to spend a while on refreshing solid works knowledge and relearning some shortcuts. I used these tutorials for guidance on snap fit joints and splitting parts

Completing the 3D housing base was relatively simple overall, however, I followed the tutorials above to ensure it would be a smoother process. Still in the progress of making the joints as there are some issues with the joint sketch and extrusion of it. Printing out the joints will also be a different thing as we will have to edit the spacing a few times to ensure a smooth fit.

We also received the inductive charging kit so next week I plan to get a prototype of inductive charging with Zhejia next week as well.

Currently this is good progress made, not stuck on thinking about what parts to buy and we can continue working towards the goal.

Zhejia’s Status Report 3/18

This week I worked on creating a prototype for the keyboard firmware that acts as an interface between the key receiver and the computer. I prototyped this on the Arduino Nano 33 IoT, since the Arduino Keyboard library was not compatible with the Seeed Xiao boards. However, this caused a few issues since to get the keyboard working, a new driver was needed for the Nano 33 IoT. Additionally, I had to make sure the right version of the Keyboard and USB libraries were installed, as there were some issues posted online with the keyboard device not being recognized in certain versions. Finally, I modified the KeyReceiver code to be able to distinguish between the individual key presses and send a different character as a keyboard depending on which key was pressed.

I am on schedule this week since I was scheduled to work on the keyboard programming software, and having the Arduino being able to act as a keyboard was an important first step to this.

Next week, I hope to finish the code template that the keyboard customization software will edit and flash to the main board.

Korene Tu’s Status Report 3/11

We’ve decided to buy some new products for wireless charging and in terms of the project we’ll be figuring out the protocols of connecting the keys to the MCU to the computer, in which case more embedded programming is necessary to learn how to clarify and how that works in practice.

 

Majority of the week was spent on the design review reports and organizing the plan of what we had up until now. Through writing the design review, I figured out where we were in our budget which may be a concern but can now be warier of how to spend our budget. In addition, writing out the whole plan thus far helps to figure out where any more vague plans were vs. what we can easily explain was well thought out.

Afterward, I drafted a drawn plan of the 3D housing for the keys and saw what interlocking method we would use(snap-to-fit cantilever joints), and estimated the size. Overall, in order to have a snug fit we’ll probably have about 5% more room than needed from a tight fit to be looser.

I made a quick table of what capacitors would be needed to have what frequency for the inductor coils which are.

 

Overall some difficulties are figuring out the microcontroller next and waiting for some parts. Maybe some time crunch but now that we’re over the first half of buying items we can continue onwards.

Team Status Report 3/11

Currently, we believe the most significant risks are that the wireless charging may not be able to deliver enough current to charge the battery sufficiently quickly and that the timeline may not allow for sufficient time to iterate both the programming software and the design of the 3D printed housing by the time the project is due. In terms of wireless charging, we are managing the risk by focusing development on getting a single switch to wireless charge correctly as a proof of concept, and having the remaining switches charge from USB as a backup. In terms of the software, we plan to focus on functionality first and then add any aesthetic improvements only if we have time. The same goes for the 3D printed housing. We may have to end up sacrificing some of the dimension design requirements to get the housing working at first, but then we plan to see what we can shave down after the fact.

We added a single switch PCB as an interface between the Cherry MX switch and the Seeed board. This was necessary as we found that our original plan of soldering wires between the switches and Seeed board would not meet the requirement of having hotswap capabilities. Additionally, it would make assembly nearly impossible as the switch would have to somehow be soldered inside the housing. This incurs an additional $1.50 cost per switch, but since the PCBs are so simple, it would cost a lot less if we ordered custom PCBs (~$5 on JLPCB). However, since we want to begin putting everything together more quickly, Amazon seemed to be the better choice. With this change, we may need to increase the dimensions of the housing to occupy a footprint of 25mmx22mm as current measurements of the battery + seeed setup already are pushing 22mm in the length dimension. We believe that this will not present that large of a usability issue however, since that is about the difference in spacing between a laptop keyboard and a Cherry MX style keyboard, and thus we do not expect users to be able to notice a difference.

There are no updates to the schedule currently. We have attached images of our charging testing and a video of the two switch connection working.

New tools:

To design the software, we would need to learn some sort of GUI creation library like PyGUI or GTK. To design the 3D printed housing, we plan on learning how to design using Autodesk, since it allows us to import Eagle footprints in order to give us an idea of the dimensions of the Seeed board and other components.

Video link: https://youtu.be/-SggOrEHb1I

Zhejia’s Status Report 3/11

This week, I worked on the interface between the magnetic charging and the seeed xiao BLE board. I researched the schematic diagrams and tested which pins can be used to charge the LIPO battery through the seeed board. We don’t want to directly charge the LIPO since the seeed board has a battery management system (BMS) already (BQ25100) which guarantees safe charging since overcharging LIPO batteries is dangerous. Looking through this schematic diagram, which is for the sense version of the board, but is the same ignoring the sense components, I found that charging is done though V_BUS, which is connected to the BMS, so the next step was trying to find an external pin that connected to V_BUS.  The pinout sheet given on the official website had it labeled as AD2 instead, so I spent some time trying to find which external pin was AD2 to no avail. Later, after examining the schematic again, I realized that this pinout sheet was for the nrf52840 chip instead of the seeed board. Although none of the pinout diagrams for the board officially labelled a pin as V_BUS, I presumed V_USB was likely connected to V_BUS since the USB was connected to V_BUS in the schematic. Then I used my power supply to provide 5V to the V_USB pin (pictures on the team status report), and at first it did not work, so I thought that V_USB might be connected to V_IN instead of V_USB, which would be an issue, but actually, the issue was connecting the ground pin to the ground terminal of the power supply did not work and it instead needed to be connected to the negative terminal of the power supply. In the end, I successfully charged the LIPO with 3.25V-5.5V although the 3.25V only provided 8mA of current while it basically gets full current of 60mA at 4.35V which matches the recommended operating conditions of V_USB in the datasheet. According to the datasheet, we also should be able to charge with low voltages using the VDD pin, but I have not tested that.

Of course, I worked on the design report as well.

My progress is on schedule, and I plan to research and start writing the keyboard driver software to send keypress data to the computer next week.

Ben’s Status Report 3/11

This week I worked on implementing the connection between multiple Seeed BLE boards and a central controller. To facilitate this, I modified the peripheral code, having each Seeed board’s characteristic utilize the notify function to allow the central board to subscribe to multiple peripherals at once. Unfortunately, because I only brought 2 Seeed boards home, I had to buy a Arduino Nano 33 IoT to test the multi board connection. Luckily, the BLE library worked fine with the board and I was able to test the central connecting with two peripherals simultaneously. The code has been updated on the github to reflect these changes. I also wrote the Introduction, Use-Case requirements, Architecture, and Design Requirements sections of the design report and helped with the Design studies, Summary, and Glossary of Terms.

This work puts me a bit ahead of schedule since I believe this will allow me to scale up to multiple switch devices without much hassle.

Next week I plan to get multiple keys working and, when the single switch PCBs get here, solder together the switch breakout board with the Seeed boards and test their stability.

Here is a video of the two key receiver working: https://youtu.be/-SggOrEHb1I

Korene’s Status Report 2/25

 

This week was a lot of research into what components to buy. We had the proof of concept from last week but realized finding other components would prove to be a bit more difficult than expected. The first thing was the needed addition of a sine wave oscillator, we thought of a few options: using a Colpitts oscillator, a 555 timer with capacitors to make the sine wave, a VCO, or buying a whole wireless charging IC that would have it’s own pair of receiver and transmitter IC chips to then use and adjust. The problem with a Colpitts oscillator would be the math may not be as accurate, same thing with the 555 timer as it may prove to have slightly off frequency wave generation. In addition, we’ll need a power amplifier to increase the voltage and current output of the wave generated. Finding a good VCO on Digikey was oddly difficult, either needed to buy 50 in bulk or it was still a square wave generator or it ended up being a microcontroller itself. In addition, we’ll need to have something that can generate a specific voltage for that. Zhejia and I have spent most of Saturday and Wednesday searching for different ICs that could fulfill our needs. Most appeared to be much more complex than we needed and take up too much space. We found one that appears to be great for our usage in terms of size and simplicity and is also used quite often in other wireless charging products– XKT-510 for the transmitter and T3168 for the receiver as a pair from Taidacent or P9235 and P9222 from Renesas.

We’re a bit behind due to the unknown factors seen in buying the PCB parts, hopefully by Monday we can decide on a product to run with, and from there we’ll start the PCB schematics.

Weekly Question: enumerate how you have adjusted your teamwork assignments to fill in gaps related to either new design challenges or team shortfalls (e.g. a team member missing a deadline)

Zhejia and I have doubled down on the search to ensure we can figure out what parts we really need. Ben has stayed on track pretty consistently so I’ve mainly been focused on my tasks to come to a decision on parts to resolve the issue.

We shall enter the purchase form next week and I look to have a pcb schematic of parts, perhaps even start on layout and looking into what is needed to fulfill requirements.

Zhejia’s Status Report – 2/25

This week, Korene and I worked on finding ways to improve the power delivery of the magnetic charging system since from last week, we discovered that a simple circuit would not deliver enough current to charge the seeed xiao board. We first spent some time trying to look for power amplifiers that would work at the high AC frequencies that we would be amplifying as well as a voltage-controlled sine wave oscillators, which were a bit elusive, and a lot of circuit diagrams came up instead. Many of the ICs that came up turned out to generate non-sine waves (many trapezoidal looking waves – basically square waves with rise and fall times) and figuring out which waveform the VCO outputted was often not on the datasheet. After talking a bit with Professor Tamal about using an ecosystem, we switched direction to looking into Qi wireless charging compliant ICs and boards, where we found a couple small sized wireless charging kits (Wireless Charging 10mm Coil 150mA Wireless Transmitter + Receiver Power Charger 5V Output (10mm Coil 150mA) (amazon.com)) on amazon and zoomed in on the product pictures to get the board name/chip name – XKT-412. This chip’s datasheet was only in Chinese and could only be found on AliExpress and Amazon. After some attempts at deciphering it, we moved on to trying to find Wireless Charging ICs on digikey. From there, we found some good ICs on digikey that came with an example project but those chips were obsolete and could no longer be bought. Then, we went over our seeed board’s battery management system requirements and ordered wireless charging transmitters by current, and many of them had quite low (3-3.6V) voltages, which we thought was too low at the time, and the ones with higher voltages either had tiny currents, no listed current, or were obsolete and were not sold anymore. We then looked on mouser and looked through many viable options, and unfortunately, many of them were not stocked (BD570xx Qi / PMA Wireless Power ICs – ROHM | Mouser). We eventually found a chip that had 4.5-24V along with 87mA current that was stocked, but that chip had 68 pins and was very complex and the datasheet did not give us a lot of information on how to use it or how the many pins worked. This was when we reached out on slack for help and moved to looking at the application notes instead. We then had a meeting with our instructors about this, and tried to look for more simple ICs since that IC had many components we do not need, and in the end we circled back to the amazon wireless charging kits, and found another variant of the XKT series, the XKT-510, which actually had a datasheet in English, although not with perfect translations (XKT-510.pdf (sakura.ne.jp)) along with example wiring circuits of both the transmitter and receiver to go along with it, and we decided that ideally, we would go with these chips as their pinouts and circuits were much more manageable than the 40-68 pin wireless charging ICs we found on digikey and mouser.

Our progress is slightly behind as although I hoped to resolve the power and current issues by this week, the extensive amount of research we had to do as well as the shipping time for the XKT ICs will push the power integration and PCB manufacturing on Korene’s part further back than we anticipated. With this adjustment in schedule, in the meantime, I can find the resonance for the official coils we ordered as well as start working on my other task, the design of the keyboard configuration software instead and shift around my schedule a bit.

Next week, I hope to record the required capacitor values for resonance for the industrially made coils we ordered, which should arrive soon (?) and work on the design and plan for the software configurations that will go on the main microcontroller, which for now is just another seeed xiao board. We should also order samples to test the XKT chips as soon as possible due to their weeklong shipping times.

Ben’s Status Report 2/25

This week I rewrote the entirety of the BLE code such that each key peripheral device “daisy chains” off the previous one, forwarding the values of each key to the central controller. However, I was unable to get this fully working as I had to solve a few issues with getting ArduinoBLE to make a device act both as a central and a peripheral. The current code can be found here: bojuns/FP-Key-A_BLE (github.com)

Still, however, I believe my progress is on track since after some more debugging, I believe I should be able to get multiple connections working before the end of next week.

Next week I hope to finish the daisy chaining protocol and test it for latency measurements.

Korene’s Status Report 2/18

Over the past week, Zhejia and I have developed the plan for the inductive charging and created the proof of concept circuitry for it. Currently, we are now searching for the specific parts for the rest, but have found the inductive coils to buy (buying because it is more reliable to have the same inductance rating and be more consistent). Photos of the circuitry are on Zhejia’s Status Report. Some unknown results are why the current input and output appear to be so low and when measuring output current the voltage readings on the oscillator become warped. (top picture below is as normal measurement, bottom photo is when we measure for output current)

Next we need to make our calculations based around the 8.32uH inductors and then we can make a base schematic for the PCB. We plan to buy materials at beginning of the week to get them at the end of the week. Then test on the breadboard and complete the schematic and layout of the PCB to be sent out for fabrication(week after getting parts to buy)

We should be on schedule, but in practice a bit late in terms of when to send out a PCB board to fabricate. I hope there is still enough time to order one and then order another just in case.

A lot of 220 is being used here as it provided the best overview of a diverse number of components. We used Lab2a handout to build the full bridge rectifier and voltage regulator and lab4a to build the circuit to measure for resonance frequency. It’s a lot easier the second/third time around and cool to see it used to actually charge inductively! Some 18310 and 18320 knowledge is being used because of knowing about mosfets (and soon 18421 when we start looking at what power amplifiers to use in order to boost our power)